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

Disassembly:
sub esp, 0x134
push edi
mov edi, dword [esp + 0x140]
test edi, edi
jne 0x523450
lea eax, [esp + 0x154]
cmp dword [esp + 0x154], edi
jne 0x52343a
push 1
push edi
push edi
push edi
push edi
push edi
push eax
call fcn.00523400
add esp, 0x1c
pop edi
add esp, 0x134
ret
sub eax, dword [esp + 0x13c]
cdq
xor eax, edx
sub eax, edx
neg eax
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x14c]
push ebx
push ebp
mov ebp, dword [esp + 0x154]
mov ecx, dword [eax + 0x4c]
mov eax, dword [eax]
push esi
mov dword [esp + 0x38], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x14], ecx
cmp eax, dword [ebp + 4]
jae 0x52d0f2
mov esi, dword [esp + 0x148]
nop word [eax + eax]
inc eax
mov dword [ebp], eax
mov eax, dword [esp + 0x160]
cmp eax, dword [ebp + 8]
jae 0x53022e
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x98], 2
jne 0x5234d8
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x60], esi
mov dword [esp + 0x15c], ecx
mov dword [eax + 0x98], 0
mov ebp, eax
jmp 0x5234f0
mov edi, dword [esp + 0x14c]
mov ebp, dword [esp + 0x158]
nop word [eax + eax]
mov cl, byte [edi]
xor ebx, ebx
movzx edx, cl
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], edx
cmp edx, 0xa1
ja case.0x52351a.98
movzx eax, byte [edx + 0x53038c]
jmp dword [eax*4 + 0x530240]
mov eax, dword [esp + 0x158]
mov ebp, dword [esp + 0x158]
inc dword [eax + 0x28]
mov eax, dword [eax + 0x28]
cmp eax, dword [ebp + 0x2c]
ja 0x52d105
movzx eax, byte [edi]
movzx ecx, byte [eax + 0x5f6598]
movzx eax, byte [edi + 1]
add edi, eax
add edi, ecx
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov eax, dword [esp + 0x158]
mov ebp, edi
mov edx, dword [esp + 0x14c]
mov ebx, esi
mov edi, dword [eax + 0xac]
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
lea eax, [edx + 3]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push eax
push esi
call fcn.00523400
add esp, 0x1c
cmp eax, 1
je 0x52369c
cmp eax, 0xfffffc20
jne 0x5235ef
mov ecx, dword [esp + 0x14c]
movzx edx, byte [ecx + 1]
movzx ecx, byte [ecx + 2]
shl edx, 8
or edx, ecx
mov ecx, dword [esp + 0x158]
add edx, dword [esp + 0x14c]
cmp dword [ecx + 0x7c], edx
jae 0x52d0fa
mov ecx, dword [esp + 0x14c]
cmp byte [ecx], 0x77
je 0x5235f7
cmp byte [edx], 0x77
jmp 0x5235f1
test eax, eax
jne 0x52d0fa
mov edx, dword [esp + 0x14c]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x158]
add edx, ecx
mov dword [esp + 0x14c], edx
mov dword [eax + 0xac], edi
cmp byte [edx], 0x77
je 0x523571
mov edx, dword [esp + 0x150]
mov edi, dword [esp + 0x14c]
mov al, byte [edi]
cmp al, 0x82
je 0x523650
cmp al, 0x77
jne case.0x52fb53.14
nop word [eax + eax]
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, ecx
cmp byte [edi], 0x77
je 0x523650
cmp byte [edi], 0x78
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x8c]
mov esi, dword [eax + 0x80]
mov dword [esp + 0x154], ecx
je 0x52368b
cmp esi, ebx
jne 0x52cbfc
add edi, 3
mov ebp, eax
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov eax, dword [esp + 0x158]
mov edx, dword [eax + 0x7c]
mov dword [esp + 0x150], edx
jmp 0x523631
mov dword [esp + 0x30], ebx
jmp 0x52430b
mov dword [esp + 0x30], ebx
jmp 0x524324
movzx ebp, byte [edi + 1]
movzx eax, byte [edi + 2]
add edi, 3
shl ebp, 8
or ebp, eax
mov dword [esp + 0x14c], edi
cmp byte [edi], 0x76
jne 0x523804
mov edi, dword [0x654c3c]
test edi, edi
je 0x5237eb
mov edx, dword [esp + 0x14c]
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x64], 2
movzx eax, byte [edx + 1]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x74]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x78]
sub eax, dword [ecx + 0x74]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x150]
sub eax, dword [ecx + 0x74]
mov dword [esp + 0x78], eax
mov eax, esi
sub eax, dword [ecx + 0x74]
mov dword [esp + 0x7c], eax
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x8c], ecx
movzx ecx, byte [edx + 4]
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x154]
cdq
sub eax, edx
mov dword [esp + 0x90], ecx
sar eax, 1
mov ecx, 0xffffffff
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 0x90]
test eax, eax
cmove eax, ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xa8]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xb0]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x64]
push eax
call edi
add esp, 4
test eax, eax
jg case.0x52fb53.14
js 0x52d0fa
movzx eax, byte [0x5f660e]
mov edi, dword [esp + 0x14c]
add edi, eax
sub ebp, eax
mov dword [esp + 0x14c], edi
movzx eax, byte [edi]
xor ebx, ebx
mov dword [esp + 0x20], eax
add eax, 0xffffff73
cmp eax, 0x10
ja case.0x523822.146
movzx eax, byte [eax + 0x530448]
jmp dword [eax*4 + 0x530430]
mov eax, dword [esp + 0x158]
mov edx, dword [eax + 0xa4]
test edx, edx
je case.0x523822.145
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
cmp ecx, 0xffff
je 0x52394b
cmp ecx, dword [edx + 4]
je 0x52394b
xor ebx, ebx
jmp case.0x523822.145
mov eax, dword [esp + 0x158]
cmp dword [eax + 0xa4], ebx
je case.0x523822.145
mov ecx, dword [esp + 0x14c]
movzx edi, byte [edi + 3]
shl edi, 8
movzx eax, byte [ecx + 4]
movzx edx, byte [ecx + 1]
or edi, eax
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x158]
imul edx, dword [eax + 0x24]
add edx, dword [eax + 0x30]
test edi, edi
jle 0x5238e4
mov eax, dword [eax + 0xa4]
mov ebx, dword [eax + 4]
movzx eax, byte [edx]
dec edi
movzx ecx, byte [edx + 1]
shl eax, 8
or ecx, eax
xor eax, eax
cmp ecx, ebx
sete al
mov dword [esp + 0x34], eax
test eax, eax
jne 0x523aa4
mov eax, dword [esp + 0x158]
add edx, dword [eax + 0x24]
test edi, edi
jg 0x5238b2
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x14c]
add edi, ebp
mov dword [esp + 0x14c], edi
test ebx, ebx
jne 0x523902
cmp byte [edi - 3], 0x77
jne 0x5234e3
cmp dword [esp + 0x1c], 0x8c
je 0x52d15a
mov ebp, dword [esp + 0x158]
jmp 0x52d0df
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add ecx, ecx
cmp ecx, dword [esp + 0x154]
jge 0x523860
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], ebx
jl 0x523860
mov edx, dword [esp + 0x20]
mov ebx, 1
movzx ebp, byte [edx + 0x5f6598]
jmp case.0x523822.145
mov ecx, dword [esp + 0x14c]
movzx edi, byte [edi + 3]
shl edi, 8
movzx eax, byte [ecx + 4]
movzx edx, byte [ecx + 1]
or edi, eax
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x158]
imul edx, dword [eax + 0x24]
add edx, dword [eax + 0x30]
test edi, edi
jle 0x5238e4
xor ebx, ebx
movzx eax, byte [edx]
dec edi
movzx ecx, byte [edx + 1]
shl eax, 8
or ecx, eax
add ecx, ecx
cmp ecx, dword [esp + 0x154]
jge 0x5239bd
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
cmp dword [eax + ecx*4], ebx
jge 0x5239d0
mov eax, dword [esp + 0x158]
add edx, dword [eax + 0x24]
test edi, edi
jg 0x523996
jmp 0x5238e4
mov edx, dword [esp + 0x20]
mov ebx, 1
mov edi, dword [esp + 0x14c]
movzx ebp, byte [edx + 0x5f6598]
jmp case.0x523822.145
mov eax, dword [esp + 0x158]
mov dword [eax + 0x98], 1
mov eax, dword [esp + 0x160]
inc eax
push eax
push 0
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
cmp eax, 1
jne 0x523abf
mov eax, dword [esp + 0x158]
mov ebx, 1
mov ecx, dword [esp + 0x154]
mov eax, dword [eax + 0x8c]
cmp eax, ecx
cmovg ecx, eax
cmp byte [edi], 0x92
mov dword [esp + 0x154], ecx
jne 0x523a5b
inc edi
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, ecx
cmp byte [edi], 0x77
jne 0x523a84
nop
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, ecx
cmp byte [edi], 0x77
je 0x523a70
mov edx, dword [esp + 0x20]
mov ecx, 3
movzx eax, byte [edx + 0x5f6598]
movzx ebp, byte [edx + 0x5f6598]
sub ecx, eax
add edi, ecx
jmp case.0x523822.145
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x14c]
movzx ebp, byte [edx + 0x5f6598]
jmp case.0x523822.145
test eax, eax
je case.0x523822.145
cmp eax, 0xfffffc20
jne 0x52d0fa
jmp case.0x523822.145
movzx edx, byte [edi + 1]
movzx eax, byte [edi + 2]
mov ebp, dword [esp + 0x158]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x90]
lea ebx, [edx + edx]
and eax, 0xffff0000
or eax, edx
mov dword [ebp + 0x90], eax
cmp ebx, dword [ebp + 0x14]
jl 0x523b27
or eax, 0x10000
add edi, 3
mov dword [ebp + 0x90], eax
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov eax, ebp
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov dword [ecx + ebx*4], eax
mov eax, ebp
mov ecx, esi
sub ecx, dword [eax + 0x74]
mov eax, dword [eax + 0xc]
mov dword [eax + ebx*4 + 4], ecx
mov ecx, dword [esp + 0x154]
cmp ebx, ecx
jl 0x523b7c
mov eax, ebp
mov eax, dword [eax + 0xc]
lea edi, [eax + ecx*4]
lea ecx, [eax + ebx*4]
cmp edi, ecx
jae 0x523b6b
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x14c]
lea eax, [ebx + 2]
mov dword [esp + 0x154], eax
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x98], 1
mov edi, dword [eax + 0xac]
jne 0x523bb2
mov ebx, 1
mov dword [eax + 0x98], 0
jmp 0x523bb4
xor ebx, ebx
mov ebp, dword [esp + 0x14c]
nop dword [eax + eax]
mov eax, dword [esp + 0x160]
inc eax
push eax
push 0
push dword [esp + 0x160]
lea eax, [ebp + 3]
push dword [esp + 0x160]
push dword [esp + 0x160]
push eax
push esi
call fcn.00523400
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x523c65
cmp edx, 0xfffffc19
je 0x523c65
mov eax, dword [esp + 0x158]
mov dword [eax + 0xac], edi
cmp edx, 0xfffffc20
jne 0x523c3b
movzx ecx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x158]
add ecx, ebp
cmp dword [eax + 0x7c], ecx
jae 0x52ff65
cmp byte [ebp], 0x77
je 0x523c43
cmp byte [ecx], 0x77
jmp 0x523c3d
test edx, edx
jne 0x52ff65
movzx ecx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl ecx, 8
or ecx, eax
add ebp, ecx
mov dword [esp + 0x14c], ebp
cmp byte [ebp], 0x77
je 0x523bc0
jmp 0x523c76
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x150], eax
mov edi, dword [esp + 0x14c]
cmp byte [edi], 0x78
je case.0x52fb53.14
test ebx, ebx
jne 0x52d320
nop
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, ecx
cmp byte [edi], 0x77
je 0x523c90
mov eax, dword [esp + 0x158]
add edi, 3
mov dword [esp + 0x14c], edi
mov eax, dword [eax + 0x8c]
mov dword [esp + 0x154], eax
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x98], 1
mov edi, dword [eax + 0xac]
jne 0x523cee
mov ebx, 1
mov dword [eax + 0x98], 0
jmp 0x523cf0
xor ebx, ebx
mov ebp, dword [esp + 0x14c]
mov eax, dword [esp + 0x160]
inc eax
push eax
push 0
push dword [esp + 0x160]
lea eax, [ebp + 3]
push dword [esp + 0x160]
push dword [esp + 0x160]
push eax
push esi
call fcn.00523400
mov ecx, eax
add esp, 0x1c
mov eax, dword [esp + 0x158]
mov dword [eax + 0xac], edi
cmp ecx, 0xfffffc20
jg 0x523d65
jne 0x523da9
movzx ecx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x158]
add ecx, ebp
cmp dword [eax + 0x7c], ecx
jae 0x523dc4
cmp byte [ebp], 0x77
je 0x523d70
cmp byte [ecx], 0x77
jne 0x523dc4
jmp 0x523d70
mov eax, ecx
sub eax, 0
jne 0x52d19f
movzx ecx, byte [ebp + 1]
movzx eax, byte [ebp + 2]
shl ecx, 8
or ecx, eax
add ebp, ecx
mov dword [esp + 0x14c], ebp
cmp byte [ebp], 0x77
je 0x523cf7
mov edi, ebp
test ebx, ebx
jne 0x52d320
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp ecx, 0xfffffc19
je case.0x52fb53.14
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x52fffd
mov edi, dword [esp + 0x14c]
nop dword [eax + eax]
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, ecx
cmp byte [edi], 0x77
je 0x523dd0
jmp 0x523d92
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
cmp dword [esp + 0x14], ebx
je 0x523e2e
or ecx, eax
mov eax, dword [esp + 0x158]
jle 0x523e42
mov edx, dword [eax + 0x74]
dec esi
dec ecx
cmp esi, edx
jb case.0x52fb53.14
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x523e21
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x523e17
test ecx, ecx
jg 0x523e05
mov eax, dword [esp + 0x158]
jmp 0x523e42
or ecx, eax
mov eax, dword [esp + 0x158]
sub esi, ecx
cmp esi, dword [eax + 0x74]
jb case.0x52fb53.14
cmp esi, dword [eax + 0x84]
jae 0x523e50
mov dword [eax + 0x84], esi
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov edi, dword [0x654c3c]
test edi, edi
je 0x523f81
mov edx, dword [esp + 0x14c]
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x98], 2
movzx eax, byte [edx + 1]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x74]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x78]
sub eax, dword [ecx + 0x74]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x150]
sub eax, dword [ecx + 0x74]
mov dword [esp + 0xac], eax
mov eax, esi
sub eax, dword [ecx + 0x74]
mov dword [esp + 0xb0], eax
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
shl ecx, 8
or ecx, eax
mov dword [esp + 0xc0], ecx
movzx ecx, byte [edx + 4]
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x154]
cdq
sub eax, edx
mov dword [esp + 0xc4], ecx
sar eax, 1
mov ecx, 0xffffffff
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x158]
movzx eax, word [eax + 0x90]
test eax, eax
cmove eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xa8]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xb0]
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x98]
push eax
call edi
add esp, 4
test eax, eax
jg case.0x52fb53.14
js 0x52d0fa
mov edi, dword [esp + 0x14c]
add edi, 6
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
movzx ebx, byte [edi + 1]
shl ebx, 8
mov ecx, dword [eax + 0x70]
movzx eax, byte [edi + 2]
or ebx, eax
add ebx, ecx
cmp ebx, ecx
jne 0x523fb8
xor ecx, ecx
jmp 0x523fc5
movzx ecx, byte [ebx + 3]
movzx eax, byte [ebx + 4]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xa4]
test eax, eax
je 0x523fea
cmp ecx, dword [eax + 4]
jne 0x523fe4
cmp esi, dword [eax + 0x14]
je 0x52d1b5
mov eax, dword [eax]
test eax, eax
jne 0x523fd6
mov eax, dword [esp + 0x158]
add edi, 3
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x14c], edi
mov eax, dword [eax + 0x90]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x50], esi
mov eax, dword [eax + 0xa4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x158]
mov dword [eax + 0xa4], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x48], ecx
cmp ecx, 0x1e
jg 0x524048
lea eax, [esp + 0xcc]
mov dword [esp + 0x44], eax
jmp 0x524069
lea eax, [ecx*4]
push eax
call dword [0x647398]
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
je 0x52d1eb
mov ecx, dword [esp + 0x48]
shl ecx, 2
push ecx
mov ecx, dword [esp + 0x15c]
push dword [ecx + 0xc]
push eax
call fcn.00588420
add esp, 0xc
cmp byte [ebx], 0x88
sbb ebp, ebp
inc ebp
test ebp, ebp
je 0x52409b
mov eax, dword [esp + 0x158]
mov dword [eax + 0x98], 2
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [ebx]
push dword [esp + 0x160]
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, ebx
push eax
push esi
call fcn.00523400
mov ecx, dword [esp + 0x64]
mov edi, eax
mov eax, dword [esp + 0x174]
shl ecx, 2
push ecx
push dword [esp + 0x64]
push dword [eax + 0xc]
call fcn.00588420
mov ecx, dword [esp + 0x180]
add esp, 0x28
mov eax, dword [esp + 0x4c]
mov dword [ecx + 0x90], eax
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0xa4], eax
cmp edi, 1
je 0x524197
cmp edi, 0xfffffc19
je 0x524197
cmp edi, 0xfffffc1c
jl 0x52412f
cmp edi, 0xfffffc20
jle 0x524171
test edi, edi
jne 0x52d1c5
mov eax, dword [esp + 0x158]
lea ecx, [esp + 0x3c]
mov dword [eax + 0xa4], ecx
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x524086
mov ecx, dword [esp + 0x158]
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0xa4], eax
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0xcc]
cmp eax, ecx
je 0x52418a
push eax
call dword [0x64739c]
add esp, 4
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0xcc]
cmp eax, ecx
je 0x5241b0
push eax
call dword [0x64739c]
add esp, 4
mov eax, dword [esp + 0x158]
mov esi, dword [eax + 0x80]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x150], eax
jmp 0x5234dc
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, ecx
cmp byte [edi], 0x77
je case.0x52351a.119
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov eax, dword [esp + 0x160]
inc edi
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
nop dword [eax + eax]
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, ecx
cmp byte [edi], 0x77
je 0x524230
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
inc edi
mov dword [esp + 0x14c], edi
mov edx, edi
nop dword [eax]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x77
je 0x524260
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
lea eax, [edx + 3]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push eax
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
jmp 0x5234e3
lea edx, [edi + 1]
nop word [eax + eax]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x77
je 0x5242c0
lea edi, [edx + 3]
mov dword [esp + 0x14c], edi
jmp 0x5234f0
movzx edx, byte [edi + 1]
inc edi
mov dword [esp + 0x14c], edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], 1
cmp edx, 0x86
je 0x52430b
cmp edx, 0x8b
jne 0x524324
movzx ebx, byte [edi + 3]
movzx eax, byte [edi + 4]
shl ebx, 8
or ebx, eax
lea eax, [ebx + ebx]
cmp eax, dword [ebp + 0x14]
jl 0x5244be
mov eax, dword [esp + 0x158]
xor ebx, ebx
mov ecx, dword [esp + 0x14c]
sub edi, dword [eax + 0x70]
mov ebp, dword [eax + 0x90]
nop dword [eax]
cmp edx, 0x88
jb 0x524352
mov dword [eax + 0x98], 2
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [ecx]
push dword [esp + 0x160]
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, ecx
push eax
push esi
call fcn.00523400
mov edx, eax
add esp, 0x1c
cmp edx, 0xfffffc1a
jne 0x5243e6
mov eax, dword [esp + 0x158]
mov ebx, 1
mov ecx, dword [eax + 0x8c]
mov edx, dword [eax + 0x7c]
mov dword [esp + 0x154], ecx
mov ecx, dword [eax + 0x70]
mov eax, dword [eax + 0x80]
add ecx, edi
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x150], edx
cmp esi, eax
je 0x52446c
mov edx, dword [esp + 0x1c]
mov esi, eax
mov eax, dword [esp + 0x158]
jmp 0x524340
cmp edx, 0xfffffc20
jne 0x52442a
mov eax, dword [esp + 0x14c]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x158]
add ecx, dword [esp + 0x14c]
cmp dword [eax + 0x7c], ecx
jae 0x52ff65
mov eax, dword [esp + 0x14c]
cmp byte [eax], 0x77
je 0x524432
cmp byte [ecx], 0x77
jmp 0x52442c
test edx, edx
jne 0x52ff65
mov edx, dword [esp + 0x14c]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov ecx, edx
mov dword [esp + 0x14c], edx
cmp byte [ecx], 0x77
jne 0x524496
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x1c]
mov dword [eax + 0x90], ebp
jmp 0x524340
mov edi, dword [esp + 0x14c]
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, ecx
cmp byte [edi], 0x77
je 0x524473
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
test ebx, ebx
jne 0x524865
cmp dword [esp + 0x30], ebx
je case.0x52fb53.14
mov edi, dword [esp + 0x14c]
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov ecx, dword [esp + 0x158]
mov ebp, edi
shl eax, 2
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], 0
sub ebp, dword [ecx + 0x70]
mov ecx, dword [ecx + 0xc]
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 0x10]
sub eax, ebx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x158]
mov edi, dword [eax + 0x90]
nop dword [eax + eax]
mov ecx, dword [eax + 0x10]
mov edx, esi
sub edx, dword [eax + 0x74]
sub ecx, ebx
cmp dword [esp + 0x1c], 0x88
mov eax, dword [eax + 0xc]
mov dword [eax + ecx*4], edx
jb 0x52453b
mov eax, dword [esp + 0x158]
mov dword [eax + 0x98], 2
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x14c]
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
movzx eax, byte [ecx]
push dword [esp + 0x160]
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
add eax, ecx
push eax
push esi
call fcn.00523400
mov edx, eax
add esp, 0x1c
cmp edx, 0xfffffc1a
jne 0x5245dc
mov eax, dword [esp + 0x158]
mov edx, 1
mov dword [esp + 0x34], edx
mov ecx, dword [eax + 0x8c]
mov edi, dword [eax + 0x90]
mov dword [esp + 0x154], ecx
mov ecx, dword [eax + 0x70]
add ecx, ebp
mov dword [esp + 0x14c], ecx
mov ecx, dword [eax + 0x7c]
mov eax, dword [eax + 0x80]
mov dword [esp + 0x150], ecx
cmp esi, eax
je 0x524670
mov esi, eax
mov eax, dword [esp + 0x158]
jmp 0x524510
cmp edx, 0xfffffc20
jne 0x52462d
mov eax, dword [esp + 0x14c]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x158]
add ecx, dword [esp + 0x14c]
cmp dword [eax + 0x7c], ecx
jae 0x52ff65
mov eax, dword [esp + 0x14c]
cmp byte [eax], 0x77
mov eax, dword [esp + 0x158]
je 0x52463c
cmp byte [ecx], 0x77
jne 0x52ff65
jmp 0x52463c
test edx, edx
jne 0x52ff65
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x14c]
mov dword [eax + 0x90], edi
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [esp + 0x14c], edx
cmp byte [edx], 0x77
jne 0x524696
mov eax, dword [esp + 0x158]
jmp 0x524510
mov edi, dword [esp + 0x14c]
nop word [eax + eax]
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
add edi, ecx
cmp byte [edi], 0x77
je 0x524680
jmp 0x5246e2
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x5246db
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
mov dword [ecx + eax], edi
mov eax, dword [esp + 0x158]
mov edi, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
mov dword [ecx + eax + 4], edi
mov eax, dword [esp + 0x158]
mov edi, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
sub ecx, ebx
mov dword [eax + ecx*4], edi
mov edi, dword [esp + 0x14c]
cmp dword [esp + 0x30], 0
jne 0x523e50
test edx, edx
je case.0x52fb53.14
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
movzx ecx, byte [edi + 1]
mov ebp, edi
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
sub ebp, ecx
mov al, byte [ebp]
cmp al, 0x88
jae 0x524726
cmp al, 0x81
je 0x524726
mov dword [esp + 0x34], ebx
jmp 0x52473d
mov edx, dword [esp + 0x15c]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x15c], edx
cmp al, 0x7d
jb 0x524749
cmp al, 0x80
jbe 0x52d2fc
cmp al, 0x82
je 0x52d2fc
cmp al, 0x85
je 0x524765
cmp al, 0x8a
je 0x524765
cmp al, 0x86
je 0x524765
cmp al, 0x8b
jne 0x52482e
movzx edx, byte [ebp + 3]
movzx eax, byte [ebp + 4]
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xa4]
lea ebx, [edx + edx]
test eax, eax
je 0x52478f
cmp dword [eax + 4], edx
je 0x52d1fb
mov eax, dword [esp + 0x158]
mov edi, dword [esp + 0x158]
mov ecx, dword [esp + 0x154]
mov eax, dword [eax + 0x90]
and eax, 0xffff0000
or eax, edx
mov dword [edi + 0x90], eax
cmp ebx, dword [edi + 0x14]
jl 0x5247c9
or eax, 0x10000
mov dword [edi + 0x90], eax
jmp 0x52483c
cmp ebx, ecx
jle 0x5247e8
mov eax, edi
mov eax, dword [eax + 0xc]
lea edi, [eax + ecx*4]
lea ecx, [eax + ebx*4]
cmp edi, ecx
jae 0x5247e8
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x158]
mov edi, dword [esp + 0x158]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub eax, edx
mov eax, dword [ecx + eax*4]
mov dword [ecx + ebx*4], eax
mov ecx, esi
mov eax, dword [esp + 0x158]
sub ecx, dword [eax + 0x74]
mov eax, dword [eax + 0xc]
mov dword [eax + ebx*4 + 4], ecx
mov ecx, dword [esp + 0x154]
cmp ecx, ebx
jg 0x52483c
lea ecx, [ebx + 2]
mov dword [esp + 0x154], ecx
jmp 0x52483c
mov edi, dword [esp + 0x158]
mov ecx, dword [esp + 0x154]
mov ebx, dword [esp + 0x14c]
mov al, byte [ebx]
cmp al, 0x7b
je 0x52d2d6
cmp al, 0x78
je 0x52485b
cmp esi, dword [esp + 0x34]
jne 0x52cc6c
cmp byte [ebp], 0x81
je 0x52d292
mov edi, dword [esp + 0x14c]
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x44], ebx
je 0x524899
cmp esi, dword [eax + 0x74]
je case.0x52fb53.14
jmp 0x524899
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x74]
jne case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x44], ebx
je 0x5248c4
cmp esi, dword [eax + 0x74]
je case.0x52fb53.14
mov ecx, dword [eax + 0x74]
cmp esi, ecx
je 0x524958
cmp esi, dword [eax + 0x78]
je case.0x52fb53.14
mov edx, dword [eax + 0x18]
test edx, edx
je 0x524916
cmp esi, ecx
jbe case.0x52fb53.14
push dword [esp + 0x14]
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.005372a0
add esp, 0x14
test eax, eax
je case.0x52fb53.14
mov ebp, dword [esp + 0x158]
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov edx, dword [eax + 0x1c]
lea eax, [edx + ecx]
cmp esi, eax
jb case.0x52fb53.14
mov ebp, dword [esp + 0x158]
mov ecx, esi
sub ecx, edx
mov al, byte [ecx]
cmp al, byte [ebp + 0x34]
jne case.0x52fb53.14
cmp edx, 1
je 0x52495a
mov al, byte [ecx + 1]
cmp al, byte [ebp + 0x35]
jne case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov ebp, eax
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov eax, dword [esp + 0x158]
mov ebp, dword [esp + 0x158]
mov eax, dword [eax + 0x94]
add eax, dword [ebp + 0x74]
cmp esi, eax
jne case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234f0
inc edi
mov dword [esp + 0x150], esi
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x524a22
mov edx, dword [eax + 0x18]
test edx, edx
je 0x5249eb
push dword [esp + 0x14]
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.00537150
add esp, 0x14
test eax, eax
je 0x52d330
mov ebp, dword [esp + 0x158]
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov edx, dword [eax + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x52d337
mov ebp, dword [esp + 0x158]
mov al, byte [esi]
cmp al, byte [ebp + 0x34]
jne 0x524a1b
cmp edx, 1
je 0x52495a
mov al, byte [esi + 1]
cmp al, byte [ebp + 0x35]
je 0x52495a
mov eax, ebp
jmp 0x52d337
cmp dword [eax + 0x48], ebx
jne case.0x52fb53.14
cmp dword [eax + 0x88], ebx
je 0x524958
cmp esi, dword [eax + 0x84]
jbe 0x524958
mov dword [eax + 0x64], 1
cmp dword [eax + 0x88], 1
jg 0x52fcd0
inc edi
mov ebp, eax
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x48], ebx
jne case.0x52fb53.14
cmp dword [eax + 0x58], ebx
je 0x524ac5
jmp 0x524a84
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jb case.0x52fb53.14
cmp dword [eax + 0x88], ebx
je 0x524ab1
cmp esi, dword [eax + 0x84]
jbe 0x524ab1
mov dword [eax + 0x64], 1
cmp dword [eax + 0x88], 1
jg 0x52fcd0
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x78]
cmp esi, eax
jae 0x524b6e
mov ebx, dword [esp + 0x158]
mov ecx, dword [ebx + 0x18]
lea edi, [ebx + 0x1c]
test ecx, ecx
je 0x524b40
push dword [esp + 0x14]
push edi
push eax
push ecx
push esi
call fcn.00537150
add esp, 0x14
test eax, eax
jne 0x524b5c
cmp dword [ebx + 0x88], 0
je case.0x52fb53.14
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x78]
jb case.0x52fb53.14
cmp dword [ebx + 0x18], 0
jne case.0x52fb53.14
cmp dword [ebx + 0x1c], 2
jne case.0x52fb53.14
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne case.0x52fb53.14
mov dword [ebx + 0x64], 1
cmp dword [ebx + 0x88], 1
jmp 0x52fcca
mov ecx, dword [edi]
sub eax, ecx
cmp esi, eax
ja 0x524af5
mov al, byte [esi]
cmp al, byte [ebx + 0x34]
jne 0x524af5
cmp ecx, 1
je 0x524b5c
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
jne 0x524af5
mov eax, ebx
mov eax, dword [eax + 0x78]
sub eax, dword [edi]
cmp esi, eax
jne 0x524af5
mov edi, dword [esp + 0x14c]
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x88], 0
je 0x524b9a
cmp esi, dword [eax + 0x84]
jbe 0x524b9a
mov dword [eax + 0x64], 1
cmp dword [eax + 0x88], 1
jg 0x52fcd0
inc edi
mov ebp, eax
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov eax, dword [esp + 0x158]
cmp dword [esp + 0x14], ebx
je 0x524e78
cmp esi, dword [eax + 0x74]
je 0x524d31
mov al, byte [esi - 1]
lea edx, [esi - 1]
and al, 0xc0
cmp al, 0x80
jne 0x524bda
nop
mov al, byte [edx - 1]
dec edx
and al, 0xc0
cmp al, 0x80
je 0x524bd0
mov eax, dword [esp + 0x158]
cmp edx, dword [eax + 0x84]
jae 0x524bef
mov dword [eax + 0x84], edx
movzx ebx, byte [edx]
cmp ebx, 0xc0
jb 0x524ca0
test bl, 0x20
jne 0x524c0f
movzx eax, byte [edx + 1]
and ebx, 0x1f
jmp 0x524c91
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x524c29
and ebx, 0xf
shl ebx, 6
or ebx, ecx
jmp 0x524c91
and eax, 0x3f
test bl, 8
jne 0x524c44
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
jmp 0x524c91
test bl, 4
jne 0x524c68
and ebx, 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 4]
jmp 0x524c91
and ebx, 1
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ebx, 6
or ebx, eax
movzx eax, byte [edx + 5]
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x54], 0
je 0x524d0b
cmp ebx, 0x5f
jne 0x524cb7
mov eax, dword [esp + 0x158]
lea edi, [ebx - 0x5e]
jmp 0x524d33
mov eax, ebx
test eax, eax
jns 0x524cc0
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and ebx, 0x8000007f
jns 0x524cda
dec ebx
or ebx, 0xffffff80
inc ebx
add eax, ebx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x524cfd
cmp eax, 3
jne 0x524d2a
mov eax, dword [esp + 0x158]
mov edi, 1
jmp 0x524d33
cmp ebx, 0x100
jae 0x524d2a
mov eax, dword [eax + 0x40]
test byte [ebx + eax], 0x10
je 0x524d2a
mov eax, dword [esp + 0x158]
mov edi, 1
jmp 0x524d33
mov eax, dword [esp + 0x158]
xor edi, edi
cmp esi, dword [eax + 0x78]
jb 0x524d44
cmp dword [eax + 0x88], 0
jmp 0x524f25
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x524df5
test dl, 0x20
jne 0x524d64
movzx eax, byte [esi + 1]
and edx, 0x1f
jmp 0x524de6
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x524d7e
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x524de6
and eax, 0x3f
test dl, 8
jne 0x524d99
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x524de6
test dl, 4
jne 0x524dbd
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x524de6
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x54], 0
je 0x524e55
cmp edx, 0x5f
jne 0x524e08
lea ecx, [edx - 0x5e]
jmp 0x524f95
mov eax, edx
test eax, eax
jns 0x524e11
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x524e2b
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x524e6e
cmp eax, 3
je 0x524e6e
xor ecx, ecx
jmp 0x524f95
cmp edx, 0x100
jae 0x524f43
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je 0x524f43
mov ecx, 1
jmp 0x524f95
cmp esi, dword [eax + 0x74]
jne 0x524e84
xor edi, edi
jmp 0x524f1a
cmp esi, dword [eax + 0x84]
ja 0x524e9e
mov ecx, dword [esp + 0x158]
lea eax, [esi - 1]
mov dword [ecx + 0x84], eax
mov eax, ecx
cmp dword [eax + 0x54], ebx
je 0x524f02
movzx ecx, byte [esi - 1]
cmp ecx, 0x5f
jne 0x524eb1
lea edi, [ecx - 0x5e]
jmp 0x524f1a
mov eax, ecx
test eax, eax
jns 0x524eba
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and ecx, 0x8000007f
jns 0x524ed4
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x524efb
cmp eax, 3
je 0x524efb
xor edi, edi
jmp 0x524f13
mov edi, 1
jmp 0x524f13
mov ecx, dword [eax + 0x40]
movzx eax, byte [esi - 1]
movzx edi, byte [eax + ecx]
shr edi, 4
and edi, 1
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jb 0x524f47
cmp dword [eax + 0x88], ebx
je 0x524f43
cmp esi, dword [eax + 0x84]
jbe 0x524f43
mov dword [eax + 0x64], 1
cmp dword [eax + 0x88], 1
jg 0x52fcd0
xor ecx, ecx
jmp 0x524f95
cmp dword [eax + 0x54], ebx
je 0x524f85
movzx ecx, byte [esi]
cmp ecx, 0x5f
jne 0x524f5b
mov ecx, 1
jmp 0x524f95
mov eax, ecx
test eax, eax
jns 0x524f64
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and ecx, 0x8000007f
jns 0x524f7e
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
jmp 0x524e2d
mov ecx, dword [eax + 0x40]
movzx eax, byte [esi]
movzx ecx, byte [eax + ecx]
shr ecx, 4
and ecx, 1
mov edx, dword [esp + 0x14c]
mov al, byte [edx]
inc edx
mov dword [esp + 0x14c], edx
cmp al, 5
jne 0x524fb3
xor eax, eax
cmp ecx, edi
sete al
jmp 0x524fba
xor eax, eax
cmp ecx, edi
setne al
test eax, eax
jne case.0x52fb53.14
jmp 0x5234dc
mov eax, dword [esp + 0x158]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x525000
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x525031
push dword [esp + 0x14]
add eax, 0x1c
push eax
push ecx
push edx
push esi
call fcn.00537150
add esp, 0x14
test eax, eax
jne case.0x52fb53.14
mov eax, dword [esp + 0x158]
jmp 0x525031
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x78]
sub eax, ecx
cmp esi, eax
ja 0x524ff7
mov edx, dword [esp + 0x158]
mov al, byte [esi]
cmp al, byte [edx + 0x34]
jne 0x52502f
cmp ecx, 1
je case.0x52fb53.14
mov al, byte [esi + 1]
cmp al, byte [edx + 0x35]
je case.0x52fb53.14
mov eax, edx
cmp dword [eax + 0x88], ebx
je 0x52507b
mov ecx, dword [esp + 0x158]
lea eax, [esi + 1]
cmp eax, dword [ecx + 0x78]
mov eax, ecx
jb 0x52507b
cmp dword [eax + 0x18], ebx
jne 0x52507b
cmp dword [eax + 0x1c], 2
jne 0x52507b
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
mov eax, ecx
jne 0x52507b
mov dword [eax + 0x64], 1
cmp dword [eax + 0x88], 1
jg 0x52fcd0
jmp 0x52507b
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x52d38e
inc esi
cmp dword [esp + 0x14], ebx
je 0x524ab1
cmp esi, ecx
jae 0x524ab1
nop dword [eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x524ab1
inc esi
cmp esi, ecx
jb 0x5250a0
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
inc esi
mov ebp, eax
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234f0
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x5251d7
cmp edx, 0xc0
jb 0x5251d7
test dl, 0x20
jne 0x525121
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x5251d0
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x525148
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x5251ce
test dl, 8
jne 0x52516b
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x5251ce
test dl, 4
jne 0x52519a
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x5251ce
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
mov eax, dword [esp + 0x158]
cmp edx, 0x100
jae 0x524ab1
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jne case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x5252f6
cmp edx, 0xc0
jb 0x5252f6
test dl, 0x20
jne 0x525240
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x5252ef
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x525267
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x5252ed
test dl, 8
jne 0x52528a
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x5252ed
test dl, 4
jne 0x5252b9
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x5252ed
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
mov eax, dword [esp + 0x158]
cmp edx, 0xff
ja case.0x52fb53.14
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
je case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x525415
cmp edx, 0xc0
jb 0x525415
test dl, 0x20
jne 0x52535f
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52540e
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x525386
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x52540c
test dl, 8
jne 0x5253a9
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x52540c
test dl, 4
jne 0x5253d8
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x52540c
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
mov eax, dword [esp + 0x158]
cmp edx, 0x100
jae 0x524ab1
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jne case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x525534
cmp edx, 0xc0
jb 0x525534
test dl, 0x20
jne 0x52547e
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52552d
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5254a5
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x52552b
test dl, 8
jne 0x5254c8
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x52552b
test dl, 4
jne 0x5254f7
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x52552b
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
mov eax, dword [esp + 0x158]
cmp edx, 0xff
ja case.0x52fb53.14
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
je case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x525653
cmp edx, 0xc0
jb 0x525653
test dl, 0x20
jne 0x52559d
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52564c
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5255c4
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x52564a
test dl, 8
jne 0x5255e7
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x52564a
test dl, 4
jne 0x525616
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x52564a
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
mov eax, dword [esp + 0x158]
cmp edx, 0x100
jae 0x524ab1
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
jne case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x525772
cmp edx, 0xc0
jb 0x525772
test dl, 0x20
jne 0x5256bc
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52576b
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5256e3
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x525769
test dl, 8
jne 0x525706
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x525769
test dl, 4
jne 0x525735
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x525769
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
mov eax, dword [esp + 0x158]
cmp edx, 0xff
ja case.0x52fb53.14
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
mov edi, dword [eax + 0x78]
cmp esi, edi
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x525893
cmp edx, 0xc0
jb 0x525893
test dl, 0x20
jne 0x5257dd
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52588c
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x525804
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x52588a
test dl, 8
jne 0x525827
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x52588a
test dl, 4
jne 0x525856
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x52588a
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
mov eax, dword [esp + 0x158]
cmp edx, 0xd
ja 0x525904
je 0x5258ae
cmp edx, 0xa
je 0x52592b
jbe case.0x52fb53.14
cmp edx, 0xc
jmp 0x525915
cmp esi, edi
jb 0x5258ea
cmp dword [eax + 0x88], ebx
je 0x52592b
cmp esi, dword [eax + 0x84]
jbe 0x52592b
mov dword [eax + 0x64], 1
cmp dword [eax + 0x88], 1
jg 0x52fcd0
mov edi, dword [esp + 0x14c]
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp byte [esi], 0xa
jne 0x52592b
mov edi, dword [esp + 0x14c]
inc esi
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp edx, 0x85
je 0x52591b
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x52fb53.14
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x68], ebx
jne case.0x52fb53.14
mov edi, dword [esp + 0x14c]
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x525a31
cmp edx, 0xc0
jb 0x525a31
test dl, 0x20
jne 0x525982
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x525a31
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5259a9
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x525a2f
test dl, 8
jne 0x5259cc
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x525a2f
test dl, 4
jne 0x5259fb
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x525a2f
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
cmp edx, 0x180e
ja 0x525a85
je case.0x52fb53.14
cmp edx, 0xa0
ja 0x525a6c
je case.0x52fb53.14
cmp edx, 9
je case.0x52fb53.14
cmp edx, 0x20
je case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp edx, 0x1680
je case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp edx, 0x205f
ja 0x525ac4
je case.0x52fb53.14
cmp edx, 0x2000
jb 0x524ab1
cmp edx, 0x200a
jbe case.0x52fb53.14
cmp edx, 0x202f
je case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp edx, 0x3000
je case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x525bcf
cmp edx, 0xc0
jb 0x525bcf
test dl, 0x20
jne 0x525b20
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x525bcf
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x525b47
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x525bcd
test dl, 8
jne 0x525b6a
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x525bcd
test dl, 4
jne 0x525b99
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x525bcd
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
cmp edx, 0x180e
ja 0x525c23
je 0x524ab1
cmp edx, 0xa0
ja 0x525c0a
je 0x524ab1
cmp edx, 9
je 0x524ab1
cmp edx, 0x20
jne case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp edx, 0x1680
jne case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp edx, 0x205f
ja 0x525c62
je 0x524ab1
cmp edx, 0x2000
jb case.0x52fb53.14
cmp edx, 0x200a
jbe 0x524ab1
cmp edx, 0x202f
jne case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp edx, 0x3000
jne case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x525d6d
cmp edx, 0xc0
jb 0x525d6d
test dl, 0x20
jne 0x525cbe
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x525d6d
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x525ce5
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x525d6b
test dl, 8
jne 0x525d08
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x525d6b
test dl, 4
jne 0x525d37
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x525d6b
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
cmp edx, 0x85
ja 0x525d9a
je case.0x52fb53.14
cmp edx, 0xa
jb 0x524ab1
cmp edx, 0xd
jbe case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp edx, 0x2028
jb 0x524ab1
cmp edx, 0x2029
jbe case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x525eb1
cmp edx, 0xc0
jb 0x525eb1
test dl, 0x20
jne 0x525e02
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x525eb1
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x525e29
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x525eaf
test dl, 8
jne 0x525e4c
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x525eaf
test dl, 4
jne 0x525e7b
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x525eaf
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
cmp edx, 0x85
ja 0x525ed8
je 0x524ab1
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x52fb53.14
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52d38e
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], ebx
je 0x525fe4
cmp edx, 0xc0
jb 0x525fe4
test dl, 0x20
jne 0x525f37
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x525fe4
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x525f5e
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x525fe4
test dl, 8
jne 0x525f81
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x525fe4
test dl, 4
jne 0x525fb0
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x525fe4
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x525fed
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x5f8360]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x526008
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx edi, word [ecx*2 + 0x5fa560]
mov ecx, dword [esp + 0x14c]
movzx eax, byte [ecx + 1]
cmp eax, 0xa
ja case.default.0x526026
jmp dword [eax*4 + 0x53045c]
cmp dword [esp + 0x1c], 0xf
je case.0x52fb53.14
mov edi, dword [esp + 0x14c]
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov al, byte [edi*8 + 0x5f6ce1]
cmp al, 9
je 0x526065
cmp al, 5
je 0x526065
cmp al, 8
je 0x526065
xor ecx, ecx
jmp 0x52606a
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x1c], 0xf
sete al
cmp ecx, eax
je case.0x52fb53.14
mov edi, dword [esp + 0x14c]
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
movzx ecx, byte [edi*8 + 0x5f6ce1]
xor edx, edx
mov edi, dword [esp + 0x14c]
movzx eax, byte [edi + 2]
cmp eax, dword [ecx*4 + 0x5f66b0]
setne dl
xor eax, eax
cmp dword [esp + 0x1c], 0x10
sete al
cmp edx, eax
je case.0x52fb53.14
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov al, byte [ecx + 2]
xor ecx, ecx
cmp al, byte [edi*8 + 0x5f6ce1]
setne cl
xor eax, eax
cmp dword [esp + 0x1c], 0x10
sete al
cmp ecx, eax
je case.0x52fb53.14
mov edi, dword [esp + 0x14c]
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov al, byte [ecx + 2]
xor ecx, ecx
cmp al, byte [edi*8 + 0x5f6ce0]
setne cl
xor eax, eax
cmp dword [esp + 0x1c], 0x10
sete al
cmp ecx, eax
je case.0x52fb53.14
mov edi, dword [esp + 0x14c]
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
movzx eax, byte [edi*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x526065
cmp eax, 3
je 0x526065
xor ecx, ecx
jmp 0x52606a
cmp edx, 0x180e
ja 0x5261ab
je case.0x526026.0
cmp edx, 0x85
ja 0x526197
je case.0x526026.0
cmp edx, 9
jb case.0x5261cb.8203
cmp edx, 0xd
jbe case.0x526026.0
cmp edx, 0x20
jmp 0x5261e4
cmp edx, 0xa0
je case.0x526026.0
cmp edx, 0x1680
jmp 0x5261e4
cmp edx, 0x202f
ja 0x5261d2
je case.0x526026.0
add edx, 0xffffe000
cmp edx, 0x29
ja case.0x5261cb.8203
movzx eax, byte [edx + 0x530490]
jmp dword [eax*4 + 0x530488]
cmp edx, 0x205f
je case.0x526026.0
cmp edx, 0x3000
je case.0x526026.0
movzx eax, byte [edi*8 + 0x5f6ce1]
xor ecx, ecx
cmp dword [eax*4 + 0x5f66b0], 6
sete cl
jmp 0x52606a
movzx eax, byte [edi*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x526065
cmp eax, 3
je 0x526065
cmp edx, 0x5f
je 0x526065
xor ecx, ecx
jmp 0x52606a
mov edi, dword [esp + 0x14c]
movzx eax, byte [edi + 2]
mov ecx, dword [eax*4 + 0x5f6ba0]
lea eax, [eax*4 + 0x5f6ba0]
cmp edx, ecx
jb 0x52625f
lea eax, [eax + 4]
cmp edx, ecx
je 0x526279
mov ecx, dword [eax]
cmp edx, ecx
jae 0x526252
cmp dword [esp + 0x1c], 0x10
je case.0x52fb53.14
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp dword [esp + 0x1c], 0x10
jne case.0x52fb53.14
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
cmp edx, 0x24
je 0x5262be
cmp edx, 0x40
je 0x5262be
cmp edx, 0x60
je 0x5262be
cmp edx, 0xa0
jb 0x5262b2
cmp edx, 0xd7ff
jbe 0x5262be
cmp edx, 0xe000
jae 0x5262be
xor ecx, ecx
jmp 0x5262c3
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x1c], 0xf
sete al
cmp ecx, eax
je case.0x52fb53.14
mov edi, dword [esp + 0x14c]
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x5234e3
mov ebp, dword [ebp + 0x78]
cmp esi, ebp
jae 0x52d387
movzx edx, byte [esi]
inc esi
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x5263dc
cmp edx, 0xc0
jb 0x5263dc
test dl, 0x20
jne 0x52632b
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x5263dc
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x526352
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x5263d8
test dl, 8
jne 0x526375
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x5263d8
test dl, 4
jne 0x5263a4
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x5263d8
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x14]
mov eax, edx
test eax, eax
jns 0x5263e5
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x5263ff
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx ebx, byte [eax*8 + 0x5f6ce2]
cmp esi, ebp
jae 0x52654b
nop dword [eax]
movzx edx, byte [esi]
mov edi, 1
test ecx, ecx
je 0x5264ef
cmp edx, 0xc0
jb 0x5264ef
test dl, 0x20
jne 0x526452
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x5264e7
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x526471
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x5264e7
and eax, 0x3f
test dl, 8
jne 0x526491
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x5264e7
test dl, 4
jne 0x5264ba
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x5264e7
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x5264f8
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x526512
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx ecx, byte [eax*8 + 0x5f6ce2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x5f6728], eax
je 0x526544
add esi, edi
mov ebx, ecx
mov ecx, dword [esp + 0x14]
cmp esi, ebp
jb 0x526420
mov edi, dword [esp + 0x14c]
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x88], 0
je 0x524958
cmp esi, ebp
jb 0x524958
mov ebp, eax
cmp esi, dword [ebp + 0x84]
jbe 0x52495a
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x52fcd0
inc edi
mov dword [esp + 0x14c], edi
jmp 0x5234f0
movzx eax, byte [edi + 4]
xor ebx, ebx
movzx ecx, byte [edi + 1]
cmp edx, 0x74
movzx edx, byte [edi + 3]
sete bl
shl edx, 8
shl ecx, 8
or edx, eax
movzx eax, byte [edi + 2]
add edi, 5
or ecx, eax
mov dword [esp + 0x14c], edi
imul ecx, dword [ebp + 0x24]
mov dword [esp + 0x2c], ebx
add ecx, dword [ebp + 0x30]
mov ebp, dword [ebp + 0x50]
neg ebp
sbb ebp, ebp
xor edi, edi
neg ebp
dec ebp
mov dword [esp + 0x20], ebp
test edx, edx
jle 0x526685
movzx eax, byte [ecx]
dec edx
movzx edi, byte [ecx + 1]
shl eax, 8
or edi, eax
add edi, edi
cmp edi, dword [esp + 0x154]
jge 0x52660d
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
cmp dword [eax + edi*4], 0
jge 0x52661d
mov eax, dword [esp + 0x158]
add ecx, dword [eax + 0x24]
test edx, edx
jg 0x5265e5
jmp 0x526685
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0xc]
mov ebp, dword [eax + edi*4 + 4]
sub ebp, dword [eax + edi*4]
jmp 0x526681
mov ecx, dword [esp + 0x14c]
xor ebx, ebx
movzx edi, byte [edi + 1]
cmp edx, 0x72
sete bl
shl edi, 8
movzx eax, byte [ecx + 2]
add ecx, 3
or edi, eax
mov dword [esp + 0x2c], ebx
add edi, edi
mov dword [esp + 0x14c], ecx
cmp edi, dword [esp + 0x154]
jge 0x526677
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edi*4]
test ecx, ecx
js 0x526677
mov ebp, dword [eax + edi*4 + 4]
sub ebp, ecx
jmp 0x526681
mov ebp, dword [ebp + 0x50]
neg ebp
sbb ebp, ebp
neg ebp
dec ebp
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x14c]
mov dl, byte [eax]
movzx ecx, dl
lea eax, [ecx - 0x62]
cmp eax, 7
ja case.default.0x5266a4
movzx eax, byte [eax + 0x5304c4]
jmp dword [eax*4 + 0x5304bc]
movsx eax, byte [ecx + 0x5f154a]
lea edx, [ecx - 0x62]
inc dword [esp + 0x14c]
and edx, 1
movsx ebx, byte [ecx + 0x5f153e]
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
test eax, eax
jne 0x52671f
mov dword [esp + 0x30], connect
jmp 0x52671f
xor eax, eax
cmp dl, 0x69
mov edx, dword [esp + 0x14c]
sete al
mov dword [esp + 0x34], eax
movzx ebx, byte [edx + 1]
movzx eax, byte [edx + 2]
movzx ecx, byte [edx + 3]
shl ebx, 8
or ebx, eax
shl ecx, 8
movzx eax, byte [edx + 4]
or ecx, eax
mov eax, bind
cmove ecx, eax
add edx, 5
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14c], edx
test ebp, ebp
je 0x5234dc
jns 0x526731
test ebx, ebx
je 0x5234dc
mov ebp, 1
cmp ebx, ebp
jl 0x526768
nop word [eax + eax]
push dword [esp + 0x2c]
push dword [esp + 0x15c]
push dword [esp + 0x28]
push esi
push edi
call fcn.005308b0
add esp, 0x14
test eax, eax
js 0x52d399
inc ebp
add esi, eax
cmp ebp, ebx
jle 0x526740
mov ebp, dword [esp + 0x30]
cmp ebx, ebp
je 0x5234dc
cmp dword [esp + 0x34], 0
je 0x52d3b1
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
nop dword [eax]
cmp ebx, ebp
jge case.0x52fb53.14
push dword [esp + 0x2c]
push dword [esp + 0x15c]
push dword [esp + 0x28]
push esi
push edi
call fcn.005308b0
add esp, 0x14
test eax, eax
js 0x52d399
add esi, eax
inc ebx
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x5267c0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
push ebx
mov ebx, dword [esp + 0x15c]
push ebx
push ebp
push esi
push edi
call fcn.005308b0
add esp, 0x14
test eax, eax
js 0x52d474
mov edi, dword [esp + 0x14c]
add esi, eax
mov ebp, ebx
jmp 0x5234f0
mov cl, byte [edi + 0x21]
lea ebp, [edi + 1]
add edi, 0x21
movzx edx, cl
mov dword [esp + 0x34], ebp
mov dword [esp + 0x14c], edi
lea eax, [edx - 0x62]
cmp eax, 0xb
ja case.default.0x526886
movzx eax, byte [eax + 0x5304d4]
jmp dword [eax*4 + 0x5304cc]
lea eax, [edx - 0x62]
inc edi
mov dword [esp + 0x14c], edi
cmp eax, 8
jae 0x5268a8
mov ebx, eax
and ebx, 1
mov dword [esp + 0x2c], ebx
jmp 0x5268b0
mov dword [esp + 0x28], 1
movsx ecx, byte [eax + 0x5f15a0]
movsx eax, byte [eax + 0x5f15ac]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], eax
test eax, eax
jne 0x52692f
mov dword [esp + 0x18], connect
jmp 0x52692f
movzx edx, byte [edi + 3]
xor ebx, ebx
cmp cl, 0x69
sete bl
xor eax, eax
cmp cl, 0x6d
mov dword [esp + 0x2c], ebx
movzx ecx, byte [edi + 1]
sete al
shl ecx, 8
mov dword [esp + 0x28], eax
movzx eax, byte [edi + 2]
or ecx, eax
shl edx, 8
movzx eax, byte [edi + 4]
or edx, eax
mov eax, bind
cmove edx, eax
add edi, 5
mov dword [esp + 0x18], edx
mov dword [esp + 0x14c], edi
jmp 0x52692b
mov dword [esp + 0x18], 1
mov ecx, 1
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x14]
mov edi, 1
test eax, eax
je 0x526a70
cmp ecx, edi
jl 0x526ab5
mov eax, dword [esp + 0x158]
mov ebx, dword [eax + 0x78]
cmp esi, ebx
jae 0x52da67
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x526a34
test dl, 0x20
jne 0x526983
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x526a34
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5269aa
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x526a30
test dl, 8
jne 0x5269cd
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x526a30
test dl, 4
jne 0x5269fc
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x526a30
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x20]
cmp edx, 0xff
jbe 0x526a49
cmp dword [esp + 0x1c], 0x6e
je case.0x52fb53.14
jmp 0x526a65
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.0x52fb53.14
mov ecx, dword [esp + 0x20]
inc edi
cmp edi, ecx
jle 0x526952
jmp 0x526aad
cmp ecx, 1
jl 0x526ab5
mov eax, dword [esp + 0x158]
mov ebx, dword [eax + 0x78]
nop
cmp esi, ebx
jae 0x52da67
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
inc esi
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.0x52fb53.14
mov ecx, dword [esp + 0x20]
inc edi
cmp edi, ecx
jle 0x526a80
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
cmp ecx, edi
je 0x5234dc
test ebx, ebx
jne 0x52d4b1
mov ebp, esi
test eax, eax
je 0x526ce4
cmp ecx, edi
jge 0x526bda
mov eax, dword [esp + 0x158]
mov ebx, dword [eax + 0x78]
nop word [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x526cb0
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x526bc3
test dl, 0x20
jne 0x526b22
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x526bbb
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x526b41
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x526bb7
and eax, 0x3f
test dl, 8
jne 0x526b61
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x526bb7
test dl, 4
jne 0x526b8a
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x526bb7
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
mov ecx, dword [esp + 0x20]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0xff
jbe 0x526c7a
cmp dword [esp + 0x1c], 0x6e
jne 0x526c9a
mov edx, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
jne 0x5234dc
mov eax, dword [esp + 0x160]
mov edi, dword [esp + 0x154]
inc eax
mov ebx, dword [esp + 0x14c]
push eax
push dword [esp + 0x160]
push edx
push edi
push dword [esp + 0x160]
push ebx
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov eax, esi
dec esi
cmp eax, ebp
je case.0x52fb53.14
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x526c42
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x526c38
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push ebx
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x526c25
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [esp + 0x34]
test byte [edx + ecx], al
je 0x526bda
mov ecx, dword [esp + 0x20]
inc ecx
add esi, edi
mov dword [esp + 0x20], ecx
cmp ecx, dword [esp + 0x18]
jl 0x526af0
jmp 0x526bda
mov edx, dword [esp + 0x158]
cmp dword [edx + 0x88], 0
je 0x526be1
cmp esi, dword [edx + 0x84]
jbe 0x526be1
mov dword [edx + 0x64], edi
cmp dword [edx + 0x88], edi
jg 0x52fcd0
jmp 0x526be1
cmp ecx, edi
jge 0x526d21
mov eax, dword [esp + 0x158]
mov ebx, dword [esp + 0x20]
mov edi, dword [eax + 0x78]
cmp esi, edi
jae 0x526d87
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
mov ecx, dword [esp + 0x34]
test byte [edx + ecx], al
je 0x526d21
inc ebx
inc esi
cmp ebx, dword [esp + 0x18]
jl 0x526cf6
mov ecx, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
jne 0x5234dc
cmp esi, ebp
jb case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov ecx, dword [esp + 0x158]
dec esi
cmp esi, ebp
jae 0x526d37
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0x134
ret
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x526d28
cmp esi, dword [ecx + 0x84]
jbe 0x526d28
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
jmp 0x526d28
movzx ecx, byte [edi + 1]
lea ebx, [edi + 3]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x34], ebx
add edi, ecx
mov dword [esp + 0x14c], edi
mov cl, byte [edi]
movzx edx, cl
lea eax, [edx - 0x62]
cmp eax, 0xb
ja case.default.0x526ded
movzx eax, byte [eax + 0x5304e8]
jmp dword [eax*4 + 0x5304e0]
lea eax, [edx - 0x62]
inc edi
mov dword [esp + 0x14c], edi
cmp eax, 8
jae 0x526e0f
mov ecx, eax
and ecx, 1
mov dword [esp + 0x2c], ecx
jmp 0x526e17
mov dword [esp + 0x28], 1
movsx ebp, byte [eax + 0x5f15a0]
movsx eax, byte [eax + 0x5f15ac]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x526e8e
mov dword [esp + 0x20], connect
jmp 0x526e8e
movzx ebp, byte [edi + 1]
xor eax, eax
cmp cl, 0x69
sete al
mov dword [esp + 0x2c], eax
xor eax, eax
cmp cl, 0x6d
movzx ecx, byte [edi + 3]
sete al
shl ebp, 8
mov dword [esp + 0x28], eax
movzx eax, byte [edi + 2]
or ebp, eax
shl ecx, 8
movzx eax, byte [edi + 4]
or ecx, eax
mov eax, bind
cmove ecx, eax
add edi, 5
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14c], edi
jmp 0x526e8e
mov dword [esp + 0x20], 1
mov ebp, 1
mov edi, 1
cmp ebp, edi
jl 0x526fb2
nop dword [eax + eax]
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52da6e
movzx edx, byte [esi]
inc esi
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x526f96
cmp edx, 0xc0
jb 0x526f96
test dl, 0x20
jne 0x526ee5
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x526f96
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x526f0c
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x526f92
test dl, 8
jne 0x526f2f
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x526f92
test dl, 4
jne 0x526f5e
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x526f92
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push edx
call fcn.00537780
add esp, 0xc
test eax, eax
je case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x526ea0
mov edi, dword [esp + 0x20]
cmp ebp, edi
je 0x5234dc
cmp dword [esp + 0x2c], 0
jne 0x52d719
mov ebx, esi
cmp ebp, edi
jge 0x5270e6
nop dword [eax]
nop word [eax + eax]
mov eax, dword [esp + 0x158]
mov edi, 1
cmp esi, dword [eax + 0x78]
jae 0x527192
mov ecx, dword [esp + 0x14]
movzx edx, byte [esi]
test ecx, ecx
je 0x5270c7
cmp edx, 0xc0
jb 0x5270c7
test dl, 0x20
jne 0x527026
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x5270bf
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x527045
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x5270bb
and eax, 0x3f
test dl, 8
jne 0x527065
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x5270bb
test dl, 4
jne 0x52708e
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x5270bb
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
mov ecx, dword [esp + 0x14]
and eax, 0x3f
shl edx, 6
or edx, eax
push ecx
push dword [esp + 0x38]
push edx
call fcn.00537780
add esp, 0xc
test eax, eax
je 0x5270e6
inc ebp
add esi, edi
cmp ebp, dword [esp + 0x20]
jl 0x526fe0
mov ebp, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x14c]
jne 0x5234f0
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ebp
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov eax, esi
dec esi
cmp eax, ebx
je case.0x52fb53.14
cmp dword [esp + 0x14], 0
je 0x52715a
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x52715a
nop word [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x527150
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ebp
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x527130
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov ebp, eax
cmp dword [ebp + 0x88], 0
je 0x5270ed
cmp esi, dword [ebp + 0x84]
jbe 0x5270ed
mov dword [ebp + 0x64], edi
cmp dword [ebp + 0x88], edi
jg 0x52fcd0
jmp 0x5270ed
cmp dword [esp + 0x14], ebx
je 0x52723f
movzx eax, byte [edi + 1]
inc edi
mov dword [esp + 0x14c], edi
mov edx, 1
cmp eax, 0xc0
jb 0x52720a
test al, 0x20
jne 0x5271ea
mov edx, 2
jmp 0x52720a
test al, 0x10
jne 0x5271f5
mov edx, 3
jmp 0x52720a
test al, 8
jne 0x527200
mov edx, 4
jmp 0x52720a
test al, 4
mov edx, ebx
setne dl
add edx, 5
mov eax, dword [ebp + 0x78]
sub eax, esi
cmp edx, eax
jg 0x52d8b3
test edx, edx
jle 0x5234f0
nop
mov cl, byte [edi]
dec edx
mov al, byte [esi]
inc edi
inc esi
mov dword [esp + 0x14c], edi
cmp cl, al
jne case.0x52fb53.14
test edx, edx
jg 0x527220
jmp 0x5234f0
mov eax, dword [ebp + 0x78]
sub eax, esi
cmp eax, 1
jl 0x52dc26
mov al, byte [esi]
inc esi
cmp byte [edi + 1], al
jne case.0x52fb53.14
add edi, 2
mov dword [esp + 0x14c], edi
jmp 0x5234f0
cmp esi, dword [ebp + 0x78]
jae 0x52dc26
cmp dword [esp + 0x14], ebx
je 0x5274c3
mov edx, dword [esp + 0x14c]
mov edi, 1
inc edx
mov dword [esp + 0x14c], edx
movzx ebx, byte [edx]
cmp ebx, 0xc0
jb 0x52735b
test bl, 0x20
jne 0x5272bc
movzx eax, byte [edx + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
mov edi, 2
jmp 0x52735b
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
and ecx, 0x3f
test bl, 0x10
jne 0x5272db
and ebx, 0xf
mov edi, 3
shl ebx, 6
or ecx, ebx
jmp 0x527351
and eax, 0x3f
test bl, 8
jne 0x5272fb
and ebx, 7
mov edi, 4
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
jmp 0x527351
test bl, 4
jne 0x527324
and ebx, 3
mov edi, 5
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
jmp 0x527351
and ebx, edi
mov edi, 6
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 3]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [edx + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov ebx, ecx
cmp ebx, 0x80
jae 0x52738a
mov edx, dword [ebp + 0x38]
movzx ecx, byte [esi]
mov al, byte [ebx + edx]
cmp al, byte [ecx + edx]
jne case.0x52fb53.14
mov edi, dword [esp + 0x14c]
inc edi
inc esi
mov dword [esp + 0x14c], edi
jmp 0x5234f0
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x527462
test dl, 0x20
jne 0x5273b3
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x527462
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5273da
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x527460
test dl, 8
jne 0x5273fd
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x527460
test dl, 4
jne 0x52742c
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x527460
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
add dword [esp + 0x14c], edi
mov edi, dword [esp + 0x14c]
cmp ebx, edx
je 0x5234f0
mov eax, ebx
test eax, eax
jns 0x527481
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x5f8360]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x52749c
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5fa560]
mov eax, dword [eax*8 + 0x5f6ce4]
add eax, ebx
cmp edx, eax
jne case.0x52fb53.14
mov edi, dword [esp + 0x14c]
jmp 0x5234f0
mov edx, dword [ebp + 0x38]
movzx eax, byte [edi + 1]
movzx ecx, byte [esi]
mov al, byte [eax + edx]
cmp al, byte [ecx + edx]
jne case.0x52fb53.14
inc esi
add edi, 2
mov dword [esp + 0x14c], edi
jmp 0x5234f0
movzx ebx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ebx, 8
or ebx, eax
add edi, 3
mov dword [esp + 0x20], ebx
mov ebp, ebx
jmp 0x5275b5
mov dword [esp + 0x28], 1
movzx ebx, byte [edi + 1]
xor ebp, ebp
movzx eax, byte [edi + 2]
shl ebx, 8
or ebx, eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebx
cmp cl, 0x28
je 0x527531
mov dword [esp + 0x2c], ebp
cmp cl, 0x35
jne 0x527539
mov dword [esp + 0x2c], 1
add edi, 3
jmp 0x5275b9
xor ebp, ebp
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], connect
inc edi
jmp 0x5275b5
mov dword [esp + 0x28], 1
mov ebp, 1
mov dword [esp + 0x20], connect
inc edi
jmp 0x5275b5
xor ebp, ebp
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 1
inc edi
jmp 0x5275b5
cmp edx, 0x2e
mov ecx, edx
sbb eax, eax
inc edi
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, ecx
and eax, 1
mov dword [esp + 0x2c], eax
movsx eax, byte [ecx + 0x5f15ac]
movsx ebp, byte [ecx + 0x5f15a0]
test eax, eax
mov ecx, bind
cmove eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14c], edi
cmp dword [esp + 0x14], 0
je 0x527a5f
mov eax, dword [esp + 0x14c]
mov edi, 1
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], eax
movzx ebx, byte [eax]
cmp ebx, 0xc0
jb 0x527718
test bl, 0x20
jne 0x527617
movzx eax, byte [eax + 1]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
mov edi, 2
or ebx, eax
add dword [esp + 0x14c], edi
mov dword [esp + 0x18], edi
jmp 0x52772a
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x52764e
and ebx, 0xf
mov edi, 3
shl ebx, 6
or ecx, ebx
mov dword [esp + 0x18], edi
shl ecx, 6
or ecx, eax
add dword [esp + 0x14c], edi
mov ebx, ecx
jmp 0x52772a
test bl, 8
jne 0x52768a
and ebx, 7
mov edi, 4
shl ebx, 6
or ecx, ebx
mov dword [esp + 0x18], edi
shl ecx, 6
or ecx, eax
mov eax, dword [esp + 0x14c]
shl ecx, 6
movzx eax, byte [eax + 3]
and eax, 0x3f
or ecx, eax
add dword [esp + 0x14c], edi
mov ebx, ecx
jmp 0x52772a
test bl, 4
jne 0x5276cf
and ebx, 3
mov edi, 5
shl ebx, 6
or ecx, ebx
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x14c]
shl ecx, 6
or ecx, eax
shl ecx, 6
movzx eax, byte [ebx + 3]
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add dword [esp + 0x14c], edi
mov ebx, ecx
jmp 0x52772a
and ebx, edi
mov edi, 6
shl ebx, 6
or ecx, ebx
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x14c]
shl ecx, 6
or ecx, eax
shl ecx, 6
movzx eax, byte [ebx + 3]
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 4]
and eax, 0x3f
shl ecx, 6
or ecx, eax
movzx eax, byte [ebx + 5]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, dword [esp + 0x14c]
mov ebx, ecx
add eax, edi
mov dword [esp + 0x14c], eax
cmp edi, 1
jle 0x527a6a
cmp edx, 0x2e
jb 0x52777a
mov eax, ebx
test eax, eax
jns 0x527738
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x5f8360]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x527753
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5fa560]
mov eax, dword [eax*8 + 0x5f6ce4]
add eax, ebx
cmp eax, ebx
je 0x52777a
lea ecx, [esp + 0x54]
push ecx
push eax
call fcn.00537440
add esp, 8
jmp 0x52777c
xor eax, eax
mov ebx, 1
mov dword [esp + 0x10], eax
cmp ebp, ebx
jl 0x527891
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x78]
mov ebp, eax
mov dword [esp + 0x30], eax
sub ebp, edi
nop
cmp esi, ebp
ja 0x527802
mov edx, dword [esp + 0x34]
mov ecx, esi
sub edi, 4
jb 0x5277c1
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5277c6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x5277b0
cmp edi, 0xfffffffc
je 0x5277f3
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5277fe
cmp edi, 0xfffffffd
je 0x5277f3
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5277fe
cmp edi, 0xfffffffe
je 0x5277f3
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5277fe
cmp edi, 0xffffffff
je 0x5277f3
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x5277fe
mov edi, dword [esp + 0x18]
add esi, edi
jmp 0x52787e
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
test edi, edi
jle 0x52da48
sub eax, edi
cmp esi, eax
ja 0x52da48
lea edx, [esp + 0x54]
mov ecx, esi
sub edi, 4
jb 0x527834
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x527839
add ecx, 4
add edx, 4
sub edi, 4
jae 0x527823
cmp edi, 0xfffffffc
je 0x527876
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x52da48
cmp edi, 0xfffffffd
je 0x527876
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x52da48
cmp edi, 0xfffffffe
je 0x527876
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x52da48
cmp edi, 0xffffffff
je 0x527876
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x52da48
add esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
inc ebx
cmp ebx, dword [esp + 0x1c]
jle 0x5277a0
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp ebp, eax
je 0x5234dc
cmp dword [esp + 0x2c], 0
jne 0x52d8cd
mov ebx, esi
mov dword [esp + 0x30], ebx
cmp ebp, eax
jge 0x5279b6
mov eax, dword [esp + 0x158]
mov ebp, dword [eax + 0x78]
mov ebx, ebp
sub ebx, edi
cmp esi, ebx
ja 0x527921
mov edx, dword [esp + 0x34]
mov ecx, esi
sub edi, 4
jb 0x5278e4
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5278e9
add ecx, 4
add edx, 4
sub edi, 4
jae 0x5278d3
cmp edi, 0xfffffffc
je 0x527916
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x527921
cmp edi, 0xfffffffd
je 0x527916
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x527921
cmp edi, 0xfffffffe
je 0x527916
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x527921
cmp edi, 0xffffffff
je 0x527916
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x527921
mov edi, dword [esp + 0x18]
add esi, edi
jmp 0x52799f
mov edi, dword [esp + 0x10]
test edi, edi
jle 0x527a25
mov eax, ebp
sub eax, edi
cmp esi, eax
ja 0x527a25
lea edx, [esp + 0x54]
mov ecx, esi
sub edi, 4
jb 0x527955
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x52795a
add ecx, 4
add edx, 4
sub edi, 4
jae 0x527944
cmp edi, 0xfffffffc
je 0x527997
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x527a25
cmp edi, 0xfffffffd
je 0x527997
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x527a25
cmp edi, 0xfffffffe
je 0x527997
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x527a25
cmp edi, 0xffffffff
je 0x527997
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x527a25
add esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x20]
jl 0x5278c4
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x14c]
jne 0x5234f0
cmp esi, ebx
jbe 0x52d0df
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ebp
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
jne 0x527a1c
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x527a12
cmp esi, ebx
ja 0x5279d7
jmp 0x52d0df
mov ebp, dword [esp + 0x158]
cmp dword [ebp + 0x88], 0
je 0x527a56
cmp esi, dword [ebp + 0x78]
jb 0x527a56
cmp esi, dword [ebp + 0x84]
jbe 0x527a56
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x52fcd0
mov ebx, dword [esp + 0x30]
jmp 0x5279bd
movzx ebx, byte [edi]
inc edi
mov dword [esp + 0x14c], edi
cmp edx, 0x2e
jb 0x527b85
mov ecx, dword [esp + 0x158]
mov eax, dword [ecx + 0x3c]
movzx edi, byte [eax + ebx]
cmp ebp, 1
jl 0x527ab4
mov edx, dword [ecx + 0x78]
mov ecx, 1
nop
cmp esi, edx
jae 0x52da67
movzx eax, byte [esi]
cmp ebx, eax
je 0x527aa7
cmp edi, eax
jne case.0x52fb53.14
inc ecx
inc esi
cmp ecx, ebp
jle 0x527a90
mov ecx, dword [esp + 0x158]
mov eax, dword [esp + 0x20]
cmp ebp, eax
je 0x5234dc
cmp dword [esp + 0x2c], 0
jne 0x52da9a
mov edx, dword [esp + 0x1c]
mov ebp, esi
cmp edx, eax
jge 0x527aef
mov ecx, dword [ecx + 0x78]
cmp esi, ecx
jae 0x527b54
movzx eax, byte [esi]
cmp ebx, eax
je 0x527ae7
cmp edi, eax
jne 0x527aef
inc edx
inc esi
cmp edx, dword [esp + 0x20]
jl 0x527ad8
mov ecx, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
jne 0x5234dc
mov edi, dword [esp + 0x14c]
cmp esi, ebp
je 0x52cc60
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
dec esi
test eax, eax
jne 0x52d0fa
mov ecx, dword [esp + 0x158]
cmp esi, ebp
jne 0x527b10
mov ebp, ecx
jmp 0x52d0df
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x527af6
cmp esi, dword [ecx + 0x84]
jbe 0x527af6
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
jmp 0x527af6
mov edi, dword [esp + 0x158]
mov ecx, 1
cmp ebp, ecx
jl 0x527bb1
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x52dbfa
movzx eax, byte [esi]
inc esi
cmp ebx, eax
jne case.0x52fb53.14
inc ecx
cmp ecx, ebp
jle 0x527b98
mov edx, dword [esp + 0x20]
cmp ebp, edx
je 0x5234dc
cmp dword [esp + 0x2c], 0
jne 0x52db62
mov edi, esi
cmp ebp, edx
jge 0x527be9
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x527c07
movzx eax, byte [esi]
cmp ebx, eax
jne 0x527be9
inc ebp
inc esi
cmp ebp, edx
jl 0x527bd8
mov ebp, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
je 0x52cd0f
mov edi, dword [esp + 0x14c]
jmp 0x5234f0
mov ebp, dword [esp + 0x158]
cmp dword [ebp + 0x88], 0
je 0x527bf0
cmp esi, dword [ebp + 0x84]
jbe 0x527bf0
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x52fcd0
jmp 0x527bf0
cmp esi, dword [ebp + 0x78]
jae 0x52dc26
cmp dword [esp + 0x14], ebx
je 0x527e87
movzx edx, byte [edi + 1]
add edi, 2
mov dword [esp + 0x14c], edi
cmp edx, 0xc0
jb 0x527d31
test dl, 0x20
jne 0x527c7b
movzx eax, byte [edi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc edi
jmp 0x527d2a
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x527ca2
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add edi, 2
jmp 0x527d28
test dl, 8
jne 0x527cc5
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edi, 3
jmp 0x527d28
test dl, 4
jne 0x527cf4
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edi, 4
jmp 0x527d28
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [edi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edi + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [edi + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add edi, 5
mov edx, ecx
mov dword [esp + 0x14c], edi
movzx ebx, byte [esi]
inc esi
cmp ebx, 0xc0
jb 0x527e09
test bl, 0x20
jne 0x527d5a
movzx eax, byte [esi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
inc esi
jmp 0x527e09
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x527d81
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x527e07
test bl, 8
jne 0x527da4
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x527e07
test bl, 4
jne 0x527dd3
and ebx, 3
shl ebx, 6
or ecx, ebx
shl ecx, 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
add esi, 4
jmp 0x527e07
and ebx, 1
shl ebx, 6
or ecx, ebx
shl ecx, 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
add esi, 5
mov ebx, ecx
cmp dword [esp + 0x1c], 0x1f
jne 0x527e25
cmp edx, ebx
jne 0x5234f0
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0x134
ret
cmp edx, 0x7f
jbe 0x527e63
mov eax, edx
test eax, eax
jns 0x527e33
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x5f8360]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x527e4e
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5fa560]
mov eax, dword [eax*8 + 0x5f6ce4]
add eax, edx
jmp 0x527e6a
mov eax, dword [ebp + 0x3c]
movzx eax, byte [eax + edx]
cmp edx, ebx
je case.0x52fb53.14
cmp eax, ebx
jne 0x5234f0
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
add esp, 0x134
ret
movzx edx, byte [esi]
inc esi
movzx ecx, byte [edi + 1]
cmp ecx, edx
je case.0x52fb53.14
cmp dword [esp + 0x1c], 0x20
jne 0x527ead
mov eax, dword [ebp + 0x3c]
movzx eax, byte [eax + ecx]
cmp eax, edx
je case.0x52fb53.14
add edi, 2
mov dword [esp + 0x14c], edi
jmp 0x5234f0
movzx ebp, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ebp, 8
or ebp, eax
add edi, 3
mov dword [esp + 0x20], ebp
mov edx, ebp
jmp 0x527fa6
movzx ebp, byte [edi + 1]
xor edx, edx
movzx eax, byte [edi + 2]
shl ebp, 8
or ebp, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], ebp
cmp cl, 0x42
je 0x527efc
mov dword [esp + 0x2c], edx
cmp cl, 0x4f
jne 0x527f04
mov dword [esp + 0x2c], 1
add edi, 3
jmp 0x527faa
xor edx, edx
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], connect
inc edi
jmp 0x527fa6
mov dword [esp + 0x28], 1
mov edx, 1
mov dword [esp + 0x20], connect
inc edi
jmp 0x527fa6
xor edx, edx
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], 1
inc edi
jmp 0x527fa6
movzx ecx, byte [edi + 1]
xor edx, edx
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], ecx
add edi, 3
jmp 0x527fa6
cmp edx, 0x48
mov ecx, edx
sbb eax, eax
inc edi
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, ecx
and eax, 1
mov dword [esp + 0x2c], eax
movsx eax, byte [ecx + 0x5f15ac]
movsx edx, byte [ecx + 0x5f15a0]
test eax, eax
mov ecx, bind
cmove eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edx
movzx ebx, byte [edi]
inc edi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14c], edi
test eax, eax
je 0x5280a6
cmp ebx, 0xc0
jb 0x5280a6
test bl, 0x20
jne 0x527fea
movzx eax, byte [edi]
and ebx, 0x1f
and eax, 0x3f
shl ebx, 6
or ebx, eax
inc edi
jmp 0x528097
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
and ecx, 0x3f
and eax, 0x3f
test bl, 0x10
jne 0x528011
and ebx, 0xf
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
add edi, 2
jmp 0x528097
test bl, 8
jne 0x528034
and ebx, 7
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add edi, 3
jmp 0x528097
test bl, 4
jne 0x528063
and ebx, 3
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [edi + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add edi, 4
jmp 0x528097
and ebx, 1
shl ebx, 6
or ebx, ecx
shl ebx, 6
or ebx, eax
movzx eax, byte [edi + 2]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [edi + 3]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [edi + 4]
shl ebx, 6
and eax, 0x3f
or ebx, eax
add edi, 5
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14c], edi
cmp dword [esp + 0x1c], 0x48
jb 0x52854c
test eax, eax
je 0x5280fa
cmp ebx, 0x7f
jbe 0x5280fa
mov eax, ebx
test eax, eax
jns 0x5280c3
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x5f8360]
mov eax, ebx
shl ecx, 7
and eax, 0x8000007f
jns 0x5280de
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5fa560]
mov ecx, dword [esp + 0x158]
mov ebp, dword [eax*8 + 0x5f6ce4]
add ebp, ebx
jmp 0x528108
mov ecx, dword [esp + 0x158]
mov eax, dword [ecx + 0x3c]
movzx ebp, byte [eax + ebx]
cmp dword [esp + 0x14], 0
je 0x52822e
mov edi, 1
cmp edx, edi
jl 0x52826a
mov ebx, dword [ecx + 0x78]
mov eax, dword [esp + 0x18]
cmp esi, ebx
jae 0x52dc31
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x52820b
test dl, 0x20
jne 0x528158
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x528207
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52817f
and edx, 0xf
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
add esi, 2
jmp 0x528205
test dl, 8
jne 0x5281a2
and edx, 7
shl edx, 6
or ecx, edx
shl ecx, 6
or ecx, eax
movzx eax, byte [esi + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add esi, 3
jmp 0x528205
test dl, 4
jne 0x5281d1
and edx, 3
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 4
jmp 0x528205
and edx, 1
shl edx, 6
or ecx, edx
shl ecx, 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
add esi, 5
mov edx, ecx
mov eax, dword [esp + 0x18]
cmp eax, edx
je case.0x52fb53.14
cmp ebp, edx
je case.0x52fb53.14
mov edx, dword [esp + 0x10]
inc edi
cmp edi, edx
jle 0x528127
mov ebx, dword [esp + 0x18]
jmp 0x52826a
mov ecx, 1
cmp edx, ecx
jl 0x528271
mov eax, dword [esp + 0x158]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x52e10a
movzx eax, byte [esi]
cmp ebx, eax
je case.0x52fb53.14
cmp ebp, eax
je case.0x52fb53.14
inc ecx
inc esi
cmp ecx, edi
jle 0x528245
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x14c]
mov eax, dword [esp + 0x20]
cmp edx, eax
je 0x5234e3
cmp dword [esp + 0x2c], 0
jne 0x52dc75
cmp dword [esp + 0x14], 0
mov ebx, esi
je 0x528487
cmp edx, eax
jge 0x5283d8
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x18]
mov edi, dword [eax + 0x78]
nop dword [eax + eax]
mov eax, 1
cmp esi, edi
jae 0x528453
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x5283bb
test dl, 0x20
jne 0x5282ea
movzx eax, byte [esi + 1]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 2
jmp 0x5283bb
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x10
jne 0x528314
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
mov eax, 3
jmp 0x5283b7
test dl, 8
jne 0x528343
movzx eax, byte [esi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 4
jmp 0x5283b7
test dl, 4
jne 0x52837b
movzx eax, byte [esi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 5
jmp 0x5283b7
and edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 6
mov ecx, dword [esp + 0x18]
cmp ecx, edx
je 0x5283d8
cmp ebp, edx
je 0x5283d8
mov edx, dword [esp + 0x10]
add esi, eax
inc edx
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x20]
jl 0x5282b0
mov ebp, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x14c]
jne 0x5234f0
cmp esi, ebx
jbe 0x52d0df
nop dword [eax]
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ebp
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
jne 0x52844a
nop dword [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x528440
cmp esi, ebx
ja 0x528400
jmp 0x52d0df
mov ebp, dword [esp + 0x158]
cmp dword [ebp + 0x88], 0
je 0x5283df
cmp esi, dword [ebp + 0x84]
jbe 0x5283df
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x88], eax
jg 0x52fcd0
jmp 0x5283df
cmp edx, eax
jge 0x5284b7
mov eax, dword [esp + 0x158]
mov edi, dword [esp + 0x18]
mov ecx, dword [eax + 0x78]
nop dword [eax]
cmp esi, ecx
jae 0x52851b
movzx eax, byte [esi]
cmp edi, eax
je 0x5284b7
cmp ebp, eax
je 0x5284b7
inc edx
inc esi
cmp edx, dword [esp + 0x20]
jl 0x5284a0
mov ebp, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x14c]
jne 0x5234f0
cmp esi, ebx
je 0x52d0df
nop dword [eax + eax]
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ebp
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
dec esi
cmp esi, ebx
jne 0x5284e0
jmp 0x52d0df
mov ebp, dword [esp + 0x158]
cmp dword [ebp + 0x88], 0
je 0x5284be
cmp esi, dword [ebp + 0x84]
jbe 0x5284be
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x52fcd0
jmp 0x5284be
test eax, eax
je 0x528670
mov ebp, dword [esp + 0x18]
mov edi, 1
cmp edx, edi
jl 0x52872a
mov eax, dword [esp + 0x158]
mov ebx, dword [eax + 0x78]
nop
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x52864e
test dl, 0x20
jne 0x5285a1
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52864e
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5285c8
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52864e
test dl, 8
jne 0x5285eb
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52864e
test dl, 4
jne 0x52861a
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52864e
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
cmp ebp, edx
je case.0x52fb53.14
mov edx, dword [esp + 0x10]
inc edi
cmp edi, edx
jle 0x528570
mov edi, dword [esp + 0x14c]
mov eax, dword [esp + 0x14]
jmp 0x5286b3
mov ecx, 1
cmp edx, ecx
jl 0x5286af
mov eax, dword [esp + 0x158]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 0x78]
cmp esi, edx
jae 0x52e10a
movzx eax, byte [esi]
inc esi
cmp ebx, eax
je case.0x52fb53.14
inc ecx
cmp ecx, edi
jle 0x528687
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x14c]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
cmp edx, ecx
je 0x5234e3
cmp dword [esp + 0x2c], 0
jne 0x52de8d
mov ebx, esi
test eax, eax
je 0x5288c7
cmp edx, ecx
jge 0x528818
mov eax, dword [esp + 0x158]
mov edi, dword [eax + 0x78]
nop word [eax + eax]
mov eax, 1
cmp esi, edi
jae 0x528893
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x528801
test dl, 0x20
jne 0x528733
movzx eax, byte [esi + 1]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 2
jmp 0x528801
mov edi, dword [esp + 0x14c]
jmp 0x5286b3
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x10
jne 0x52875d
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
mov eax, 3
jmp 0x5287fd
test dl, 8
jne 0x528789
movzx eax, byte [esi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 4
jmp 0x5287fd
test dl, 4
jne 0x5287c1
movzx eax, byte [esi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 5
jmp 0x5287fd
and edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 6
mov ecx, dword [esp + 0x20]
cmp ebp, edx
je 0x528818
add esi, eax
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
cmp eax, ecx
jl 0x5286f0
mov ebp, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x14c]
jne 0x5234f0
cmp esi, ebx
jbe 0x52d0df
nop dword [eax]
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ebp
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
jne 0x52888a
nop dword [eax + eax]
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x528880
cmp esi, ebx
ja 0x528840
jmp 0x52d0df
mov ebp, dword [esp + 0x158]
cmp dword [ebp + 0x88], 0
je 0x52881f
cmp esi, dword [ebp + 0x84]
jbe 0x52881f
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x88], eax
jg 0x52fcd0
jmp 0x52881f
cmp edx, ecx
jge 0x5288e8
mov eax, dword [esp + 0x158]
mov ecx, dword [eax + 0x78]
cmp esi, ecx
jae 0x52893d
movzx eax, byte [esi]
cmp ebp, eax
je 0x5288e8
inc edx
inc esi
cmp edx, dword [esp + 0x20]
jl 0x5288d5
mov ebp, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
jne 0x5234f0
cmp esi, ebx
je 0x52d0df
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ebp
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
dec esi
cmp esi, ebx
jne 0x528902
jmp 0x52d0df
mov ebp, dword [esp + 0x158]
cmp dword [ebp + 0x88], 0
je 0x5288ef
cmp esi, dword [ebp + 0x84]
jbe 0x5288ef
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x52fcd0
jmp 0x5288ef
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x2c], 1
mov dword [esp + 0x1c], ecx
mov ebx, ecx
add edi, 3
jmp 0x528a3e
movzx edx, byte [edi + 1]
xor ebx, ebx
movzx eax, byte [edi + 2]
shl edx, 8
or edx, eax
mov dword [esp + 0x1c], edx
xor edx, edx
cmp cl, 0x5c
sete dl
add edi, 3
mov dword [esp + 0x2c], edx
jmp 0x528a3e
xor ebx, ebx
mov dword [esp + 0x28], 1
mov dword [esp + 0x1c], connect
inc edi
jmp 0x528a3e
mov dword [esp + 0x28], 1
mov ebx, 1
mov dword [esp + 0x1c], connect
inc edi
jmp 0x528a3e
xor ebx, ebx
mov dword [esp + 0x28], 1
mov dword [esp + 0x1c], 1
inc edi
jmp 0x528a3e
movzx ecx, byte [edi + 1]
xor ebx, ebx
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x28], 1
mov dword [esp + 0x1c], ecx
add edi, 3
jmp 0x528a3e
movsx eax, byte [edx + 0x5f1557]
lea ecx, [edx - 0x55]
movsx ebx, byte [edx + 0x5f154b]
and ecx, 1
inc edi
mov dword [esp + 0x2c], ecx
test eax, eax
mov ecx, bind
cmove eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14c], edi
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x14c]
movzx edi, byte [edi]
inc ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14c], ecx
cmp edi, 0x10
je 0x528a72
cmp edi, 0xf
je 0x528a72
mov edx, dword [esp + 0x24]
or eax, 0xffffffff
jmp 0x528a9a
movzx ebp, byte [ecx + 1]
xor edx, edx
movzx eax, byte [ecx]
cmp edi, 0xf
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x158]
sete dl
add ecx, 2
mov dword [esp + 0x24], edx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x34], eax
test ebx, ebx
jle 0x528c82
test eax, eax
js 0x529808
cmp eax, 0xa
ja case.default.0x526026
jmp dword [eax*4 + 0x5304f4]
test edx, edx
jne case.0x52fb53.14
lea ecx, [edx + 1]
cmp ebx, ecx
jl 0x528c82
mov edx, dword [ebp + 0x78]
cmp esi, edx
jae 0x52fca3
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x528b13
cmp eax, 0xc0
jb 0x528b13
test al, 0x20
jne 0x528af5
inc esi
jmp 0x528b13
test al, 0x10
jne 0x528afe
add esi, 2
jmp 0x528b13
test al, 8
jne 0x528b07
add esi, 3
jmp 0x528b13
test al, 4
jne 0x528b10
add esi, 4
jmp 0x528b13
add esi, 5
inc ecx
cmp ecx, ebx
jle 0x528ad4
jmp 0x528c82
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x528c1a
cmp edx, 0xc0
jb 0x528c1a
test dl, 0x20
jne 0x528b6d
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x528c1a
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x528b94
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x528c1a
test dl, 8
jne 0x528bb7
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x528c1a
test dl, 4
jne 0x528be6
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x528c1a
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x528c23
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x528c3d
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp eax, 9
je 0x528c62
cmp eax, 5
je 0x528c62
cmp eax, 8
je 0x528c62
xor eax, eax
jmp 0x528c67
mov eax, 1
cmp eax, dword [esp + 0x24]
je case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x528b31
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x1c]
cmp ebx, edx
je 0x5234dc
cmp dword [esp + 0x2c], 0
mov eax, dword [esp + 0x34]
jne 0x52e14e
mov ebp, esi
mov dword [esp + 0x20], ebp
test eax, eax
js 0x52b6ae
cmp eax, 0xa
ja case.default.0x526026
jmp dword [eax*4 + 0x530520]
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x528dbb
cmp edx, 0xc0
jb 0x528dbb
test dl, 0x20
jne 0x528d0e
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x528dbb
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x528d35
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x528dbb
test dl, 8
jne 0x528d58
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x528dbb
test dl, 4
jne 0x528d87
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x528dbb
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x528dc4
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x528dde
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x38]
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp dword [eax*4 + 0x5f66b0], edx
sete cl
cmp ecx, dword [esp + 0x24]
je case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x528cd2
jmp 0x528c7a
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
nop dword [eax]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x528f19
cmp edx, 0xc0
jb 0x528f19
test dl, 0x20
jne 0x528e6c
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x528f19
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x528e93
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x528f19
test dl, 8
jne 0x528eb6
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x528f19
test dl, 4
jne 0x528ee5
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x528f19
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x528f22
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x528f3c
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x24]
je case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x528e30
jmp 0x528c7a
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52906c
cmp edx, 0xc0
jb 0x52906c
test dl, 0x20
jne 0x528fbf
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52906c
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x528fe6
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52906c
test dl, 8
jne 0x529009
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52906c
test dl, 4
jne 0x529038
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52906c
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x529075
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52908f
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce0]
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x24]
je case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x528f83
jmp 0x528c7a
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x5291bf
cmp edx, 0xc0
jb 0x5291bf
test dl, 0x20
jne 0x529112
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x5291bf
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x529139
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x5291bf
test dl, 8
jne 0x52915c
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x5291bf
test dl, 4
jne 0x52918b
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x5291bf
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x5291c8
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x5291e2
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x529209
cmp eax, 3
je 0x529209
xor eax, eax
jmp 0x52920e
mov eax, 1
cmp eax, dword [esp + 0x24]
je case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x5290d6
jmp 0x528c7a
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
nop word [eax + eax]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x529329
cmp edx, 0xc0
jb 0x529329
test dl, 0x20
jne 0x52927c
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x529329
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5292a3
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x529329
test dl, 8
jne 0x5292c6
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x529329
test dl, 4
jne 0x5292f5
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x529329
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
cmp edx, 0x180e
ja 0x52936c
je case.0x529388.8192
cmp edx, 0x85
ja 0x529358
je case.0x529388.8192
cmp edx, 9
jb case.0x529388.8203
cmp edx, 0xd
jbe case.0x529388.8192
cmp edx, 0x20
jmp 0x52939d
cmp edx, 0xa0
je case.0x529388.8192
cmp edx, 0x1680
jmp 0x52939d
cmp edx, 0x202f
ja 0x52938f
je case.0x529388.8192
lea eax, [edx - 0x2000]
cmp eax, 0x29
ja case.0x529388.8203
movzx eax, byte [eax + 0x530554]
jmp dword [eax*4 + 0x53054c]
cmp edx, 0x205f
je case.0x529388.8192
cmp edx, 0x3000
je case.0x529388.8192
mov eax, edx
test eax, eax
jns 0x5293a8
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x5293c2
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp dword [eax*4 + 0x5f66b0], 6
sete cl
cmp ecx, dword [esp + 0x24]
je case.0x52fb53.14
jmp 0x5293f8
cmp dword [esp + 0x24], 0
jne case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x529240
jmp 0x528c7a
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
nop word [eax + eax]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x529509
cmp edx, 0xc0
jb 0x529509
test dl, 0x20
jne 0x52945c
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x529509
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x529483
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x529509
test dl, 8
jne 0x5294a6
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x529509
test dl, 4
jne 0x5294d5
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x529509
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x529512
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x5f8360]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x52952d
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x529559
cmp eax, 3
je 0x529559
cmp edx, 0x5f
je 0x529559
xor eax, eax
jmp 0x52955e
mov eax, 1
cmp eax, dword [esp + 0x24]
je case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x529420
jmp 0x528c7a
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
nop word [eax + eax]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x529679
cmp edx, 0xc0
jb 0x529679
test dl, 0x20
jne 0x5295cc
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x529679
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x5295f3
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x529679
test dl, 8
jne 0x529616
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x529679
test dl, 4
jne 0x529645
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x529679
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, dword [esp + 0x38]
mov ecx, dword [eax*4 + 0x5f6ba0]
lea eax, [eax*4 + 0x5f6ba0]
cmp edx, ecx
jb 0x52969d
nop
lea eax, [eax + 4]
cmp edx, ecx
je 0x5296b6
mov ecx, dword [eax]
cmp edx, ecx
jae 0x529690
cmp dword [esp + 0x24], 0
je case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x529590
jmp 0x528c7a
cmp dword [esp + 0x24], 0
jne case.0x52fb53.14
jmp 0x5296a8
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x5297c0
cmp edx, 0xc0
jb 0x5297c0
test dl, 0x20
jne 0x529713
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x5297c0
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52973a
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x5297c0
test dl, 8
jne 0x52975d
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x5297c0
test dl, 4
jne 0x52978c
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x5297c0
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
cmp edx, 0x24
je 0x5297eb
cmp edx, 0x40
je 0x5297eb
cmp edx, 0x60
je 0x5297eb
cmp edx, 0xa0
jb 0x5297df
cmp edx, 0xd7ff
jbe 0x5297eb
cmp edx, 0xe000
jae 0x5297eb
xor eax, eax
jmp 0x5297f0
mov eax, 1
cmp eax, dword [esp + 0x24]
je case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x5296d7
jmp 0x528c7a
cmp edi, 0x16
jne 0x529ad1
mov ecx, dword [esp + 0x158]
mov edi, 1
mov dword [esp + 0x30], edi
cmp ebx, edi
jl 0x52a5f5
nop dword [eax]
mov ebp, dword [ecx + 0x78]
cmp esi, ebp
jae 0x52dc38
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x529923
cmp edx, 0xc0
jb 0x529923
test dl, 0x20
jne 0x52986f
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x529923
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x529896
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52991c
test dl, 8
jne 0x5298b9
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52991c
test dl, 4
jne 0x5298e8
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52991c
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x158]
mov eax, edx
test eax, eax
jns 0x52992c
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x529946
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx ebx, byte [eax*8 + 0x5f6ce2]
cmp esi, ebp
jae 0x529a8e
cmp dword [esp + 0x14], 0
mov edi, 1
movzx edx, byte [esi]
je 0x529a32
cmp edx, 0xc0
jb 0x529a32
test dl, 0x20
jne 0x529995
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x529a2a
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x5299b4
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x529a2a
and eax, 0x3f
test dl, 8
jne 0x5299d4
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x529a2a
test dl, 4
jne 0x5299fd
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x529a2a
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x529a3b
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x529a55
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx ecx, byte [eax*8 + 0x5f6ce2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x5f6728], eax
je 0x529a83
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x529960
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x529ab7
cmp esi, ebp
jb 0x529ab7
cmp esi, dword [ecx + 0x84]
jbe 0x529ab7
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
mov ebx, dword [esp + 0x18]
inc edi
mov dword [esp + 0x30], edi
cmp edi, ebx
jle 0x529830
mov edi, dword [esp + 0x10]
jmp 0x528c89
cmp dword [esp + 0x14], 0
lea eax, [edi - 6]
je 0x52a516
cmp eax, 0xf
ja case.default.0x526026
jmp dword [eax*4 + 0x530580]
mov ebp, dword [esp + 0x18]
mov ebx, 1
cmp ebp, ebx
jl 0x52a8c2
mov edx, dword [esp + 0x158]
nop word [eax + eax]
mov eax, dword [edx + 0x78]
cmp esi, eax
jae 0x52e0cd
mov ecx, dword [edx + 0x18]
lea edi, [edx + 0x1c]
test ecx, ecx
je 0x529b46
push dword [esp + 0x14]
push edi
push eax
push ecx
push esi
call fcn.00537150
add esp, 0x14
test eax, eax
jne case.0x52fb53.14
mov edx, dword [esp + 0x158]
jmp 0x529b6a
mov ecx, dword [edi]
sub eax, ecx
cmp esi, eax
ja 0x529b6a
mov al, byte [esi]
cmp al, byte [edx + 0x34]
jne 0x529b6a
cmp ecx, 1
je case.0x52fb53.14
mov al, byte [esi + 1]
cmp al, byte [edx + 0x35]
je case.0x52fb53.14
cmp dword [edx + 0x88], 0
je 0x529ba1
lea eax, [esi + 1]
cmp eax, dword [edx + 0x78]
jb 0x529ba1
cmp dword [edx + 0x18], 0
jne 0x529ba1
cmp dword [edi], 2
jne 0x529ba1
mov al, byte [esi]
cmp al, byte [edx + 0x34]
jne 0x529ba1
mov dword [edx + 0x64], 1
cmp dword [edx + 0x88], 1
jg 0x52fcd0
mov ecx, dword [edx + 0x78]
inc esi
cmp esi, ecx
jae 0x529bbd
nop dword [eax]
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x529bbd
inc esi
cmp esi, ecx
jb 0x529bb0
inc ebx
cmp ebx, ebp
jle 0x529b10
jmp 0x528c7a
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
nop dword [eax + eax]
cmp esi, edi
jae 0x52fca3
mov ecx, dword [ebp + 0x78]
inc esi
cmp esi, ecx
jae 0x529bfd
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x529bfd
inc esi
cmp esi, ecx
jb 0x529bf0
inc edx
cmp edx, ebx
jle 0x529be0
jmp 0x528c7e
mov ecx, dword [esp + 0x158]
mov eax, dword [ecx + 0x78]
sub eax, ebx
cmp esi, eax
ja case.0x52fb53.14
add esi, ebx
jmp 0x528c89
mov ecx, dword [esp + 0x158]
mov edi, 1
cmp ebx, edi
jl 0x52a5f5
mov ebx, dword [ecx + 0x78]
mov ebp, dword [esp + 0x18]
nop dword [eax]
cmp esi, ebx
jae 0x52dc38
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x529d25
test dl, 0x20
jne 0x529c71
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x529d25
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x529c98
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x529d1e
test dl, 8
jne 0x529cbb
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x529d1e
test dl, 4
jne 0x529cea
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x529d1e
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x158]
cmp edx, 0xd
ja 0x529d42
je 0x529d36
cmp edx, 0xa
je 0x529d63
lea eax, [edx - 0xb]
jmp 0x529d50
cmp esi, ebx
jae 0x529d63
cmp byte [esi], 0xa
jne 0x529d63
inc esi
jmp 0x529d63
cmp edx, 0x85
je 0x529d59
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x52fb53.14
cmp dword [ecx + 0x68], 0
jne case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x529c40
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x528c89
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
nop dword [eax]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x529e6e
test dl, 0x20
jne 0x529dc1
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x529e6e
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x529de8
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x529e6e
test dl, 8
jne 0x529e0b
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x529e6e
test dl, 4
jne 0x529e3a
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x529e6e
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
cmp edx, 0x180e
ja 0x529ea0
je case.0x52fb53.14
cmp edx, 0xa0
ja 0x529e98
je case.0x52fb53.14
cmp edx, 9
je case.0x52fb53.14
cmp edx, 0x20
jmp 0x529ed0
cmp edx, 0x1680
jmp 0x529ed0
cmp edx, 0x205f
ja 0x529eca
je case.0x52fb53.14
cmp edx, 0x2000
jb 0x529ed6
cmp edx, 0x200a
jbe case.0x52fb53.14
cmp edx, 0x202f
jmp 0x529ed0
cmp edx, 0x3000
je case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x529d90
jmp 0x528c7a
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x529fd6
test dl, 0x20
jne 0x529f29
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x529fd6
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x529f50
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x529fd6
test dl, 8
jne 0x529f73
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x529fd6
test dl, 4
jne 0x529fa2
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x529fd6
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
cmp edx, 0x180e
ja 0x529ffc
je 0x52a02e
cmp edx, 0xa0
ja 0x529ff4
je 0x52a02e
cmp edx, 9
je 0x52a02e
cmp edx, 0x20
jmp 0x52a028
cmp edx, 0x1680
jmp 0x52a028
cmp edx, 0x205f
ja 0x52a022
je 0x52a02e
cmp edx, 0x2000
jb case.0x52fb53.14
cmp edx, 0x200a
jbe 0x52a02e
cmp edx, 0x202f
jmp 0x52a028
cmp edx, 0x3000
jne case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x529ef8
jmp 0x528c7a
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x52a12e
test dl, 0x20
jne 0x52a081
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52a12e
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52a0a8
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52a12e
test dl, 8
jne 0x52a0cb
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52a12e
test dl, 4
jne 0x52a0fa
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52a12e
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
cmp edx, 0x85
ja 0x52a146
je case.0x52fb53.14
cmp edx, 0xa
jb 0x52a15a
cmp edx, 0xd
jmp 0x52a154
cmp edx, 0x2028
jb 0x52a15a
cmp edx, 0x2029
jbe case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x52a050
jmp 0x528c7a
mov edi, 1
cmp ebx, edi
jl 0x528c7e
mov ebx, dword [ebp + 0x78]
mov ebp, dword [esp + 0x18]
nop dword [eax]
cmp esi, ebx
jae 0x52e10a
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x52a25e
test dl, 0x20
jne 0x52a1b1
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52a25e
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52a1d8
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52a25e
test dl, 8
jne 0x52a1fb
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52a25e
test dl, 4
jne 0x52a22a
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52a25e
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
cmp edx, 0x85
ja 0x52a270
je 0x52a27f
lea eax, [edx - 0xa]
cmp eax, 3
jmp 0x52a279
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x52a180
jmp 0x528c7a
mov ecx, dword [esp + 0x158]
mov edi, 1
cmp ebx, edi
jl 0x52a5f5
mov ebx, dword [ecx + 0x78]
mov ebp, dword [esp + 0x18]
cmp esi, ebx
jae 0x52dc38
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x52a38d
test dl, 0x20
jne 0x52a2d9
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52a38d
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52a300
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52a386
test dl, 8
jne 0x52a323
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52a386
test dl, 4
jne 0x52a352
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52a386
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x158]
cmp edx, 0x80
jae 0x52a3a2
mov eax, dword [ecx + 0x40]
test byte [edx + eax], 4
jne case.0x52fb53.14
inc edi
cmp edi, ebp
jle 0x52a2a8
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x528c89
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.0x52fb53.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je case.0x52fb53.14
inc edx
inc esi
cmp edx, ebx
jle 0x52a3c8
jmp 0x528c7e
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x52a427
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x52fb53.14
mov ecx, dword [ebp + 0x78]
inc esi
cmp esi, ecx
jae 0x52a43d
nop
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x52a43d
inc esi
cmp esi, ecx
jb 0x52a430
inc edx
cmp edx, ebx
jle 0x52a407
jmp 0x528c7e
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.0x52fb53.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je case.0x52fb53.14
inc edx
inc esi
cmp edx, ebx
jle 0x52a457
jmp 0x528c7e
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x52a4b6
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x52fb53.14
mov ecx, dword [ebp + 0x78]
inc esi
cmp esi, ecx
jae 0x52a4cd
nop
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x52a4cd
inc esi
cmp esi, ecx
jb 0x52a4c0
inc edx
cmp edx, ebx
jle 0x52a496
jmp 0x528c7e
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
cmp ecx, 0x80
jae case.0x52fb53.14
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x52fb53.14
inc edx
inc esi
cmp edx, ebx
jle 0x52a4e7
jmp 0x528c7e
cmp eax, 0xf
ja case.default.0x526026
jmp dword [eax*4 + 0x5305c0]
mov ebp, dword [esp + 0x18]
mov ebx, 1
mov ecx, dword [esp + 0x158]
cmp ebp, ebx
jl 0x52a8b9
nop
mov eax, dword [ecx + 0x78]
cmp esi, eax
jae 0x52dc38
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x52a57b
mov edi, dword [esp + 0x158]
push 0
add edi, 0x1c
push edi
push eax
push ecx
push esi
call fcn.00537150
add esp, 0x14
test eax, eax
jne case.0x52fb53.14
mov ecx, dword [esp + 0x158]
jmp 0x52a5b0
mov edx, dword [esp + 0x158]
mov ecx, dword [edx + 0x1c]
lea edi, [edx + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x52a5ae
mov al, byte [esi]
cmp al, byte [edx + 0x34]
jne 0x52a5ae
cmp ecx, 1
je case.0x52fb53.14
mov al, byte [esi + 1]
mov ecx, edx
cmp al, byte [ecx + 0x35]
je case.0x52fb53.14
jmp 0x52a5b0
mov ecx, edx
cmp dword [ecx + 0x88], 0
je 0x52a5e7
lea eax, [esi + 1]
cmp eax, dword [ecx + 0x78]
jb 0x52a5e7
cmp dword [ecx + 0x18], 0
jne 0x52a5e7
cmp dword [edi], 2
jne 0x52a5e7
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x52a5e7
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
inc ebx
inc esi
cmp ebx, ebp
jle 0x52a540
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x528c89
mov ecx, dword [esp + 0x158]
mov eax, dword [ecx + 0x78]
sub eax, ebx
cmp esi, eax
ja 0x52dc38
add esi, ebx
jmp 0x528c89
mov ecx, 1
cmp ebx, ecx
jl 0x528c82
mov edx, dword [ebp + 0x78]
nop dword [eax]
cmp esi, edx
jae 0x52fca3
movzx eax, byte [esi]
inc esi
sub eax, 0xa
cmp eax, 0x7b
ja case.0x52fb53.14
movzx eax, byte [eax + 0x530610]
jmp dword [eax*4 + 0x530600]
cmp esi, edx
jae case.0x52a64f.10
cmp byte [esi], 0xa
jne case.0x52a64f.10
inc esi
jmp case.0x52a64f.10
cmp dword [ebp + 0x68], 0
jne case.0x52fb53.14
inc ecx
cmp ecx, ebx
jle 0x52a630
jmp 0x528c82
mov ecx, 1
cmp ebx, ecx
jl 0x528c82
mov edx, dword [ebp + 0x78]
cmp esi, edx
jae 0x52fca3
movzx eax, byte [esi]
inc esi
cmp eax, 9
je case.0x52fb53.14
cmp eax, 0x20
je case.0x52fb53.14
cmp eax, 0xa0
je case.0x52fb53.14
inc ecx
cmp ecx, ebx
jle 0x52a686
jmp 0x528c82
mov ecx, 1
cmp ebx, ecx
jl 0x528c82
mov edx, dword [ebp + 0x78]
nop dword [eax]
cmp esi, edx
jae 0x52fca3
movzx eax, byte [esi]
inc esi
cmp eax, 9
je 0x52a6f1
cmp eax, 0x20
je 0x52a6f1
cmp eax, 0xa0
jne case.0x52fb53.14
inc ecx
cmp ecx, ebx
jle 0x52a6d0
jmp 0x528c82
mov ecx, 1
cmp ebx, ecx
jl 0x528c82
mov edx, dword [ebp + 0x78]
nop dword [eax + eax]
cmp esi, edx
jae 0x52fca3
movzx eax, byte [esi]
inc esi
cmp eax, 0xa
jl 0x52a735
cmp eax, 0xd
jle case.0x52fb53.14
cmp eax, 0x85
je case.0x52fb53.14
inc ecx
cmp ecx, ebx
jle 0x52a710
jmp 0x528c82
mov ecx, 1
cmp ebx, ecx
jl 0x528c82
mov edx, dword [ebp + 0x78]
nop
cmp esi, edx
jae 0x52fca3
movzx eax, byte [esi]
inc esi
cmp eax, 0xa
jl case.0x52fb53.14
cmp eax, 0xd
jle 0x52a775
cmp eax, 0x85
jne case.0x52fb53.14
inc ecx
cmp ecx, ebx
jle 0x52a750
jmp 0x528c82
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
nop
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x52fb53.14
inc edx
inc esi
cmp edx, ebx
jle 0x52a790
jmp 0x528c7e
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
je case.0x52fb53.14
inc edx
inc esi
cmp edx, ebx
jle 0x52a7c3
jmp 0x528c7e
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x52fb53.14
inc edx
inc esi
cmp edx, ebx
jle 0x52a7f6
jmp 0x528c7e
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
nop dword [eax]
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
je case.0x52fb53.14
inc edx
inc esi
cmp edx, ebx
jle 0x52a830
jmp 0x528c7e
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x52fb53.14
inc edx
inc esi
cmp edx, ebx
jle 0x52a863
jmp 0x528c7e
mov edx, 1
cmp ebx, edx
jl 0x528c82
mov edi, dword [ebp + 0x78]
cmp esi, edi
jae 0x52fca3
movzx ecx, byte [esi]
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x52fb53.14
inc edx
inc esi
cmp edx, ebx
jle 0x52a896
jmp 0x528c7e
mov ebx, dword [esp + 0x18]
jmp 0x528c89
mov ebx, dword [esp + 0x18]
jmp 0x528c82
cmp ebx, edx
jge 0x52b631
mov edx, dword [ecx + 0x78]
mov edi, dword [esp + 0x14]
nop word [eax + eax]
mov eax, 1
cmp esi, edx
jae 0x52a943
movzx ecx, byte [esi]
test edi, edi
je 0x52a92a
cmp ecx, 0xc0
jb 0x52a92a
test cl, 0x20
jne 0x52a904
mov eax, 2
jmp 0x52a92a
test cl, 0x10
jne 0x52a910
mov eax, 3
jmp 0x52a92a
test cl, 8
jne 0x52a91c
mov eax, 4
jmp 0x52a92a
test cl, 4
mov eax, 0
setne al
add eax, 5
cmp dword [esp + 0x24], 0
jne 0x52b631
inc ebx
add esi, eax
cmp ebx, dword [esp + 0x1c]
jl 0x52a8e0
jmp 0x52b631
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52b638
cmp esi, dword [ecx + 0x84]
jbe 0x52b638
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jg 0x52fcd0
jmp 0x52b638
cmp ebx, edx
jge 0x52b631
mov edi, dword [ecx + 0x78]
mov ecx, 1
cmp esi, edi
jae 0x52aac9
cmp dword [esp + 0x14], 0
movzx edx, byte [esi]
je 0x52aa60
cmp edx, 0xc0
jb 0x52aa60
test dl, 0x20
jne 0x52a9bf
movzx eax, byte [esi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x52aa58
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52a9e1
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x52aa58
and eax, 0x3f
test dl, 8
jne 0x52aa01
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52aa58
test dl, 4
jne 0x52aa2a
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52aa58
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x52aa69
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52aa83
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp eax, 9
je 0x52aaa8
cmp eax, 5
je 0x52aaa8
cmp eax, 8
je 0x52aaa8
xor eax, eax
jmp 0x52aaad
mov eax, 1
cmp eax, dword [esp + 0x24]
je 0x52b631
inc ebx
add esi, ecx
cmp ebx, dword [esp + 0x1c]
jl 0x52a982
jmp 0x52b631
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52b638
cmp esi, dword [ecx + 0x84]
jbe 0x52b638
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
jmp 0x52b638
cmp ebx, edx
jge 0x52b631
mov ebx, dword [ecx + 0x78]
nop dword [eax]
mov edi, 1
cmp esi, ebx
jae 0x52ac56
cmp dword [esp + 0x14], 0
movzx edx, byte [esi]
je 0x52abed
cmp edx, 0xc0
jb 0x52abed
test dl, 0x20
jne 0x52ab4d
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x52abe5
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52ab6f
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x52abe5
and eax, 0x3f
test dl, 8
jne 0x52ab8f
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52abe5
test dl, 4
jne 0x52abb8
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52abe5
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x52abf6
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52ac10
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x38]
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp dword [eax*4 + 0x5f66b0], edx
sete cl
cmp ecx, dword [esp + 0x24]
je 0x52b631
mov eax, dword [esp + 0x18]
add esi, edi
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jl 0x52ab10
jmp 0x52b631
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52b638
cmp esi, dword [ecx + 0x84]
jbe 0x52b638
mov dword [ecx + 0x64], edi
cmp dword [ecx + 0x88], edi
jg 0x52fcd0
jmp 0x52b638
cmp ebx, edx
jge 0x52b631
mov ebx, dword [ecx + 0x78]
mov edi, 1
cmp esi, ebx
jae 0x52ac56
cmp dword [esp + 0x14], 0
movzx edx, byte [esi]
je 0x52ad6e
cmp edx, 0xc0
jb 0x52ad6e
test dl, 0x20
jne 0x52acce
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x52ad66
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52acf0
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x52ad66
and eax, 0x3f
test dl, 8
jne 0x52ad10
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52ad66
test dl, 4
jne 0x52ad39
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52ad66
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x52ad77
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52ad91
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x24]
je 0x52b631
mov eax, dword [esp + 0x18]
add esi, edi
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jl 0x52ac95
jmp 0x52b631
cmp ebx, edx
jge 0x52b631
mov ebx, dword [ecx + 0x78]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x52ac56
cmp dword [esp + 0x14], 0
movzx edx, byte [esi]
je 0x52aebd
cmp edx, 0xc0
jb 0x52aebd
test dl, 0x20
jne 0x52ae1d
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x52aeb5
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52ae3f
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x52aeb5
and eax, 0x3f
test dl, 8
jne 0x52ae5f
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52aeb5
test dl, 4
jne 0x52ae88
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52aeb5
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x52aec6
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52aee0
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce0]
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x24]
je 0x52b631
mov eax, dword [esp + 0x18]
add esi, edi
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jl 0x52ade0
jmp 0x52b631
cmp ebx, edx
jge 0x52b631
mov edi, dword [ecx + 0x78]
nop word [eax + eax]
mov ecx, 1
cmp esi, edi
jae 0x52aac9
cmp dword [esp + 0x14], 0
movzx edx, byte [esi]
je 0x52b00e
cmp edx, 0xc0
jb 0x52b00e
test dl, 0x20
jne 0x52af6d
movzx eax, byte [esi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x52b006
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52af8f
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x52b006
and eax, 0x3f
test dl, 8
jne 0x52afaf
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52b006
test dl, 4
jne 0x52afd8
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52b006
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x52b017
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52b031
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x52b058
cmp eax, 3
je 0x52b058
xor eax, eax
jmp 0x52b05d
mov eax, 1
cmp eax, dword [esp + 0x24]
je 0x52b631
inc ebx
add esi, ecx
cmp ebx, dword [esp + 0x1c]
jl 0x52af30
jmp 0x52b631
cmp ebx, edx
jge 0x52b631
mov ebx, dword [ecx + 0x78]
nop dword [eax]
nop dword [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x52ac56
cmp dword [esp + 0x14], 0
movzx edx, byte [esi]
je 0x52b16d
cmp edx, 0xc0
jb 0x52b16d
test dl, 0x20
jne 0x52b0cd
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x52b165
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52b0ef
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x52b165
and eax, 0x3f
test dl, 8
jne 0x52b10f
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52b165
test dl, 4
jne 0x52b138
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52b165
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x180e
ja 0x52b1b0
je case.0x52b1d0.8192
cmp edx, 0x85
ja 0x52b19c
je case.0x52b1d0.8192
cmp edx, 9
jb case.0x52b1d0.8203
cmp edx, 0xd
jbe case.0x52b1d0.8192
cmp edx, 0x20
jmp 0x52b1e5
cmp edx, 0xa0
je case.0x52b1d0.8192
cmp edx, 0x1680
jmp 0x52b1e5
cmp edx, 0x202f
ja 0x52b1d7
je case.0x52b1d0.8192
lea eax, [edx - 0x2000]
cmp eax, 0x29
ja case.0x52b1d0.8203
movzx eax, byte [eax + 0x530694]
jmp dword [eax*4 + 0x53068c]
cmp edx, 0x205f
je case.0x52b1d0.8192
cmp edx, 0x3000
je case.0x52b1d0.8192
mov eax, edx
test eax, eax
jns 0x52b1f0
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52b20a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp dword [eax*4 + 0x5f66b0], 6
sete cl
cmp ecx, dword [esp + 0x24]
je 0x52b631
jmp 0x52b240
cmp dword [esp + 0x24], 0
jne 0x52b631
mov eax, dword [esp + 0x18]
add esi, edi
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jl 0x52b090
jmp 0x52b631
cmp ebx, edx
jge 0x52b631
mov ebx, dword [ecx + 0x78]
nop word [eax + eax]
mov edi, 1
cmp esi, ebx
jae 0x52ac56
cmp dword [esp + 0x14], 0
movzx edx, byte [esi]
je 0x52b34d
cmp edx, 0xc0
jb 0x52b34d
test dl, 0x20
jne 0x52b2ad
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x52b345
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52b2cf
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x52b345
and eax, 0x3f
test dl, 8
jne 0x52b2ef
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52b345
test dl, 4
jne 0x52b318
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52b345
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x52b356
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x5f8360]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x52b371
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x52b39d
cmp eax, 3
je 0x52b39d
cmp edx, 0x5f
je 0x52b39d
xor eax, eax
jmp 0x52b3a2
mov eax, 1
cmp eax, dword [esp + 0x24]
je 0x52b631
mov eax, dword [esp + 0x18]
add esi, edi
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jl 0x52b270
jmp 0x52b631
cmp ebx, edx
jge 0x52b631
mov ebx, dword [ecx + 0x78]
mov edi, 1
cmp esi, ebx
jae 0x52ac56
cmp dword [esp + 0x14], 0
movzx edx, byte [esi]
je 0x52b4ae
cmp edx, 0xc0
jb 0x52b4ae
test dl, 0x20
jne 0x52b40e
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x52b4a6
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52b430
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x52b4a6
and eax, 0x3f
test dl, 8
jne 0x52b450
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52b4a6
test dl, 4
jne 0x52b479
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52b4a6
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, dword [esp + 0x38]
mov ecx, dword [eax*4 + 0x5f6ba0]
lea eax, [eax*4 + 0x5f6ba0]
cmp edx, ecx
jb 0x52b4d1
lea eax, [eax + 4]
cmp edx, ecx
je 0x52b4f6
mov ecx, dword [eax]
cmp edx, ecx
jae 0x52b4c4
cmp dword [esp + 0x24], 0
je 0x52b631
mov eax, dword [esp + 0x18]
add esi, edi
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jl 0x52b3d1
jmp 0x52b631
cmp dword [esp + 0x24], 0
jne 0x52b631
jmp 0x52b4dc
cmp ebx, edx
jge 0x52b631
mov edi, dword [ecx + 0x78]
nop
mov ecx, 1
cmp esi, edi
jae 0x52aac9
cmp dword [esp + 0x14], 0
movzx edx, byte [esi]
je 0x52b5ee
cmp edx, 0xc0
jb 0x52b5ee
test dl, 0x20
jne 0x52b54d
movzx eax, byte [esi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x52b5e6
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52b56f
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x52b5e6
and eax, 0x3f
test dl, 8
jne 0x52b58f
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52b5e6
test dl, 4
jne 0x52b5b8
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52b5e6
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x24
je 0x52b619
cmp edx, 0x40
je 0x52b619
cmp edx, 0x60
je 0x52b619
cmp edx, 0xa0
jb 0x52b60d
cmp edx, 0xd7ff
jbe 0x52b619
cmp edx, 0xe000
jae 0x52b619
xor eax, eax
jmp 0x52b61e
mov eax, 1
cmp eax, dword [esp + 0x24]
je 0x52b631
inc ebx
add esi, ecx
cmp ebx, dword [esp + 0x1c]
jl 0x52b510
mov ecx, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
jne 0x5234dc
mov edi, dword [esp + 0x14c]
cmp esi, ebp
jbe 0x52cc60
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
dec esi
cmp dword [esp + 0x14], eax
je 0x52b69c
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x52b69c
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x52b692
mov ecx, dword [esp + 0x158]
cmp esi, ebp
ja 0x52b652
mov ebp, ecx
jmp 0x52d0df
cmp edi, 0x16
jne 0x52b9e3
cmp ebx, edx
jge 0x52b984
nop
mov ebp, dword [ecx + 0x78]
cmp esi, ebp
jae 0x52b95b
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52b7b3
cmp edx, 0xc0
jb 0x52b7b3
test dl, 0x20
jne 0x52b6ff
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52b7b3
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52b726
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52b7ac
test dl, 8
jne 0x52b749
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52b7ac
test dl, 4
jne 0x52b778
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52b7ac
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x158]
mov eax, edx
test eax, eax
jns 0x52b7bc
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52b7d6
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx ebx, byte [eax*8 + 0x5f6ce2]
cmp esi, ebp
jae 0x52b91d
cmp dword [esp + 0x14], 0
mov edi, 1
movzx edx, byte [esi]
je 0x52b8c5
cmp edx, 0xc0
jb 0x52b8c5
test dl, 0x20
jne 0x52b825
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x52b8bd
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52b847
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x52b8bd
and eax, 0x3f
test dl, 8
jne 0x52b867
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52b8bd
test dl, 4
jne 0x52b890
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52b8bd
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x52b8ce
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52b8e8
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx ecx, byte [eax*8 + 0x5f6ce2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x5f6728], eax
je 0x52b916
add esi, edi
mov ebx, ecx
cmp esi, ebp
jb 0x52b7f0
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52b946
cmp esi, ebp
jb 0x52b946
cmp esi, dword [ecx + 0x84]
jbe 0x52b946
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jl 0x52b6c0
jmp 0x52b980
cmp dword [ecx + 0x88], 0
je 0x52b980
cmp esi, dword [ecx + 0x84]
jbe 0x52b980
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
mov ebp, dword [esp + 0x20]
cmp dword [esp + 0x28], 0
jne 0x5234dc
cmp esi, ebp
jbe 0x52d0d1
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov ecx, dword [esp + 0x14]
dec esi
test ecx, ecx
jne 0x52cd58
movzx edx, byte [esi]
jmp 0x52ce1b
cmp dword [esp + 0x14], 0
lea eax, [edi - 6]
je 0x52c7a8
cmp eax, 0xf
ja case.default.0x526026
jmp dword [eax*4 + 0x5306c0]
cmp ebx, edx
jge 0x52bb1b
nop dword [eax]
mov eax, dword [ecx + 0x78]
cmp esi, eax
jae 0x52baf2
mov edi, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
add edi, 0x1c
test ecx, ecx
je 0x52ba51
push dword [esp + 0x14]
push edi
push eax
push ecx
push esi
call fcn.00537150
mov ecx, dword [esp + 0x16c]
add esp, 0x14
test eax, eax
jne 0x52bf9e
mov edx, dword [esp + 0x1c]
jmp 0x52ba90
mov ecx, dword [edi]
sub eax, ecx
cmp esi, eax
ja 0x52ba89
mov ebp, dword [esp + 0x158]
mov al, byte [esi]
cmp al, byte [ebp + 0x34]
mov ebp, dword [esp + 0x20]
jne 0x52ba89
cmp ecx, 1
mov ecx, dword [esp + 0x158]
je 0x52bf9e
mov al, byte [esi + 1]
cmp al, byte [ecx + 0x35]
je 0x52bf9e
jmp 0x52ba90
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52bac7
lea eax, [esi + 1]
cmp eax, dword [ecx + 0x78]
jb 0x52bac7
cmp dword [ecx + 0x18], 0
jne 0x52bac7
cmp dword [edi], 2
jne 0x52bac7
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x52bac7
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
mov ecx, dword [ecx + 0x78]
inc esi
cmp esi, ecx
jae 0x52badd
nop
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x52badd
inc esi
cmp esi, ecx
jb 0x52bad0
mov ecx, dword [esp + 0x158]
inc ebx
cmp ebx, edx
jge 0x52bf9e
jmp 0x52ba10
cmp dword [ecx + 0x88], 0
je 0x52bb17
cmp esi, dword [ecx + 0x84]
jbe 0x52bb17
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
jne 0x5234dc
cmp esi, ebp
jbe 0x52d0d1
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
jne 0x52bb80
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x52bb76
cmp edi, 0x11
jne 0x52bb9c
cmp esi, ebp
jbe 0x52d0d1
cmp byte [esi], 0xa
jne 0x52bb9c
cmp byte [esi - 1], 0xd
lea eax, [esi - 1]
cmove esi, eax
mov ecx, dword [esp + 0x158]
cmp esi, ebp
ja 0x52bb35
mov ebp, ecx
jmp 0x52d0d8
cmp edx, 0x7fffffff
jge 0x52bbf3
cmp ebx, edx
jge 0x52bb1b
mov edx, dword [ecx + 0x78]
mov eax, dword [esp + 0x1c]
cmp esi, edx
jae 0x52bbf6
mov ecx, dword [ecx + 0x78]
inc esi
cmp esi, ecx
jae 0x52bbe2
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x52bbde
inc esi
cmp esi, ecx
jb 0x52bbd1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x158]
inc ebx
cmp ebx, eax
jl 0x52bbc5
jmp 0x52bb22
mov esi, dword [ecx + 0x78]
cmp dword [ecx + 0x88], 0
je 0x52bb1b
cmp esi, dword [ecx + 0x84]
jbe 0x52bb1b
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
jmp 0x52bb1b
mov ecx, dword [ecx + 0x78]
sub edx, ebx
mov eax, ecx
sub eax, esi
cmp edx, eax
jbe 0x52bc70
mov esi, ecx
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52bb22
cmp esi, dword [ecx + 0x84]
jbe 0x52bb22
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
jmp 0x52bb22
add esi, edx
jmp 0x52bb1b
cmp ebx, edx
jge 0x52bb1b
mov edi, dword [ecx + 0x78]
mov eax, 1
cmp esi, edi
jae 0x52bded
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x52bd90
test dl, 0x20
jne 0x52bcbc
movzx eax, byte [esi + 1]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 2
jmp 0x52bd90
movzx ecx, byte [esi + 1]
and ecx, 0x3f
test dl, 0x10
jne 0x52bce6
movzx eax, byte [esi + 2]
and edx, 0xf
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
mov eax, 3
jmp 0x52bd89
test dl, 8
jne 0x52bd15
movzx eax, byte [esi + 2]
and edx, 7
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 4
jmp 0x52bd89
test dl, 4
jne 0x52bd4d
movzx eax, byte [esi + 2]
and edx, 3
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 5
jmp 0x52bd89
and edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, 6
mov ecx, dword [esp + 0x158]
cmp edx, 0xd
jne 0x52bda6
inc esi
cmp esi, edi
jae 0x52bb17
cmp byte [esi], 0xa
jne 0x52bddd
inc esi
jmp 0x52bddd
cmp edx, 0xa
je 0x52bddb
cmp dword [ecx + 0x68], 0
jne 0x52bb17
cmp edx, 0xb
je 0x52bddb
cmp edx, 0xc
je 0x52bddb
cmp edx, 0x85
je 0x52bddb
cmp edx, 0x2028
je 0x52bddb
cmp edx, 0x2029
jne 0x52bb17
add esi, eax
inc ebx
cmp ebx, dword [esp + 0x1c]
jl 0x52bc82
jmp 0x52bb17
cmp dword [ecx + 0x88], 0
je 0x52bb17
cmp esi, dword [ecx + 0x84]
jbe 0x52bb17
mov dword [ecx + 0x64], eax
cmp dword [ecx + 0x88], eax
jmp 0x52bb11
cmp ebx, edx
jge 0x52bb1b
mov ebx, dword [ecx + 0x78]
nop
mov edi, 1
cmp esi, ebx
jae 0x52bf77
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x52bef2
test dl, 0x20
jne 0x52be52
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x52beea
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52be74
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x52beea
and eax, 0x3f
test dl, 8
jne 0x52be94
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52beea
test dl, 4
jne 0x52bebd
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52beea
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x180e
ja 0x52bf18
je 0x52bf46
cmp edx, 0xa0
ja 0x52bf10
je 0x52bf46
cmp edx, 9
je 0x52bf46
cmp edx, 0x20
jmp 0x52bf40
cmp edx, 0x1680
jmp 0x52bf40
cmp edx, 0x205f
ja 0x52bf3a
je 0x52bf46
cmp edx, 0x2000
jb 0x52bf42
cmp edx, 0x200a
jbe 0x52bf46
cmp edx, 0x202f
jmp 0x52bf40
cmp edx, 0x3000
je 0x52bf46
xor ecx, ecx
jmp 0x52bf4b
mov ecx, 1
xor eax, eax
cmp dword [esp + 0x10], 0x12
sete al
cmp ecx, eax
je 0x52bb17
mov eax, dword [esp + 0x18]
add esi, edi
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jl 0x52be20
jmp 0x52bb17
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52bf9e
cmp esi, dword [ecx + 0x84]
jbe 0x52bf9e
mov dword [ecx + 0x64], edi
cmp dword [ecx + 0x88], edi
jg 0x52fcd0
mov edi, dword [esp + 0x10]
jmp 0x52bb22
cmp ebx, edx
jge 0x52bb1b
mov ebx, dword [ecx + 0x78]
mov edi, 1
cmp esi, ebx
jae 0x52bf77
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x52c080
test dl, 0x20
jne 0x52bfe0
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x52c078
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52c002
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x52c078
and eax, 0x3f
test dl, 8
jne 0x52c022
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52c078
test dl, 4
jne 0x52c04b
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52c078
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x85
ja 0x52c0c2
je 0x52c0cd
cmp edx, 0xa
jb 0x52c094
cmp edx, 0xd
jbe 0x52c0cd
xor ecx, ecx
xor eax, eax
cmp dword [esp + 0x10], 0x14
sete al
cmp ecx, eax
je 0x52bb17
mov eax, dword [esp + 0x18]
add esi, edi
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x1c]
jl 0x52bfb2
jmp 0x52bb17
lea eax, [edx - 0x2028]
cmp eax, 1
ja 0x52c094
mov ecx, 1
jmp 0x52c096
cmp ebx, edx
jge 0x52bb1b
mov edi, dword [ecx + 0x78]
nop
mov ecx, 1
cmp esi, edi
jae 0x52c1e1
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x52c1b3
test dl, 0x20
jne 0x52c112
movzx eax, byte [esi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x52c1ab
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52c134
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x52c1ab
and eax, 0x3f
test dl, 8
jne 0x52c154
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52c1ab
test dl, 4
jne 0x52c17d
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52c1ab
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x52c1cf
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
jne 0x52bb17
inc ebx
add esi, ecx
cmp ebx, dword [esp + 0x1c]
jl 0x52c0e0
jmp 0x52bb17
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52bf9e
cmp esi, dword [ecx + 0x84]
jbe 0x52bf9e
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
mov edi, dword [esp + 0x10]
jmp 0x52bb22
cmp ebx, edx
jge 0x52bb1b
mov edi, dword [ecx + 0x78]
nop dword [eax]
mov ecx, 1
cmp esi, edi
jae 0x52c1e1
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x52c2ff
test dl, 0x20
jne 0x52c25e
movzx eax, byte [esi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x52c2f7
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52c280
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x52c2f7
and eax, 0x3f
test dl, 8
jne 0x52c2a0
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52c2f7
test dl, 4
jne 0x52c2c9
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52c2f7
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x52bb17
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 4
je 0x52bb17
inc ebx
add esi, ecx
cmp ebx, dword [esp + 0x1c]
jl 0x52c230
jmp 0x52bb17
cmp ebx, edx
jge 0x52bb1b
mov edi, dword [ecx + 0x78]
nop dword [eax]
mov ecx, 1
cmp esi, edi
jae 0x52c1e1
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x52c413
test dl, 0x20
jne 0x52c372
movzx eax, byte [esi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x52c40b
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52c394
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x52c40b
and eax, 0x3f
test dl, 8
jne 0x52c3b4
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52c40b
test dl, 4
jne 0x52c3dd
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52c40b
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x52c42f
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
jne 0x52bb17
inc ebx
add esi, ecx
cmp ebx, dword [esp + 0x1c]
jl 0x52c340
jmp 0x52bb17
cmp ebx, edx
jge 0x52bb1b
mov edi, dword [ecx + 0x78]
nop dword [eax]
mov ecx, 1
cmp esi, edi
jae 0x52c1e1
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x52c523
test dl, 0x20
jne 0x52c482
movzx eax, byte [esi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x52c51b
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52c4a4
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x52c51b
and eax, 0x3f
test dl, 8
jne 0x52c4c4
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52c51b
test dl, 4
jne 0x52c4ed
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52c51b
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x52bb17
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 1
je 0x52bb17
inc ebx
add esi, ecx
cmp ebx, dword [esp + 0x1c]
jl 0x52c450
jmp 0x52bb17
cmp ebx, edx
jge 0x52bb1b
mov edi, dword [ecx + 0x78]
mov ecx, 1
cmp esi, edi
jae 0x52c1e1
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x52c633
test dl, 0x20
jne 0x52c592
movzx eax, byte [esi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x52c62b
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52c5b4
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x52c62b
and eax, 0x3f
test dl, 8
jne 0x52c5d4
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52c62b
test dl, 4
jne 0x52c5fd
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52c62b
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x52c64f
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
jne 0x52bb17
inc ebx
add esi, ecx
cmp ebx, dword [esp + 0x1c]
jl 0x52c560
jmp 0x52bb17
cmp ebx, edx
jge 0x52bb1b
mov edi, dword [ecx + 0x78]
nop dword [eax]
mov ecx, 1
cmp esi, edi
jae 0x52c775
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x52c743
test dl, 0x20
jne 0x52c6a2
movzx eax, byte [esi + 1]
and edx, 0x1f
mov ecx, 2
jmp 0x52c73b
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52c6c4
and edx, 0xf
shl edx, 6
or edx, ecx
mov ecx, 3
jmp 0x52c73b
and eax, 0x3f
test dl, 8
jne 0x52c6e4
and edx, 7
shl edx, 6
or edx, ecx
mov ecx, 4
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52c73b
test dl, 4
jne 0x52c70d
and edx, 3
shl edx, 6
or edx, ecx
mov ecx, 5
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52c73b
and edx, 1
shl edx, 6
or edx, ecx
mov ecx, 6
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
cmp edx, 0x100
jae 0x52bb17
mov eax, dword [esp + 0x158]
mov eax, dword [eax + 0x40]
test byte [edx + eax], 0x10
je 0x52bb17
inc ebx
add esi, ecx
cmp ebx, dword [esp + 0x1c]
jl 0x52c670
jmp 0x52bb17
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52bf9e
cmp esi, dword [ecx + 0x84]
jbe 0x52bf9e
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jmp 0x52bf98
cmp eax, 0xf
ja case.default.0x526026
jmp dword [eax*4 + 0x530700]
cmp ebx, edx
jge 0x52c8a5
mov eax, dword [ecx + 0x78]
cmp esi, eax
jae 0x52c87c
mov edi, dword [esp + 0x158]
mov ecx, dword [ecx + 0x18]
add edi, 0x1c
test ecx, ecx
je 0x52c7fb
push 0
push edi
push eax
push ecx
push esi
call fcn.00537150
mov ecx, dword [esp + 0x16c]
add esp, 0x14
test eax, eax
jne 0x52c829
mov edx, dword [esp + 0x1c]
jmp 0x52c839
mov ecx, dword [edi]
sub eax, ecx
cmp esi, eax
ja 0x52c832
mov ebp, dword [esp + 0x158]
mov al, byte [esi]
cmp al, byte [ebp + 0x34]
mov ebp, dword [esp + 0x20]
jne 0x52c832
cmp ecx, 1
mov ecx, dword [esp + 0x158]
je 0x52c829
mov al, byte [esi + 1]
cmp al, byte [ecx + 0x35]
jne 0x52c839
mov edi, dword [esp + 0x10]
jmp 0x52c8ac
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52c870
lea eax, [esi + 1]
cmp eax, dword [ecx + 0x78]
jb 0x52c870
cmp dword [ecx + 0x18], 0
jne 0x52c870
cmp dword [edi], 2
jne 0x52c870
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne 0x52c870
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
inc ebx
inc esi
cmp ebx, edx
jl 0x52c7c0
jmp 0x52c8a1
cmp dword [ecx + 0x88], 0
je 0x52c8a1
cmp esi, dword [ecx + 0x84]
jbe 0x52c8a1
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x158]
cmp dword [esp + 0x28], 0
jne 0x5234dc
cmp esi, ebp
je 0x52d0d1
nop
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
dec esi
cmp edi, 0x11
jne 0x52c910
cmp esi, ebp
jbe 0x52c912
cmp byte [esi], 0xa
jne 0x52c910
cmp byte [esi - 1], 0xd
lea eax, [esi - 1]
cmove esi, eax
cmp esi, ebp
mov ecx, dword [esp + 0x158]
jne 0x52c8c0
mov ebp, ecx
jmp 0x52d0d8
mov ecx, dword [ecx + 0x78]
sub edx, ebx
mov eax, ecx
sub eax, esi
cmp edx, eax
jbe 0x52c96a
mov esi, ecx
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52c8ac
cmp esi, dword [ecx + 0x84]
jbe 0x52c8ac
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
jmp 0x52c8ac
add esi, edx
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov ecx, dword [ecx + 0x78]
nop dword [eax]
cmp esi, ecx
jae 0x52c931
movzx eax, byte [esi]
cmp eax, 0xd
jne 0x52c99c
inc esi
cmp esi, ecx
jae 0x52c8a5
cmp byte [esi], 0xa
jne 0x52c9cc
jmp 0x52c9cb
cmp eax, 0xa
je 0x52c9cb
mov ebp, dword [esp + 0x158]
cmp dword [ebp + 0x68], 0
mov ebp, dword [esp + 0x20]
jne 0x52c8a5
cmp eax, 0xb
je 0x52c9cb
cmp eax, 0xc
je 0x52c9cb
cmp eax, 0x85
jne 0x52c8a5
inc esi
inc ebx
cmp ebx, edx
jl 0x52c980
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov ecx, dword [ecx + 0x78]
cmp esi, ecx
jae 0x52c931
mov al, byte [esi]
cmp al, 9
je 0x52c8a5
cmp al, 0x20
je 0x52c8a5
cmp al, 0xa0
je 0x52c8a5
inc ebx
inc esi
cmp ebx, edx
jl 0x52c9e1
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov ecx, dword [ecx + 0x78]
nop dword [eax]
cmp esi, ecx
jae 0x52c931
mov al, byte [esi]
cmp al, 9
je 0x52ca3a
cmp al, 0x20
je 0x52ca3a
cmp al, 0xa0
jne 0x52c8a5
inc ebx
inc esi
cmp ebx, edx
jl 0x52ca20
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov ecx, dword [ecx + 0x78]
cmp esi, ecx
jae 0x52c931
mov al, byte [esi]
cmp al, 0xa
jb 0x52ca6e
cmp al, 0xd
jbe 0x52c8a5
cmp al, 0x85
je 0x52c8a5
inc ebx
inc esi
cmp ebx, edx
jl 0x52ca50
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov ecx, dword [ecx + 0x78]
cmp esi, ecx
jae 0x52c931
mov al, byte [esi]
cmp al, 0xa
jb 0x52c8a5
cmp al, 0xd
jbe 0x52caa2
cmp al, 0x85
jne 0x52c8a5
inc ebx
inc esi
cmp ebx, edx
jl 0x52ca84
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov edx, dword [ecx + 0x78]
cmp esi, edx
jae 0x52c931
mov eax, dword [esp + 0x158]
movzx ecx, byte [esi]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 4
jne 0x52c8a5
inc ebx
inc esi
cmp ebx, dword [esp + 0x1c]
jl 0x52cab8
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov edx, dword [ecx + 0x78]
nop
cmp esi, edx
jae 0x52c931
mov eax, dword [esp + 0x158]
movzx ecx, byte [esi]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 4
je 0x52c8a5
inc ebx
inc esi
cmp ebx, dword [esp + 0x1c]
jl 0x52caf0
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov edx, dword [ecx + 0x78]
cmp esi, edx
jae 0x52c931
mov eax, dword [esp + 0x158]
movzx ecx, byte [esi]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
jne 0x52c8a5
inc ebx
inc esi
cmp ebx, dword [esp + 0x1c]
jl 0x52cb27
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov edx, dword [ecx + 0x78]
nop
cmp esi, edx
jae 0x52c931
mov eax, dword [esp + 0x158]
movzx ecx, byte [esi]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 1
je 0x52c8a5
inc ebx
inc esi
cmp ebx, dword [esp + 0x1c]
jl 0x52cb60
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov edx, dword [ecx + 0x78]
cmp esi, edx
jae 0x52c931
mov eax, dword [esp + 0x158]
movzx ecx, byte [esi]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
jne 0x52c8a5
inc ebx
inc esi
cmp ebx, dword [esp + 0x1c]
jl 0x52cb97
jmp 0x52c8a5
cmp ebx, edx
jge 0x52c8a5
mov edx, dword [ecx + 0x78]
nop
cmp esi, edx
jae 0x52c931
mov eax, dword [esp + 0x158]
movzx ecx, byte [esi]
mov eax, dword [eax + 0x40]
test byte [ecx + eax], 0x10
je 0x52c8a5
inc ebx
inc esi
cmp ebx, dword [esp + 0x1c]
jl 0x52cbd0
jmp 0x52c8a5
mov eax, dword [esp + 0x160]
inc eax
cmp byte [edi], 0x7a
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push ecx
push edx
jne 0x52cc44
lea eax, [edi + 3]
push eax
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov edi, ebp
mov ebp, dword [esp + 0x158]
mov dword [esp + 0x14c], edi
jmp 0x52d0df
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
add edi, 3
mov dword [esp + 0x14c], edi
mov ebp, dword [esp + 0x158]
jmp 0x52d0df
mov eax, dword [esp + 0x160]
inc eax
cmp byte [ebx], 0x7a
push eax
push dword [esp + 0x160]
push edi
push ecx
push dword [esp + 0x160]
jne 0x52ccc7
lea eax, [ebx + 3]
push eax
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov al, byte [ebp]
cmp al, 0x81
je 0x52d256
cmp al, 0x88
jae 0x52d222
mov edi, ebp
mov ebp, dword [esp + 0x158]
mov dword [esp + 0x14c], edi
jmp 0x52d0df
push ebp
push esi
call fcn.00523400
add esp, 0x1c
cmp eax, 0xfffffc1b
jne 0x52cce0
cmp dword [edi + 0xb4], ebp
jmp 0x52cce2
test eax, eax
jne 0x52d0fa
cmp byte [ebp], 0x81
je 0x52d278
mov edi, dword [esp + 0x14c]
mov ebp, dword [esp + 0x158]
add edi, 3
mov dword [esp + 0x14c], edi
jmp 0x52d0df
cmp esi, edi
je 0x52d0d8
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ebp
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
dec esi
test eax, eax
jne 0x52d0fa
cmp esi, edi
jne 0x52cd17
jmp 0x52d0d8
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
jne 0x52cd6a
mov al, byte [esi - 1]
dec esi
and al, 0xc0
cmp al, 0x80
je 0x52cd60
movzx edx, byte [esi]
cmp edx, 0xc0
jb 0x52ce1b
test dl, 0x20
jne 0x52cd8a
movzx eax, byte [esi + 1]
and edx, 0x1f
jmp 0x52ce13
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52cda7
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x52ce0f
and eax, 0x3f
test dl, 8
jne 0x52cdc2
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52ce0f
test dl, 4
jne 0x52cde6
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52ce0f
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
mov ecx, dword [esp + 0x14]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x52ce24
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52ce3e
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx ebx, byte [eax*8 + 0x5f6ce2]
cmp esi, ebp
jbe 0x52d0d1
lea edi, [esi - 1]
test ecx, ecx
jne 0x52ce67
movzx edx, byte [edi]
jmp 0x52cf27
mov al, byte [edi]
and al, 0xc0
cmp al, 0x80
jne 0x52ce7a
nop
mov al, byte [edi - 1]
dec edi
and al, 0xc0
cmp al, 0x80
je 0x52ce70
movzx edx, byte [edi]
cmp edx, 0xc0
jb 0x52cf27
test dl, 0x20
jne 0x52ce9a
movzx eax, byte [edi + 1]
and edx, 0x1f
jmp 0x52cf1f
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52ceb7
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x52cf1f
and eax, 0x3f
test dl, 8
jne 0x52ced2
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
jmp 0x52cf1f
test dl, 4
jne 0x52cef6
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
jmp 0x52cf1f
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [edi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [edi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x52cf30
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52cf4a
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
mov ecx, ebx
movzx eax, word [eax*2 + 0x5fa560]
movzx edx, byte [eax*8 + 0x5f6ce2]
mov eax, 1
shl eax, cl
test dword [edx*4 + 0x5f6728], eax
je 0x52cf7b
mov ecx, dword [esp + 0x14]
mov esi, edi
mov ebx, edx
jmp 0x52ce50
mov ecx, dword [esp + 0x158]
jmp 0x52b997
movzx edx, byte [edi + 3]
movzx eax, byte [edi + 4]
shl edx, 8
or edx, eax
mov dword [esp + 0x20], edx
lea eax, [edx + edx]
mov dword [esp + 0x34], eax
cmp eax, dword [ebp + 0x14]
jl 0x52fce0
mov edx, dword [esp + 0x1c]
nop dword [eax]
cmp edx, 0x88
jae 0x52cff1
cmp edx, 0x81
je 0x52cff1
cmp dword [ebp + 0x6c], 0
jne 0x52cffb
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + edi], 0x77
je 0x52cffb
movzx eax, byte [edi]
movzx eax, byte [eax + 0x5f6598]
add edi, eax
mov dword [esp + 0x14c], edi
jmp 0x52d0df
mov dword [ebp + 0x98], 2
mov eax, dword [esp + 0x160]
mov ebx, dword [ebp + 0xac]
inc eax
mov ebp, dword [ebp + 0x90]
push eax
push dword [esp + 0x160]
movzx eax, byte [edi]
push dword [esp + 0x160]
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, edi
push eax
push esi
call fcn.00523400
mov edi, eax
add esp, 0x1c
cmp edi, 0xfffffc20
jne 0x52d089
mov eax, dword [esp + 0x14c]
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
add edx, eax
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x7c], edx
jae 0x52fea5
mov eax, dword [esp + 0x14c]
cmp byte [eax], 0x77
je 0x52d091
cmp byte [edx], 0x77
jne 0x52fea5
jmp 0x52d091
test edi, edi
jne 0x52fe52
mov edi, dword [esp + 0x14c]
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x158]
add edi, ecx
mov dword [esp + 0x14c], edi
mov dword [eax + 0xac], ebx
cmp byte [edi], 0x77
jne case.0x52fb53.14
mov dword [eax + 0x90], ebp
mov ebp, eax
jmp 0x52cfa8
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x14c]
mov eax, dword [ebp + 0x4c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp]
cmp eax, dword [ebp + 4]
jb 0x523490
inc dword [ebp]
mov eax, 0xfffffff8
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
movzx ecx, byte [edi + 1]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [edi]
push ebp
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, edi
add ecx, eax
push ecx
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
lea eax, [edi + 2]
pop esi
mov dword [ebp + 0x7c], eax
mov eax, 0xfffffc1f
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov ecx, dword [esp + 0x158]
mov dword [ecx + 0x98], 2
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
sub eax, 1
je case.0x52fb53.14
pop esi
pop ebp
pop ebx
mov eax, ecx
pop edi
add esp, 0x134
ret
pop esi
pop ebp
pop ebx
mov eax, 0xffffffe6
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0xcc]
cmp eax, ecx
je 0x52d1de
push eax
call dword [0x64739c]
add esp, 4
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 0x134
ret
pop esi
pop ebp
pop ebx
mov eax, 0xfffffffa
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x150]
mov dword [eax + 0x80], esi
pop esi
pop ebp
pop ebx
mov dword [eax + 0x7c], ecx
mov eax, 1
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
jmp 0x52d2af
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
jmp 0x52d2a4
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push edi
push ecx
push dword [esp + 0x160]
lea eax, [ebx + 3]
push eax
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
pop esi
mov dword [edi + 0xb4], ebp
mov eax, 0xfffffc1b
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x150]
mov dword [edi + 0x7c], eax
mov eax, 0xfffffc1a
mov dword [edi + 0x80], esi
pop esi
pop ebp
pop ebx
mov dword [edi + 0x8c], ecx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x154]
mov dword [eax + 0x80], esi
mov dword [eax + 0x8c], ecx
mov ecx, dword [esp + 0x150]
mov dword [eax + 0x7c], ecx
pop esi
pop ebp
pop ebx
mov eax, 1
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x88], ebx
je case.0x52fb53.14
mov ecx, dword [esp + 0x158]
lea eax, [esi + 1]
cmp eax, dword [ecx + 0x78]
jb case.0x52fb53.14
cmp dword [ecx + 0x18], ebx
jne case.0x52fb53.14
cmp dword [ecx + 0x1c], 2
jne case.0x52fb53.14
mov al, byte [esi]
cmp al, byte [ecx + 0x34]
jne case.0x52fb53.14
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jmp 0x52fcca
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x88], ebx
jmp 0x52da75
cmp eax, 0xfffffffe
mov eax, dword [esp + 0x158]
jne 0x52da4f
mov esi, dword [eax + 0x78]
jmp 0x52da4f
mov ebp, esi
cmp ebx, dword [esp + 0x30]
jge 0x52d424
nop dword [eax]
push dword [esp + 0x2c]
push dword [esp + 0x15c]
push dword [esp + 0x28]
push esi
push edi
call fcn.005308b0
add esp, 0x14
test eax, eax
js 0x52d3e8
inc ebx
add esi, eax
cmp ebx, dword [esp + 0x30]
jl 0x52d3c0
jmp 0x52d41c
cmp eax, 0xfffffffe
jne 0x52d41c
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je 0x52d41c
mov eax, dword [ecx + 0x78]
cmp eax, dword [ecx + 0x84]
jbe 0x52d41c
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jg 0x52fcd0
cmp esi, ebp
jb case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
sub esi, dword [esp + 0x20]
cmp esi, ebp
jae 0x52d424
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
cmp eax, 0xfffffffe
jne 0x52d47c
mov esi, dword [ebx + 0x78]
cmp dword [ebx + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [ebx + 0x78]
jb case.0x52fb53.14
cmp esi, dword [ebx + 0x84]
jbe case.0x52fb53.14
mov dword [ebx + 0x64], 1
cmp dword [ebx + 0x88], 1
jmp 0x52fcca
test eax, eax
mov eax, dword [esp + 0x160]
je 0x52d661
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov ebx, dword [esp + 0x20]
nop word [eax + eax]
cmp ebx, edi
jge case.0x52fb53.14
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52da6e
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x52d5f1
test dl, 0x20
jne 0x52d541
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52d5f1
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52d568
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52d5f1
test dl, 8
jne 0x52d58e
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52d5f1
test dl, 4
jne 0x52d5bd
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52d5f1
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
cmp edx, 0xff
jbe 0x52d600
cmp dword [esp + 0x1c], 0x6e
jmp 0x52d612
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52d500
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov ebx, dword [esp + 0x20]
nop dword [eax + eax]
cmp ebx, edi
jge case.0x52fb53.14
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52da6e
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
inc esi
and ecx, 7
shr edx, 3
shl eax, cl
test byte [edx + ebp], al
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52d6a0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
cmp ebp, edi
jge case.0x52fb53.14
mov eax, dword [esp + 0x158]
cmp esi, dword [eax + 0x78]
jae 0x52da6e
movzx edx, byte [esi]
inc esi
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x52d857
cmp edx, 0xc0
jb 0x52d857
test dl, 0x20
jne 0x52d7a3
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52d857
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52d7ca
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52d853
test dl, 8
jne 0x52d7f0
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52d853
test dl, 4
jne 0x52d81f
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52d853
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push edx
call fcn.00537780
add esp, 0xc
test eax, eax
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebp
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52d756
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
cmp dword [ebp + 0x88], ebx
je case.0x52fb53.14
cmp esi, dword [ebp + 0x78]
jb case.0x52fb53.14
jmp 0x52fcb0
mov eax, dword [esp + 0x160]
mov ebx, dword [esp + 0x158]
inc eax
push eax
push dword [esp + 0x160]
push ebx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
nop dword [eax + eax]
cmp ebp, dword [esp + 0x20]
jge case.0x52fb53.14
mov ebx, dword [ebx + 0x78]
mov eax, ebx
sub eax, edi
cmp esi, eax
ja 0x52d97e
mov edx, dword [esp + 0x34]
mov ecx, esi
sub edi, 4
jb 0x52d941
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x52d946
add ecx, 4
add edx, 4
sub edi, 4
jae 0x52d930
cmp edi, 0xfffffffc
je 0x52d973
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x52d97e
cmp edi, 0xfffffffd
je 0x52d973
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x52d97e
cmp edi, 0xfffffffe
je 0x52d973
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x52d97e
cmp edi, 0xffffffff
je 0x52d973
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x52d97e
mov edi, dword [esp + 0x18]
add esi, edi
jmp 0x52d9fa
mov ebp, dword [esp + 0x10]
test ebp, ebp
jle 0x52da48
sub ebx, ebp
cmp esi, ebx
ja 0x52da48
mov edi, ebp
lea edx, [esp + 0x54]
mov ecx, esi
sub edi, 4
jb 0x52d9b2
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x52d9b7
add ecx, 4
add edx, 4
sub edi, 4
jae 0x52d9a1
cmp edi, 0xfffffffc
je 0x52d9f0
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x52da48
cmp edi, 0xfffffffd
je 0x52d9f0
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x52da48
cmp edi, 0xfffffffe
je 0x52d9f0
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x52da48
cmp edi, 0xffffffff
je 0x52d9f0
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x52da48
mov edi, dword [esp + 0x18]
add esi, ebp
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x160]
inc ebp
mov ebx, dword [esp + 0x158]
inc eax
push eax
push dword [esp + 0x160]
mov dword [esp + 0x24], ebp
push ebx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52d910
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [eax + 0x78]
jb case.0x52fb53.14
jmp 0x52da7b
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [eax + 0x84]
jbe case.0x52fb53.14
mov dword [eax + 0x64], 1
cmp dword [eax + 0x88], 1
jmp 0x52fcca
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
cmp ebp, dword [esp + 0x20]
jge case.0x52fb53.14
mov ecx, dword [esp + 0x158]
cmp esi, dword [ecx + 0x78]
jae 0x52db36
movzx eax, byte [esi]
cmp ebx, eax
je 0x52daf6
cmp edi, eax
jne case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc esi
inc eax
inc ebp
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52dad1
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
cmp dword [ecx + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [ecx + 0x84]
jbe case.0x52fb53.14
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jmp 0x52fcca
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
nop dword [eax]
cmp ebp, dword [esp + 0x20]
jge case.0x52fb53.14
cmp esi, dword [edi + 0x78]
jae 0x52dbfa
movzx eax, byte [esi]
inc esi
cmp ebx, eax
jne case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebp
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52dba0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
cmp dword [edi + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [edi + 0x84]
jbe case.0x52fb53.14
mov dword [edi + 0x64], 1
cmp dword [edi + 0x88], 1
jmp 0x52fcca
cmp dword [ebp + 0x88], ebx
jmp 0x52fcaa
mov ecx, dword [esp + 0x158]
cmp dword [ecx + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [ecx + 0x84]
jbe case.0x52fb53.14
mov dword [ecx + 0x64], 1
cmp dword [ecx + 0x88], 1
jle case.0x52fb53.14
pop esi
pop ebp
pop ebx
mov eax, 0xfffffff4
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
cmp dword [esp + 0x14], 0
je 0x52de0d
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x10]
nop dword [eax + eax]
cmp edi, dword [esp + 0x20]
jge case.0x52fb53.14
mov ecx, dword [esp + 0x158]
cmp esi, dword [ecx + 0x78]
jae 0x52dc38
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x52ddba
test dl, 0x20
jne 0x52dd03
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52ddba
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52dd2a
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52ddb3
test dl, 8
jne 0x52dd50
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52ddb3
test dl, 4
jne 0x52dd7f
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52ddb3
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x158]
cmp ebx, edx
je case.0x52fb53.14
cmp ebp, edx
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc edi
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52dcc0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x10]
nop dword [eax]
cmp edi, dword [esp + 0x20]
jge case.0x52fb53.14
mov ecx, dword [esp + 0x158]
cmp esi, dword [ecx + 0x78]
jae 0x52dc38
movzx eax, byte [esi]
cmp ebx, eax
je case.0x52fb53.14
cmp ebp, eax
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc esi
inc eax
inc edi
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52de20
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov ebx, dword [esp + 0x158]
test eax, eax
mov eax, dword [esp + 0x160]
je 0x52e008
inc eax
push eax
push dword [esp + 0x160]
push ebx
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x10]
cmp edi, dword [esp + 0x20]
jge case.0x52fb53.14
cmp esi, dword [ebx + 0x78]
jae 0x52e090
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x52dfbd
test dl, 0x20
jne 0x52df0d
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52dfbd
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52df34
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52dfbd
test dl, 8
jne 0x52df5a
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52dfbd
test dl, 4
jne 0x52df89
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52dfbd
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
cmp ebp, edx
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc edi
inc eax
push eax
push dword [esp + 0x160]
push ebx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52ded1
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
inc eax
push eax
push dword [esp + 0x160]
push ebx
push dword [esp + 0x160]
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x10]
cmp edi, dword [esp + 0x20]
jge case.0x52fb53.14
cmp esi, dword [ebx + 0x78]
jae 0x52e090
movzx eax, byte [esi]
inc esi
cmp ebp, eax
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc edi
inc eax
push eax
push dword [esp + 0x160]
push ebx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52e036
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
cmp dword [ebx + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [ebx + 0x84]
jbe case.0x52fb53.14
mov dword [ebx + 0x64], 1
cmp dword [ebx + 0x88], 1
jle case.0x52fb53.14
pop esi
pop ebp
pop ebx
mov eax, 0xfffffff4
pop edi
add esp, 0x134
ret
cmp dword [edx + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [edx + 0x84]
jbe case.0x52fb53.14
mov dword [edx + 0x64], 1
cmp dword [edx + 0x88], 1
jle case.0x52fb53.14
pop esi
pop ebp
pop ebx
mov eax, 0xfffffff4
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [eax + 0x84]
jbe case.0x52fb53.14
mov dword [eax + 0x64], 1
cmp dword [eax + 0x88], 1
jle case.0x52fb53.14
pop esi
pop ebp
pop ebx
mov eax, 0xfffffff4
pop edi
add esp, 0x134
ret
test eax, eax
js 0x52f296
cmp eax, 0xa
ja case.default.0x526026
jmp dword [eax*4 + 0x530740]
mov eax, dword [esp + 0x160]
mov ebp, dword [esp + 0x154]
inc eax
mov edi, dword [esp + 0x14c]
push eax
push dword [esp + 0x160]
push ecx
push ebp
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
nop
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
mov ecx, dword [esp + 0x158]
cmp esi, dword [ecx + 0x78]
jae 0x52dc38
movzx eax, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52e1f1
cmp eax, 0xc0
jb 0x52e1f1
test al, 0x20
jne 0x52e1d3
inc esi
jmp 0x52e1f1
test al, 0x10
jne 0x52e1dc
add esi, 2
jmp 0x52e1f1
test al, 8
jne 0x52e1e5
add esi, 3
jmp 0x52e1f1
test al, 4
jne 0x52e1ee
add esi, 4
jmp 0x52e1f1
add esi, 5
cmp dword [esp + 0x24], 0
jne case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push ecx
push ebp
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52e1a0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
mov ebp, dword [esp + 0x154]
inc eax
mov edi, dword [esp + 0x14c]
push eax
push dword [esp + 0x160]
push ecx
push ebp
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
nop dword [eax]
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
mov ecx, dword [esp + 0x158]
cmp esi, dword [ecx + 0x78]
jae 0x52dc38
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52e375
cmp edx, 0xc0
jb 0x52e375
test dl, 0x20
jne 0x52e2be
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52e375
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52e2e5
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52e36e
test dl, 8
jne 0x52e30b
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52e36e
test dl, 4
jne 0x52e33a
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52e36e
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x158]
mov eax, edx
test eax, eax
jns 0x52e37e
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52e398
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp eax, 9
je 0x52e3bd
cmp eax, 5
je 0x52e3bd
cmp eax, 8
je 0x52e3bd
xor eax, eax
jmp 0x52e3c2
mov eax, 1
cmp eax, dword [esp + 0x24]
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push ecx
push ebp
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52e270
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
mov ebp, dword [esp + 0x14c]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x158]
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
cmp esi, dword [edi + 0x78]
jae 0x52f5c5
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52e539
cmp edx, 0xc0
jb 0x52e539
test dl, 0x20
jne 0x52e489
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52e539
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52e4b0
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52e539
test dl, 8
jne 0x52e4d6
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52e539
test dl, 4
jne 0x52e505
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52e539
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x52e542
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52e55c
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
mov edx, dword [esp + 0x38]
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp dword [eax*4 + 0x5f66b0], edx
sete cl
cmp ecx, dword [esp + 0x24]
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52e442
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
mov ebp, dword [esp + 0x14c]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x158]
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
cmp esi, dword [edi + 0x78]
jae 0x52f5c5
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52e6fb
cmp edx, 0xc0
jb 0x52e6fb
test dl, 0x20
jne 0x52e64b
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52e6fb
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52e672
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52e6fb
test dl, 8
jne 0x52e698
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52e6fb
test dl, 4
jne 0x52e6c7
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52e6fb
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x52e704
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52e71e
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x24]
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52e604
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
mov ebp, dword [esp + 0x14c]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x158]
nop
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
cmp esi, dword [edi + 0x78]
jae 0x52f5c5
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52e8b7
cmp edx, 0xc0
jb 0x52e8b7
test dl, 0x20
jne 0x52e807
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52e8b7
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52e82e
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52e8b7
test dl, 8
jne 0x52e854
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52e8b7
test dl, 4
jne 0x52e883
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52e8b7
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x52e8c0
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52e8da
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce0]
cmp eax, dword [esp + 0x38]
sete cl
cmp ecx, dword [esp + 0x24]
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52e7c0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
mov ebp, dword [esp + 0x154]
inc eax
mov edi, dword [esp + 0x14c]
push eax
push dword [esp + 0x160]
push ecx
push ebp
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
mov ecx, dword [esp + 0x158]
cmp esi, dword [ecx + 0x78]
jae 0x52dc38
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52ea7a
cmp edx, 0xc0
jb 0x52ea7a
test dl, 0x20
jne 0x52e9c3
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52ea7a
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52e9ea
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52ea73
test dl, 8
jne 0x52ea10
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52ea73
test dl, 4
jne 0x52ea3f
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52ea73
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x158]
mov eax, edx
test eax, eax
jns 0x52ea83
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52ea9d
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x52eac4
cmp eax, 3
je 0x52eac4
xor eax, eax
jmp 0x52eac9
mov eax, 1
cmp eax, dword [esp + 0x24]
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push ecx
push ebp
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52e975
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
mov ebp, dword [esp + 0x14c]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x158]
nop dword [eax]
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
cmp esi, dword [edi + 0x78]
jae 0x52f5c5
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52ec47
cmp edx, 0xc0
jb 0x52ec47
test dl, 0x20
jne 0x52eb97
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52ec47
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52ebbe
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52ec47
test dl, 8
jne 0x52ebe4
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52ec47
test dl, 4
jne 0x52ec13
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52ec47
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
cmp edx, 0x180e
ja 0x52ec8e
je case.0x52ecae.8192
cmp edx, 0x85
ja 0x52ec7a
je case.0x52ecae.8192
cmp edx, 9
jb case.0x52ecae.8203
cmp edx, 0xd
jbe case.0x52ecae.8192
cmp edx, 0x20
jmp 0x52ecc7
cmp edx, 0xa0
je case.0x52ecae.8192
cmp edx, 0x1680
jmp 0x52ecc7
cmp edx, 0x202f
ja 0x52ecb5
je case.0x52ecae.8192
lea eax, [edx - 0x2000]
cmp eax, 0x29
ja case.0x52ecae.8203
movzx eax, byte [eax + 0x530774]
jmp dword [eax*4 + 0x53076c]
cmp edx, 0x205f
je case.0x52ecae.8192
cmp edx, 0x3000
je case.0x52ecae.8192
mov eax, edx
test eax, eax
jns 0x52ecd6
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52ecf0
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
xor ecx, ecx
movzx eax, word [eax*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
cmp dword [eax*4 + 0x5f66b0], 6
sete cl
cmp ecx, dword [esp + 0x24]
je case.0x52fb53.14
jmp 0x52ed26
cmp dword [esp + 0x24], 0
jne case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52eb50
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
mov ebp, dword [esp + 0x14c]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x158]
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
cmp esi, dword [edi + 0x78]
jae 0x52f5c5
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52ee99
cmp edx, 0xc0
jb 0x52ee99
test dl, 0x20
jne 0x52ede9
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52ee99
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52ee10
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52ee99
test dl, 8
jne 0x52ee36
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52ee99
test dl, 4
jne 0x52ee65
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52ee99
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, edx
test eax, eax
jns 0x52eea2
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x5f8360]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x52eebd
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x5fa560]
movzx eax, byte [eax*8 + 0x5f6ce1]
mov eax, dword [eax*4 + 0x5f66b0]
cmp eax, 1
je 0x52eee9
cmp eax, 3
je 0x52eee9
cmp edx, 0x5f
je 0x52eee9
xor eax, eax
jmp 0x52eeee
mov eax, 1
cmp eax, dword [esp + 0x24]
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52eda2
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
mov ebp, dword [esp + 0x14c]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x158]
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
cmp esi, dword [edi + 0x78]
jae 0x52f5c5
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52f06b
cmp edx, 0xc0
jb 0x52f06b
test dl, 0x20
jne 0x52efbb
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52f06b
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52efe2
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52f06b
test dl, 8
jne 0x52f008
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52f06b
test dl, 4
jne 0x52f037
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52f06b
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov eax, dword [esp + 0x38]
mov ecx, dword [eax*4 + 0x5f6ba0]
lea eax, [eax*4 + 0x5f6ba0]
cmp edx, ecx
jb 0x52f092
lea eax, [eax + 4]
cmp edx, ecx
je 0x52f0da
mov ecx, dword [eax]
cmp edx, ecx
jae 0x52f081
cmp dword [esp + 0x24], 0
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push edi
push dword [esp + 0x160]
push dword [esp + 0x160]
push ebp
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52ef74
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
cmp dword [esp + 0x24], 0
jne case.0x52fb53.14
jmp 0x52f09d
mov eax, dword [esp + 0x160]
mov ebp, dword [esp + 0x154]
inc eax
mov edi, dword [esp + 0x14c]
push eax
push dword [esp + 0x160]
push ecx
push ebp
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
mov ecx, dword [esp + 0x158]
cmp esi, dword [ecx + 0x78]
jae 0x52dc38
movzx edx, byte [esi]
inc esi
cmp dword [esp + 0x14], 0
je 0x52f225
cmp edx, 0xc0
jb 0x52f225
test dl, 0x20
jne 0x52f16e
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52f225
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52f195
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52f21e
test dl, 8
jne 0x52f1bb
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52f21e
test dl, 4
jne 0x52f1ea
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52f21e
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x158]
cmp edx, 0x24
je 0x52f250
cmp edx, 0x40
je 0x52f250
cmp edx, 0x60
je 0x52f250
cmp edx, 0xa0
jb 0x52f244
cmp edx, 0xd7ff
jbe 0x52f250
cmp edx, 0xe000
jae 0x52f250
xor eax, eax
jmp 0x52f255
mov eax, 1
cmp eax, dword [esp + 0x24]
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push ecx
push ebp
push dword [esp + 0x160]
push edi
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52f120
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
push ecx
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
cmp edi, 0x16
jne 0x52f602
test eax, eax
jne 0x52d0fa
mov edi, dword [esp + 0x158]
nop dword [eax]
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
mov ebp, dword [edi + 0x78]
cmp esi, ebp
jae 0x52f5c5
movzx edx, byte [esi]
inc esi
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x52f3de
cmp edx, 0xc0
jb 0x52f3de
test dl, 0x20
jne 0x52f32a
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52f3de
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52f351
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52f3da
test dl, 8
jne 0x52f377
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52f3da
test dl, 4
jne 0x52f3a6
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52f3da
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov ecx, dword [esp + 0x14]
mov eax, edx
test eax, eax
jns 0x52f3e7
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52f401
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx ebx, byte [eax*8 + 0x5f6ce2]
cmp esi, ebp
jae 0x52f551
nop dword [eax + eax]
movzx edx, byte [esi]
mov edi, 1
test ecx, ecx
je 0x52f4f5
cmp edx, 0xc0
jb 0x52f4f5
test dl, 0x20
jne 0x52f452
movzx eax, byte [esi + 1]
and edx, 0x1f
mov edi, 2
jmp 0x52f4ed
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
and ecx, 0x3f
test dl, 0x10
jne 0x52f474
and edx, 0xf
mov edi, 3
shl edx, 6
or edx, ecx
jmp 0x52f4ed
and eax, 0x3f
test dl, 8
jne 0x52f497
and edx, 7
mov edi, 4
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
jmp 0x52f4ed
test dl, 4
jne 0x52f4c0
and edx, 3
mov edi, 5
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
jmp 0x52f4ed
and edx, edi
mov edi, 6
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 3]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 4]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esi + 5]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x52f4fe
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x5f8360]
shl eax, 7
and edx, 0x8000007f
jns 0x52f518
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x5fa560]
movzx ecx, byte [eax*8 + 0x5f6ce2]
mov eax, 1
shl eax, cl
test dword [ebx*4 + 0x5f6728], eax
je 0x52f54a
add esi, edi
mov ebx, ecx
mov ecx, dword [esp + 0x14]
cmp esi, ebp
jb 0x52f420
mov edi, dword [esp + 0x158]
cmp dword [edi + 0x88], 0
je 0x52f57a
cmp esi, ebp
jb 0x52f57a
cmp esi, dword [edi + 0x84]
jbe 0x52f57a
mov dword [edi + 0x64], 1
cmp dword [edi + 0x88], 1
jg 0x52fcd0
mov eax, dword [esp + 0x160]
mov ebx, dword [esp + 0x18]
inc eax
push eax
push dword [esp + 0x160]
inc ebx
push edi
push dword [esp + 0x160]
mov dword [esp + 0x28], ebx
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52f2e0
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
cmp dword [edi + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [edi + 0x84]
jbe case.0x52fb53.14
mov dword [edi + 0x64], 1
cmp dword [edi + 0x88], 1
jle case.0x52fb53.14
pop esi
pop ebp
pop ebx
mov eax, 0xfffffff4
pop edi
add esp, 0x134
ret
cmp dword [esp + 0x14], 0
je 0x52fa66
test eax, eax
jne 0x52d0fa
mov ebp, dword [esp + 0x158]
nop dword [eax]
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
mov ecx, dword [ebp + 0x78]
cmp esi, ecx
jae 0x52fca3
cmp edi, 0xc
jne 0x52f687
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x52f662
push dword [esp + 0x14]
lea eax, [ebp + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.00537150
add esp, 0x14
test eax, eax
jne case.0x52fb53.14
jmp 0x52f687
mov edx, dword [ebp + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x52f687
mov al, byte [esi]
cmp al, byte [ebp + 0x34]
jne 0x52f687
cmp edx, 1
je case.0x52fb53.14
mov al, byte [esi + 1]
cmp al, byte [ebp + 0x35]
je case.0x52fb53.14
movzx edx, byte [esi]
inc esi
cmp edx, 0xc0
jb 0x52f760
test dl, 0x20
jne 0x52f6b0
movzx eax, byte [esi]
and edx, 0x1f
and eax, 0x3f
shl edx, 6
or edx, eax
inc esi
jmp 0x52f760
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
and ecx, 0x3f
and eax, 0x3f
test dl, 0x10
jne 0x52f6d7
and edx, 0xf
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
add esi, 2
jmp 0x52f760
test dl, 8
jne 0x52f6fd
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
jmp 0x52f760
test dl, 4
jne 0x52f72c
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
jmp 0x52f760
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
lea eax, [edi - 6]
cmp eax, 0xf
ja case.default.0x526026
jmp dword [eax*4 + 0x5307a0]
cmp dword [ebp + 0x88], 0
je case.0x52f76c.13
cmp esi, dword [ebp + 0x78]
jb case.0x52f76c.13
cmp dword [ebp + 0x18], 0
jne case.0x52f76c.13
cmp dword [ebp + 0x1c], 2
jne case.0x52f76c.13
movzx eax, byte [ebp + 0x34]
cmp edx, eax
jne case.0x52f76c.13
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x52fcd0
jmp case.0x52f76c.13
cmp edx, 0xd
ja 0x52f7ef
je 0x52f7d7
cmp edx, 0xa
je case.0x52f76c.13
lea eax, [edx - 0xb]
jmp 0x52f7fd
cmp esi, dword [ebp + 0x78]
jae case.0x52f76c.13
cmp byte [esi], 0xa
jne case.0x52f76c.13
inc esi
jmp case.0x52f76c.13
cmp edx, 0x85
je 0x52f806
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x52fb53.14
cmp dword [ebp + 0x68], 0
jne case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x180e
ja 0x52f84d
je case.0x52fb53.14
cmp edx, 0xa0
ja 0x52f842
je case.0x52fb53.14
cmp edx, 9
je case.0x52fb53.14
cmp edx, 0x20
jmp 0x52fa1d
cmp edx, 0x1680
jmp 0x52fa1d
cmp edx, 0x205f
ja 0x52f87e
je case.0x52fb53.14
cmp edx, 0x2000
jb case.0x52f76c.13
cmp edx, 0x200a
jbe case.0x52fb53.14
cmp edx, 0x202f
jmp 0x52fa1d
cmp edx, 0x3000
jmp 0x52fa1d
cmp edx, 0x180e
ja 0x52f8cd
je case.0x52f76c.13
cmp edx, 0xa0
ja 0x52f8bc
je case.0x52f76c.13
cmp edx, 9
je case.0x52f76c.13
cmp edx, 0x20
jne case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x1680
jne case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x205f
ja 0x52f904
je case.0x52f76c.13
cmp edx, 0x2000
jb case.0x52fb53.14
cmp edx, 0x200a
jbe case.0x52f76c.13
cmp edx, 0x202f
jne case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x3000
jne case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x85
ja 0x52f93a
je case.0x52fb53.14
cmp edx, 0xa
jb case.0x52f76c.13
cmp edx, 0xd
jbe case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x2028
jb case.0x52f76c.13
cmp edx, 0x2029
jbe case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x85
ja 0x52f976
je case.0x52f76c.13
lea eax, [edx - 0xa]
cmp eax, 3
ja case.0x52fb53.14
jmp case.0x52f76c.13
lea eax, [edx - 0x2028]
cmp eax, 1
ja case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x100
jae case.0x52f76c.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jne case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x100
jae case.0x52fb53.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 4
jmp 0x52fa1d
cmp edx, 0x100
jae case.0x52f76c.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jne case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x100
jae case.0x52fb53.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 1
jmp 0x52fa1d
cmp edx, 0x100
jae case.0x52f76c.13
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
jne case.0x52fb53.14
jmp case.0x52f76c.13
cmp edx, 0x100
jae case.0x52fb53.14
mov eax, dword [ebp + 0x40]
test byte [edx + eax], 0x10
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push ebp
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52f620
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
test eax, eax
jne 0x52d0fa
mov ebp, dword [esp + 0x158]
cmp ebx, dword [esp + 0x1c]
jge case.0x52fb53.14
mov ecx, dword [ebp + 0x78]
cmp esi, ecx
jae 0x52fca3
cmp edi, 0xc
jne 0x52fada
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x52fab5
push 0
lea eax, [ebp + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.00537150
add esp, 0x14
test eax, eax
jne case.0x52fb53.14
jmp 0x52fada
mov edx, dword [ebp + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x52fada
mov al, byte [esi]
cmp al, byte [ebp + 0x34]
jne 0x52fada
cmp edx, 1
je case.0x52fb53.14
mov al, byte [esi + 1]
cmp al, byte [ebp + 0x35]
je case.0x52fb53.14
movzx ecx, byte [esi]
lea eax, [edi - 6]
inc esi
cmp eax, 0xf
ja case.default.0x526026
jmp dword [eax*4 + 0x5307e0]
cmp dword [ebp + 0x88], 0
je case.0x52faea.13
cmp esi, dword [ebp + 0x78]
jb case.0x52faea.13
cmp dword [ebp + 0x18], 0
jne case.0x52faea.13
cmp dword [ebp + 0x1c], 2
jne case.0x52faea.13
movzx eax, byte [ebp + 0x34]
cmp ecx, eax
jne case.0x52faea.13
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jg 0x52fcd0
jmp case.0x52faea.13
add ecx, 0xfffffff6
cmp ecx, 0x7b
ja case.0x52fb53.14
movzx eax, byte [ecx + 0x530830]
jmp dword [eax*4 + 0x530820]
cmp esi, dword [ebp + 0x78]
jae case.0x52faea.13
cmp byte [esi], 0xa
jne case.0x52faea.13
inc esi
jmp case.0x52faea.13
cmp dword [ebp + 0x68], 0
jne case.0x52fb53.14
jmp case.0x52faea.13
cmp ecx, 9
je case.0x52fb53.14
cmp ecx, 0x20
je case.0x52fb53.14
cmp ecx, 0xa0
jmp 0x52fc4a
cmp ecx, 9
je case.0x52faea.13
cmp ecx, 0x20
je case.0x52faea.13
cmp ecx, 0xa0
jne case.0x52fb53.14
jmp case.0x52faea.13
cmp ecx, 0xa
jb case.0x52faea.13
cmp ecx, 0xd
jbe case.0x52fb53.14
cmp ecx, 0x85
jmp 0x52fc4a
cmp ecx, 0xa
jb case.0x52fb53.14
cmp ecx, 0xd
jbe case.0x52faea.13
cmp ecx, 0x85
jne case.0x52fb53.14
jmp case.0x52faea.13
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jne case.0x52fb53.14
jmp case.0x52faea.13
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 4
jmp 0x52fc4a
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne case.0x52fb53.14
jmp case.0x52faea.13
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 1
jmp 0x52fc4a
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
jne case.0x52fb53.14
jmp case.0x52faea.13
mov eax, dword [ebp + 0x40]
test byte [ecx + eax], 0x10
je case.0x52fb53.14
mov eax, dword [esp + 0x160]
inc ebx
inc eax
push eax
push dword [esp + 0x160]
push ebp
push dword [esp + 0x160]
push dword [esp + 0x160]
push dword [esp + 0x160]
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
je 0x52fa75
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
pop esi
pop ebp
pop ebx
mov eax, 0xfffffff2
pop edi
add esp, 0x134
ret
cmp dword [ebp + 0x88], 0
je case.0x52fb53.14
cmp esi, dword [ebp + 0x84]
jbe case.0x52fb53.14
mov dword [ebp + 0x64], 1
cmp dword [ebp + 0x88], 1
jle case.0x52fb53.14
pop esi
pop ebp
pop ebx
mov eax, 0xfffffff4
pop edi
add esp, 0x134
ret
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x10]
sub eax, edx
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x158]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
mov ebx, dword [ebp + 0x90]
mov ebp, dword [ebp + 0xac]
mov dword [esp + 0x2c], eax
mov eax, esi
sub eax, dword [edx + 0x74]
mov dword [ecx], eax
nop word [eax + eax]
cmp dword [esp + 0x1c], 0x88
jb 0x52fd34
mov dword [edx + 0x98], 2
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [edi]
push edx
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, edi
push eax
push esi
call fcn.00523400
mov edi, eax
add esp, 0x1c
cmp edi, 0xfffffc1b
je 0x52fe0d
cmp edi, 0xfffffc20
jne 0x52fdc2
mov eax, dword [esp + 0x14c]
movzx edx, byte [eax + 1]
movzx ecx, byte [eax + 2]
shl edx, 8
or edx, ecx
add edx, eax
mov eax, dword [esp + 0x158]
cmp dword [eax + 0x7c], edx
jae 0x52fea5
mov eax, dword [esp + 0x14c]
cmp byte [eax], 0x77
je 0x52fdbe
cmp byte [edx], 0x77
jne 0x52fea5
xor edi, edi
jmp 0x52fdd1
test edi, edi
jne 0x52fea5
mov eax, dword [esp + 0x14c]
mov edx, dword [esp + 0x158]
mov dword [edx + 0x90], ebx
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
mov dword [edx + 0xac], ebp
mov eax, dword [esp + 0x14c]
add eax, ecx
mov dword [esp + 0x14c], eax
cmp byte [eax], 0x77
jne 0x52fe14
mov edi, eax
jmp 0x52fd20
mov edx, dword [esp + 0x158]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x158]
mov edx, dword [esp + 0x30]
pop esi
mov dword [eax + ecx*4], edx
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x34]
pop ebp
mov dword [eax + ecx*4 + 4], edx
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
sub ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
pop ebx
mov dword [eax + ecx*4], edx
mov eax, edi
pop edi
add esp, 0x134
ret
cmp edi, 0xfffffc1b
jne 0x52fea5
mov edx, dword [esp + 0x14c]
mov al, byte [edx]
cmp al, 0x81
je 0x52fe93
cmp al, 0x77
jne 0x52fe84
nop
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x77
je 0x52fe70
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
sub edx, ecx
mov eax, dword [esp + 0x158]
xor ecx, ecx
cmp dword [eax + 0xb4], edx
cmove edi, ecx
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 0x134
ret
mov edx, dword [esp + 0x14c]
add edi, 2
mov dword [ebp + 0xb0], edi
mov dword [ebp + 0xac], ebx
mov eax, dword [esp + 0x160]
movzx ecx, byte [edx + 1]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [edx]
push ebp
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.00523400
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x52ff12
cmp edx, 0xfffffc19
jne 0x52ff2d
cmp dword [ebp + 0xac], ebx
jne 0x52ff2d
pop esi
mov dword [ebp + 0xac], edi
mov eax, edx
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
cmp edx, 0xfffffc1f
jne 0x52ff65
mov eax, dword [ebp + 0x7c]
mov cl, byte [edi]
cmp cl, byte [eax]
jne 0x52ff58
test cl, cl
je 0x52ff54
mov cl, byte [edi + 1]
cmp cl, byte [eax + 1]
jne 0x52ff58
add edi, 2
add eax, 2
test cl, cl
jne 0x52ff38
xor eax, eax
jmp 0x52ff5d
sbb eax, eax
or eax, 1
test eax, eax
je 0x5300ca
pop esi
pop ebp
pop ebx
mov eax, edx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [edi]
push ebp
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, edi
push eax
push esi
call fcn.00523400
add esp, 0x1c
mov ecx, 0xfffffc1c
test eax, eax
cmovne ecx, eax
pop esi
pop ebp
pop ebx
mov eax, ecx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [edi]
push ebp
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, edi
push eax
push esi
call fcn.00523400
add esp, 0x1c
mov ecx, 0xfffffc1d
test eax, eax
cmovne ecx, eax
pop esi
pop ebp
pop ebx
mov eax, ecx
pop edi
add esp, 0x134
ret
mov edx, dword [esp + 0x14c]
add edi, 2
mov dword [ebp + 0xb0], edi
mov dword [ebp + 0xac], ebx
mov eax, dword [esp + 0x160]
movzx ecx, byte [edx + 1]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [edx]
push ebp
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, edx
add ecx, eax
push ecx
push esi
call fcn.00523400
mov ecx, eax
add esp, 0x1c
cmp ecx, 1
je 0x53006a
cmp ecx, 0xfffffc19
jne 0x530078
cmp dword [ebp + 0xac], ebx
jne 0x530078
mov dword [ebp + 0xac], edi
pop esi
pop ebp
test ecx, ecx
mov eax, 0xfffffc1d
pop ebx
cmovne eax, ecx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [edi]
push ebp
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, edi
push eax
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
mov dword [ebp + 0x7c], esi
mov eax, 0xfffffc1e
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov eax, dword [esp + 0x160]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [edi]
push ebp
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, edi
push eax
push esi
call fcn.00523400
add esp, 0x1c
test eax, eax
jne 0x52d0fa
pop esi
mov dword [ebp + 0x7c], edi
mov eax, 0xfffffc20
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
add edi, 2
mov dword [ebp + 0xb0], edi
mov dword [ebp + 0xac], ebx
mov eax, dword [esp + 0x160]
mov ebx, dword [esp + 0x14c]
inc eax
push eax
push dword [esp + 0x160]
movzx eax, byte [ebx]
movzx ecx, byte [ebx + 1]
push ebp
push dword [esp + 0x160]
movzx eax, byte [eax + 0x5f6598]
push dword [esp + 0x160]
add eax, ebx
add ecx, eax
push ecx
push esi
call fcn.00523400
add esp, 0x1c
cmp eax, 1
je 0x53018a
cmp eax, 0xfffffc19
jne 0x530199
cmp dword [ebp + 0xac], 0
jne 0x530199
mov dword [ebp + 0xac], edi
test eax, eax
jne 0x52d0fa
pop esi
mov dword [ebp + 0x7c], ebx
mov eax, 0xfffffc20
pop ebp
pop ebx
pop edi
add esp, 0x134
ret
mov ecx, dword [esp + 0x150]
cmp esi, ecx
jne 0x5301ee
cmp edx, 0x9f
je 0x5301ee
cmp dword [ebp + 0xa4], ebx
jne 0x5301ee
cmp dword [ebp + 0x5c], ebx
jne case.0x52fb53.14
cmp dword [ebp + 0x60], ebx
je 0x5301ee
mov eax, dword [ebp + 0x94]
add eax, dword [ebp + 0x74]
cmp ecx, eax
je case.0x52fb53.14
mov eax, dword [esp + 0x154]
test edx, edx
mov dword [ebp + 0x80], esi
mov dword [ebp + 0x8c], eax
mov eax, 0xfffffc19
pop esi
mov dword [ebp + 0x7c], ecx
mov ecx, 1
pop ebp
pop ebx
cmove eax, ecx
pop edi
add esp, 0x134
ret
pop esi
pop ebp
pop ebx
mov eax, 0xfffffffb
pop edi
add esp, 0x134
ret
pop esi
pop ebp
pop ebx
mov eax, 0xffffffeb
pop edi
add esp, 0x134
ret