Function at 0x520dd0
Capabilities:
Encode data using xor

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x20c
mov ebx, dword [edi]
mov dword [ebp - 0x1c], ecx
mov esi, dword [edi + 4]
mov eax, dword [ebx]
movzx edx, byte [eax]
cmp dl, 0x66
je 0x521230
jle 0x520e32
cmp dl, 0x74
je 0x520f80
cmp dl, 0x7b
je 0x5210f0
cmp dl, 0x6e
je 0x521000
mov dword [edi + 4], esi
mov dword [edi], ebx
mov ecx, dword [ebp - 0x1c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
jmp fcn.00524be0
cmp dl, 0x22
je 0x521070
cmp dl, 0x5b
jne 0x520e1a
add eax, 1
mov dword [ebx], eax
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
lea eax, [edx + 0x10]
cmp eax, ecx
ja 0x5215a0
test edx, edx
mov dword [esi + 0x24], eax
je 0x520e81
mov edi, 4
mov dword [edx + 0xc], 0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov word [edx + 0xe], di
mov edx, dword [ebx]
movzx eax, byte [edx]
lea ecx, [eax - 9]
mov eax, edx
cmp cl, 0x17
jbe 0x521095
mov dword [ebx], eax
cmp byte [eax], 0x2f
jne 0x520f30
mov edi, 0x800013
lea edx, [eax + 1]
mov dword [ebx], edx
movzx ecx, byte [eax + 1]
cmp cl, 0x2a
jne 0x522670
add eax, 2
mov dword [ebx], eax
movzx edx, byte [eax]
test dl, dl
je 0x5222b4
lea ecx, [eax + 1]
cmp dl, 0x2a
mov dword [ebx], ecx
jne 0x5223b1
cmp byte [eax + 1], 0x2f
jne 0x5223b1
lea edx, [eax + 2]
mov dword [ebx], edx
movzx eax, byte [edx]
lea ecx, [eax - 9]
mov eax, edx
cmp cl, 0x17
ja 0x520f20
bt edi, ecx
jae 0x520f20
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x5214d4
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
jbe 0x521530
lea esi, [esi]
lea edi, [edi]
mov dword [ebx], eax
cmp byte [eax], 0x2f
je 0x520ea4
nop
lea esi, [esi]
mov edi, dword [ebp - 0x1c]
mov edx, dword [edi + 0x18]
test edx, edx
jne 0x520fee
cmp byte [eax], 0x5d
jne 0x521b80
add eax, 1
mov dword [ebx], eax
mov eax, dword [esi + 0x24]
mov ebx, 4
mov word [eax - 2], bx
mov dword [eax - 8], 0
mov dword [eax - 0xc], 0
mov dword [eax - 0x10], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 8
lea edx, [eax + 1]
mov dword [ebx], edx
cmp byte [eax + 1], 0x72
jne 0x521311
lea edx, [eax + 2]
mov dword [ebx], edx
cmp byte [eax + 2], 0x75
jne 0x521311
lea edx, [eax + 3]
mov dword [ebx], edx
cmp byte [eax + 3], 0x65
jne 0x521311
add eax, 4
mov dword [ebx], eax
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
lea eax, [edx + 0x10]
cmp eax, ecx
ja 0x522010
test edx, edx
mov dword [esi + 0x24], eax
je 0x520fee
mov eax, 0xa
mov dword [edx + 0xc], 0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov word [edx + 0xe], ax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 8
lea edx, [eax + 1]
mov dword [ebx], edx
cmp byte [eax + 1], 0x75
jne 0x521311
lea edx, [eax + 2]
mov dword [ebx], edx
cmp byte [eax + 2], 0x6c
jne 0x521311
lea edx, [eax + 3]
mov dword [ebx], edx
cmp byte [eax + 3], 0x6c
jne 0x521311
add eax, 4
mov dword [ebx], eax
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
lea eax, [edx + 0x10]
cmp eax, ecx
ja 0x521fc0
test edx, edx
mov dword [esi + 0x24], eax
je 0x520fee
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
jmp 0x520fee
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 8], 0
call fcn.00527310
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 8
mov edi, 0x800013
bt edi, ecx
jae 0x520e94
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x5213c0
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
ja 0x520e94
bt edi, edx
jae 0x520e94
add eax, 1
cmp ecx, eax
je 0x5213c0
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
ja 0x520e94
jmp 0x5210c4
add eax, 1
mov dword [ebx], eax
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
lea eax, [edx + 0x10]
cmp eax, ecx
ja 0x521551
test edx, edx
mov dword [esi + 0x24], eax
je 0x521131
mov edi, 3
mov dword [edx + 0xc], 0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov word [edx + 0xe], di
mov edx, dword [ebx]
movzx eax, byte [edx]
lea ecx, [eax - 9]
mov eax, edx
cmp cl, 0x17
jbe 0x5212c0
mov dword [ebx], eax
cmp byte [eax], 0x2f
jne 0x5211e0
mov edi, 0x800013
lea edx, [eax + 1]
mov dword [ebx], edx
movzx ecx, byte [eax + 1]
cmp cl, 0x2a
jne 0x522645
add eax, 2
mov dword [ebx], eax
movzx edx, byte [eax]
test dl, dl
je 0x5222b4
lea ecx, [eax + 1]
cmp dl, 0x2a
mov dword [ebx], ecx
jne 0x5223b8
cmp byte [eax + 1], 0x2f
jne 0x5223b8
lea edx, [eax + 2]
mov dword [ebx], edx
movzx eax, byte [edx]
lea ecx, [eax - 9]
mov eax, edx
cmp cl, 0x17
ja 0x5211d0
bt edi, ecx
jae 0x5211d0
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x521453
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
jbe 0x5214b0
lea esi, [esi]
lea edi, [edi]
mov dword [ebx], eax
cmp byte [eax], 0x2f
je 0x521154
nop
lea esi, [esi]
mov edi, dword [ebp - 0x1c]
mov edx, dword [edi + 0x18]
test edx, edx
jne 0x520fee
movzx edx, byte [eax]
cmp dl, 0x7d
jne 0x5215f0
add eax, 1
mov dword [ebx], eax
mov eax, dword [esi + 0x24]
mov ebx, 3
mov word [eax - 2], bx
mov dword [eax - 8], 0
mov dword [eax - 0xc], 0
mov dword [eax - 0x10], 0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 8
lea edx, [eax + 1]
mov dword [ebx], edx
cmp byte [eax + 1], 0x61
jne 0x521311
lea edx, [eax + 2]
mov dword [ebx], edx
cmp byte [eax + 2], 0x6c
jne 0x521311
lea edx, [eax + 3]
mov dword [ebx], edx
cmp byte [eax + 3], 0x73
jne 0x521311
lea edx, [eax + 4]
mov dword [ebx], edx
cmp byte [eax + 4], 0x65
jne 0x521311
add eax, 5
mov dword [ebx], eax
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
lea eax, [edx + 0x10]
cmp eax, ecx
ja 0x522057
test edx, edx
mov dword [esi + 0x24], eax
je 0x520fee
mov ebx, 9
mov dword [edx + 0xc], 0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov word [edx + 0xe], bx
jmp 0x520fee
mov edi, 0x800013
bt edi, ecx
jae 0x521144
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x521330
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
ja 0x521144
nop
lea esi, [esi]
bt edi, edx
jae 0x521144
add eax, 1
cmp ecx, eax
je 0x521330
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
ja 0x521144
jmp 0x5212f0
sub edx, dword [ebx + 4]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], 3
mov dword [eax + 0x1c], edx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 8
movdqa xmm4, xmmword [str._________________n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_tuuuuuuuubtnufruuuuuuuuuuuuuuuuuu]
movdqa xmm5, xmmword [0x54f990]
movdqa xmm6, xmm4
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm5
movdqa xmm3, xmmword [0x54f9a0]
pcmpeqb xmm0, xmm1
pcmpeqb xmm6, xmm1
movdqa xmm2, xmmword [0x54f9b0]
jmp 0x521387
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
movdqa xmm6, xmm1
pcmpeqb xmm0, xmm4
pcmpeqb xmm6, xmm5
por xmm0, xmm6
movdqa xmm6, xmm3
pcmpeqb xmm6, xmm1
pcmpeqb xmm1, xmm2
por xmm0, xmm6
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x521370
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x521144
movdqa xmm1, xmmword [eax]
movdqa xmm4, xmmword [str._________________n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_tuuuuuuuubtnufruuuuuuuuuuuuuuuuuu]
movdqa xmm0, xmm1
movdqa xmm6, xmm1
movdqa xmm5, xmmword [0x54f990]
pcmpeqb xmm6, xmm4
movdqa xmm3, xmmword [0x54f9a0]
pcmpeqb xmm0, xmm5
movdqa xmm2, xmmword [0x54f9b0]
jmp 0x521417
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm4
movdqa xmm6, xmm1
pcmpeqb xmm0, xmm1
pcmpeqb xmm6, xmm5
por xmm0, xmm6
movdqa xmm6, xmm3
pcmpeqb xmm6, xmm1
pcmpeqb xmm1, xmm2
por xmm0, xmm6
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x521400
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x520e94
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm0, xmmword [str._________________n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_tuuuuuuuubtnufruuuuuuuuuuuuuuuuuu]
pcmpeqb xmm2, xmmword [0x54f990]
por xmm0, xmm2
movdqa xmm2, xmm1
pcmpeqb xmm1, xmmword [0x54f9b0]
pcmpeqb xmm2, xmmword [0x54f9a0]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x521450
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x5211d0
bt edi, edx
jae 0x5211d0
add eax, 1
cmp ecx, eax
je 0x521453
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
ja 0x5211d0
jmp 0x5214b0
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm0, xmmword [str._________________n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_tuuuuuuuubtnufruuuuuuuuuuuuuuuuuu]
pcmpeqb xmm2, xmmword [0x54f990]
por xmm0, xmm2
movdqa xmm2, xmm1
pcmpeqb xmm1, xmmword [0x54f9b0]
pcmpeqb xmm2, xmmword [0x54f9a0]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x5214d1
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x520f20
bt edi, edx
jae 0x520f20
add eax, 1
cmp ecx, eax
je 0x5214d4
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
ja 0x520f20
jmp 0x521530
mov eax, dword [esi + 0x20]
test eax, eax
je 0x52226c
sub ecx, eax
lea edi, [ecx + 1]
shr edi, 1
add ecx, edi
mov edi, edx
sub edi, eax
lea edx, [edi + 0x10]
cmp edx, ecx
cmovae ecx, edx
test ecx, ecx
je 0x522117
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [ebp - 0x38], ecx
call sub.msvcrt.dll_realloc
mov ecx, dword [ebp - 0x38]
lea edx, [eax + edi]
mov dword [esi + 0x20], eax
add eax, ecx
mov dword [esi + 0x28], eax
lea eax, [edx + 0x10]
jmp 0x521106
mov eax, dword [esi + 0x20]
test eax, eax
je 0x52228e
sub ecx, eax
lea edi, [ecx + 1]
shr edi, 1
add ecx, edi
mov edi, edx
sub edi, eax
lea edx, [edi + 0x10]
cmp edx, ecx
cmovae ecx, edx
test ecx, ecx
je 0x522102
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [ebp - 0x38], ecx
call sub.msvcrt.dll_realloc
mov ecx, dword [ebp - 0x38]
lea edx, [eax + edi]
mov dword [esi + 0x20], eax
add eax, ecx
mov dword [esi + 0x28], eax
lea eax, [edx + 0x10]
jmp 0x520e56
movdqa xmm6, xmmword [str._________________n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_tuuuuuuuubtnufruuuuuuuuuuuuuuuuuu]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0x98], esi
movdqa xmm5, xmmword [0x54f990]
movdqa xmm7, xmm6
movdqa xmm4, xmmword [0x54f9a0]
movdqa xmm3, xmmword [0x54f9b0]
movaps xmmword [ebp - 0x148], xmm6
movaps xmmword [ebp - 0x158], xmm5
movaps xmmword [ebp - 0x168], xmm4
movaps xmmword [ebp - 0x178], xmm3
movaps xmmword [ebp - 0x38], xmm5
movaps xmmword [ebp - 0x48], xmm4
movaps xmmword [ebp - 0x58], xmm3
movaps xmmword [ebp - 0x188], xmm6
movaps xmmword [ebp - 0x198], xmm5
movaps xmmword [ebp - 0x1a8], xmm4
movaps xmmword [ebp - 0x1b8], xmm3
movaps xmmword [ebp - 0x138], xmm6
movaps xmmword [ebp - 0x68], xmm5
movaps xmmword [ebp - 0x78], xmm4
movaps xmmword [ebp - 0x88], xmm3
movaps xmmword [ebp - 0x1c8], xmm6
movaps xmmword [ebp - 0x1d8], xmm5
movaps xmmword [ebp - 0x1e8], xmm4
movaps xmmword [ebp - 0x1f8], xmm3
movaps xmmword [ebp - 0x208], xmm6
movaps xmmword [ebp - 0x108], xmm5
movaps xmmword [ebp - 0x118], xmm4
movaps xmmword [ebp - 0x128], xmm3
cmp dl, 0x22
jne 0x522750
movaps xmmword [ebp - 0xf8], xmm7
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x98]
movaps xmmword [ebp - 0xe8], xmm3
mov ecx, esi
movaps xmmword [ebp - 0xd8], xmm4
mov dword [esp + 8], 1
mov dword [esp + 4], eax
movaps xmmword [ebp - 0xc8], xmm5
movaps xmmword [ebp - 0xb8], xmm6
mov dword [esp], ebx
call fcn.00527310
mov ecx, dword [esi + 0x18]
sub esp, 0xc
test ecx, ecx
jne 0x520fee
mov edx, dword [ebx]
movdqa xmm6, xmmword [ebp - 0xb8]
movzx eax, byte [edx]
movdqa xmm5, xmmword [ebp - 0xc8]
movdqa xmm4, xmmword [ebp - 0xd8]
lea ecx, [eax - 9]
mov eax, edx
movdqa xmm3, xmmword [ebp - 0xe8]
cmp cl, 0x17
movdqa xmm7, xmmword [ebp - 0xf8]
ja 0x521771
mov esi, 0x800013
bt esi, ecx
jae 0x521771
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x52209e
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
jbe 0x521ab1
mov dword [ebx], eax
movzx edx, byte [eax]
cmp dl, 0x2f
jne 0x521814
mov edx, 0x800013
lea esi, [eax + 1]
mov dword [ebx], esi
movzx ecx, byte [eax + 1]
cmp cl, 0x2a
jne 0x522b9e
add eax, 2
mov esi, ebx
mov dword [ebx], eax
movzx ebx, byte [eax]
test bl, bl
je 0x522b85
lea ecx, [eax + 1]
cmp bl, 0x2a
mov dword [esi], ecx
jne 0x522b7e
cmp byte [eax + 1], 0x2f
jne 0x522b7e
add eax, 2
mov ebx, esi
mov dword [esi], eax
mov eax, dword [ebx]
movzx esi, byte [eax]
lea ecx, [esi - 9]
cmp cl, 0x17
ja 0x5217fc
bt edx, ecx
jae 0x5217fc
lea esi, [eax + 0x10]
lea edi, [eax + 1]
and esi, 0xfffffff0
cmp edi, esi
je 0x522865
movzx ecx, byte [eax + 1]
mov eax, edi
sub ecx, 9
cmp cl, 0x17
jbe 0x521ad6
mov dword [ebx], eax
cmp byte [eax], 0x2f
je 0x521784
mov esi, dword [ebp - 0x1c]
mov edx, dword [esi + 0x18]
test edx, edx
jne 0x520fee
movzx edx, byte [eax]
cmp dl, 0x3a
jne 0x522816
lea edx, [eax + 1]
mov dword [ebx], edx
movzx esi, byte [eax + 1]
lea ecx, [esi - 9]
cmp cl, 0x17
ja 0x521879
mov esi, 0x800013
bt esi, ecx
jae 0x521879
lea ecx, [eax + 0x11]
lea edx, [eax + 2]
and ecx, 0xfffffff0
cmp edx, ecx
je 0x52212c
movzx eax, byte [eax + 2]
sub eax, 9
cmp al, 0x17
ja 0x521879
bt esi, eax
jae 0x521879
mov esi, 0x800013
nop
add edx, 1
cmp ecx, edx
je 0x52212c
movzx eax, byte [edx]
sub eax, 9
cmp al, 0x17
jbe 0x521b70
mov dword [ebx], edx
cmp byte [edx], 0x2f
mov eax, 0x800013
jne 0x521914
lea esi, [edx + 1]
mov dword [ebx], esi
movzx ecx, byte [edx + 1]
cmp cl, 0x2a
jne 0x522bdd
add edx, 2
mov dword [ebx], edx
movzx esi, byte [edx]
mov ecx, esi
test cl, cl
je 0x522bc8
lea edi, [edx + 1]
cmp cl, 0x2a
mov dword [ebx], edi
jne 0x522b77
cmp byte [edx + 1], 0x2f
jne 0x522b77
add edx, 2
mov dword [ebx], edx
mov edx, dword [ebx]
movzx esi, byte [edx]
lea ecx, [esi - 9]
cmp cl, 0x17
ja 0x5218ff
bt eax, ecx
jae 0x5218ff
lea esi, [edx + 0x10]
lea edi, [edx + 1]
and esi, 0xfffffff0
cmp edi, esi
je 0x52299e
movzx ecx, byte [edx + 1]
mov edx, edi
sub ecx, 9
cmp cl, 0x17
jbe 0x521afb
mov dword [ebx], edx
cmp byte [edx], 0x2f
je 0x521889
mov eax, dword [ebp - 0x1c]
mov esi, dword [eax + 0x18]
test esi, esi
jne 0x520fee
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x98]
mov dword [esp], ebx
movaps xmmword [ebp - 0xf8], xmm7
mov dword [esp + 4], eax
mov ecx, esi
movaps xmmword [ebp - 0xe8], xmm3
movaps xmmword [ebp - 0xd8], xmm4
movaps xmmword [ebp - 0xc8], xmm5
movaps xmmword [ebp - 0xb8], xmm6
call fcn.00520dd0
sub esp, 8
mov edi, dword [esi + 0x18]
movdqa xmm6, xmmword [ebp - 0xb8]
test edi, edi
movdqa xmm5, xmmword [ebp - 0xc8]
movdqa xmm4, xmmword [ebp - 0xd8]
movdqa xmm3, xmmword [ebp - 0xe8]
movdqa xmm7, xmmword [ebp - 0xf8]
jne 0x520fee
mov eax, dword [ebx]
movzx esi, byte [eax]
mov edi, eax
lea edx, [esi - 9]
cmp dl, 0x17
ja 0x5219c0
mov ecx, 0x800013
bt ecx, edx
jae 0x5219c0
lea edx, [eax + 0x10]
add edi, 1
and edx, 0xfffffff0
cmp edi, edx
je 0x5221bf
movzx eax, byte [eax + 1]
sub eax, 9
cmp al, 0x17
jbe 0x521b20
lea esi, [esi]
mov dword [ebx], edi
cmp byte [edi], 0x2f
jne 0x521a53
mov eax, 0x800013
lea edx, [edi + 1]
mov dword [ebx], edx
movzx ecx, byte [edi + 1]
cmp cl, 0x2a
jne 0x522c2a
add edi, 2
mov dword [ebx], edi
mov edi, dword [ebx]
movzx ecx, byte [edi]
test cl, cl
je 0x522c52
lea edx, [edi + 1]
cmp cl, 0x2a
mov dword [ebx], edx
jne 0x5219e7
cmp byte [edi + 1], 0x2f
jne 0x5219e7
add edi, 2
mov dword [ebx], edi
mov edi, dword [ebx]
movzx esi, byte [edi]
lea edx, [esi - 9]
cmp dl, 0x17
ja 0x521a3e
bt eax, edx
jae 0x521a3e
lea ecx, [edi + 0x10]
lea esi, [edi + 1]
and ecx, 0xfffffff0
cmp esi, ecx
je 0x522a52
movzx edx, byte [edi + 1]
mov edi, esi
sub edx, 9
cmp dl, 0x17
jbe 0x521b44
mov dword [ebx], edi
cmp byte [edi], 0x2f
je 0x5219d0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x520fee
movzx eax, byte [edi]
add dword [ebp - 0xa8], 1
cmp al, 0x2c
je 0x5223d4
cmp al, 0x7d
mov esi, dword [ebp - 0x98]
jne 0x5223bf
mov eax, dword [ebp - 0xa8]
add edi, 1
mov dword [ebx], edi
mov ebx, dword [esi + 0x24]
mov edi, 3
mov edx, eax
shl edx, 5
sub ebx, edx
test eax, eax
mov dword [esi + 0x24], ebx
mov esi, dword [esi + 0x10]
mov word [ebx - 2], di
jne 0x5228f3
mov dword [ebx - 8], 0
mov dword [ebx - 0xc], eax
mov dword [ebx - 0x10], eax
jmp 0x520fee
bt esi, edx
jae 0x521771
add eax, 1
cmp ecx, eax
je 0x52209e
movzx edi, byte [eax]
lea edx, [edi - 9]
cmp dl, 0x17
ja 0x521771
jmp 0x521ab1
bt edx, ecx
jae 0x5217fc
add eax, 1
cmp esi, eax
je 0x522867
movzx edi, byte [eax]
lea ecx, [edi - 9]
cmp cl, 0x17
ja 0x5217fc
jmp 0x521ad6
bt eax, ecx
jae 0x5218ff
add edx, 1
cmp esi, edx
je 0x5229a0
movzx edi, byte [edx]
lea ecx, [edi - 9]
cmp cl, 0x17
ja 0x5218ff
jmp 0x521afb
bt ecx, eax
jae 0x5219c0
add edi, 1
cmp edx, edi
je 0x5221bf
movzx eax, byte [edi]
sub eax, 9
cmp al, 0x17
ja 0x5219c0
jmp 0x521b20
bt eax, edx
jae 0x521a3e
add edi, 1
cmp ecx, edi
je 0x522a54
movzx esi, byte [edi]
lea edx, [esi - 9]
cmp dl, 0x17
ja 0x521a3e
jmp 0x521b44
bt esi, eax
jb 0x521860
jmp 0x521879
movdqa xmm6, xmmword [str._________________n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_tuuuuuuuubtnufruuuuuuuuuuuuuuuuuu]
mov dword [ebp - 0xb8], esi
mov esi, dword [ebp - 0x1c]
movdqa xmm5, xmmword [0x54f990]
movdqa xmm7, xmm6
mov dword [ebp - 0xc8], 0
movdqa xmm4, xmmword [0x54f9a0]
movdqa xmm3, xmmword [0x54f9b0]
movaps xmmword [ebp - 0x138], xmm6
movaps xmmword [ebp - 0xd8], xmm5
movaps xmmword [ebp - 0xe8], xmm4
movaps xmmword [ebp - 0xf8], xmm3
movaps xmmword [ebp - 0x38], xmm5
movaps xmmword [ebp - 0x48], xmm4
movaps xmmword [ebp - 0x58], xmm3
movaps xmmword [ebp - 0x148], xmm6
movaps xmmword [ebp - 0x108], xmm5
movaps xmmword [ebp - 0x118], xmm4
movaps xmmword [ebp - 0x128], xmm3
mov ecx, esi
movaps xmmword [ebp - 0xa8], xmm7
movaps xmmword [ebp - 0x98], xmm3
movaps xmmword [ebp - 0x88], xmm4
movaps xmmword [ebp - 0x78], xmm5
movaps xmmword [ebp - 0x68], xmm6
mov eax, dword [ebp - 0xb8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00520dd0
mov ecx, dword [esi + 0x18]
sub esp, 8
test ecx, ecx
jne 0x520fee
mov edx, dword [ebx]
add dword [ebp - 0xc8], 1
movdqa xmm6, xmmword [ebp - 0x68]
movzx eax, byte [edx]
movdqa xmm5, xmmword [ebp - 0x78]
lea ecx, [eax - 9]
movdqa xmm4, xmmword [ebp - 0x88]
mov eax, edx
cmp cl, 0x17
movdqa xmm3, xmmword [ebp - 0x98]
movdqa xmm7, xmmword [ebp - 0xa8]
ja 0x521ca0
mov edi, 0x800013
bt edi, ecx
jae 0x521ca0
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x521f45
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
jbe 0x521e60
lea esi, [esi]
mov dword [ebx], eax
movzx edx, byte [eax]
cmp dl, 0x2f
jne 0x521d3a
mov edi, 0x800013
lea edx, [eax + 1]
mov dword [ebx], edx
movzx ecx, byte [eax + 1]
cmp cl, 0x2a
jne 0x522ad3
add eax, 2
mov dword [ebx], eax
movzx edx, byte [eax]
test dl, dl
je 0x522b10
lea ecx, [eax + 1]
cmp dl, 0x2a
mov dword [ebx], ecx
jne 0x52297a
cmp byte [eax + 1], 0x2f
jne 0x52297a
lea edx, [eax + 2]
mov dword [ebx], edx
movzx eax, byte [edx]
lea ecx, [eax - 9]
mov eax, edx
cmp cl, 0x17
ja 0x521d25
bt edi, ecx
jae 0x521d25
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x522594
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
jbe 0x521e85
mov dword [ebx], eax
cmp byte [eax], 0x2f
je 0x521cb3
mov edx, dword [esi + 0x18]
test edx, edx
jne 0x520fee
movzx edx, byte [eax]
cmp dl, 0x2c
jne 0x5222ef
lea edx, [eax + 1]
mov dword [ebx], edx
movzx edi, byte [eax + 1]
lea ecx, [edi - 9]
cmp cl, 0x17
ja 0x521d80
mov edi, 0x800013
bt edi, ecx
jae 0x521d80
lea ecx, [eax + 0x11]
lea edx, [eax + 2]
and ecx, 0xfffffff0
cmp edx, ecx
je 0x521eb3
movzx eax, byte [eax + 2]
sub eax, 9
cmp al, 0x17
jbe 0x521f01
nop
mov dword [ebx], edx
movzx eax, byte [edx]
cmp al, 0x2f
jne 0x521e18
mov edi, 0x800013
lea eax, [edx + 1]
mov dword [ebx], eax
movzx ecx, byte [edx + 1]
cmp cl, 0x2a
jne 0x522b4e
add edx, 2
mov dword [ebx], edx
movzx ecx, byte [edx]
test cl, cl
je 0x522afc
lea eax, [edx + 1]
cmp cl, 0x2a
mov dword [ebx], eax
jne 0x522acc
cmp byte [edx + 1], 0x2f
jne 0x522acc
lea eax, [edx + 2]
mov dword [ebx], eax
movzx ecx, byte [eax]
mov edx, eax
sub ecx, 9
cmp cl, 0x17
ja 0x521e03
bt edi, ecx
jae 0x521e03
lea ecx, [eax + 0x10]
add edx, 1
and ecx, 0xfffffff0
cmp edx, ecx
je 0x522765
movzx eax, byte [eax + 1]
sub eax, 9
cmp al, 0x17
jbe 0x521f21
mov dword [ebx], edx
cmp byte [edx], 0x2f
je 0x521d92
mov edi, dword [esi + 0x18]
test edi, edi
jne 0x520fee
movzx eax, byte [edx]
cmp al, 0x5d
jne 0x521bfb
mov esi, dword [ebp - 0xb8]
mov edi, dword [ebp - 0xc8]
mov ecx, dword [esi + 0x24]
mov eax, edi
mov edx, dword [esi + 0x10]
shl eax, 4
sub ecx, eax
mov dword [esi + 0x24], ecx
mov eax, ecx
lea ecx, [ecx - 0x10]
mov dword [esp + 8], edx
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0051d770
add dword [ebx], 1
sub esp, 0xc
jmp 0x520fee
bt edi, edx
jae 0x521ca0
add eax, 1
cmp ecx, eax
je 0x521f45
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
ja 0x521ca0
jmp 0x521e60
bt edi, edx
jae 0x521d25
add eax, 1
cmp ecx, eax
je 0x522594
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
ja 0x521d25
jmp 0x521e85
add edx, 0x10
movdqa xmm1, xmmword [edx]
movdqa xmm0, xmm7
movdqa xmm2, xmmword [ebp - 0x38]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm2, xmm0
movdqa xmm0, xmmword [ebp - 0x48]
pcmpeqb xmm0, xmm1
pcmpeqb xmm1, xmmword [ebp - 0x58]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb eax, xmm0
xor ax, 0xffff
je 0x521eb0
movzx eax, ax
mov ecx, 0xffffffff
bsf eax, eax
cmove eax, ecx
add edx, eax
jmp 0x521d80
bt edi, eax
jae 0x521d80
add edx, 1
cmp ecx, edx
je 0x521eb3
movzx eax, byte [edx]
sub eax, 9
cmp al, 0x17
ja 0x521d80
jmp 0x521f01
bt edi, eax
jae 0x521e03
add edx, 1
cmp ecx, edx
je 0x522765
movzx eax, byte [edx]
sub eax, 9
cmp al, 0x17
ja 0x521e03
jmp 0x521f21
movdqa xmm1, xmmword [eax]
movdqa xmm2, xmm5
movdqa xmm0, xmm1
pcmpeqb xmm2, xmm1
pcmpeqb xmm0, xmm6
por xmm2, xmm0
movdqa xmm0, xmm1
pcmpeqb xmm0, xmm4
jmp 0x521f93
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm2, xmm5
movdqa xmm0, xmm1
pcmpeqb xmm2, xmm1
pcmpeqb xmm0, xmm6
por xmm0, xmm2
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm4
por xmm0, xmm2
pcmpeqb xmm1, xmm3
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x521f70
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x521ca0
mov eax, dword [esi + 0x20]
test eax, eax
je 0x5222a1
sub ecx, eax
lea ebx, [ecx + 1]
shr ebx, 1
add ecx, ebx
mov edi, edx
sub edi, eax
lea ebx, [edi + 0x10]
cmp ebx, ecx
cmovb ebx, ecx
test ebx, ebx
je 0x5221a1
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
lea edx, [eax + edi]
mov dword [esi + 0x20], eax
add eax, ebx
mov dword [esi + 0x28], eax
lea eax, [edx + 0x10]
jmp 0x521043
mov eax, dword [esi + 0x20]
test eax, eax
je 0x5222c9
sub ecx, eax
lea ebx, [ecx + 1]
shr ebx, 1
add ecx, ebx
mov edi, edx
sub edi, eax
lea ebx, [edi + 0x10]
cmp ebx, ecx
cmovb ebx, ecx
test ebx, ebx
je 0x5221b0
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
lea edx, [eax + edi]
mov dword [esi + 0x20], eax
add eax, ebx
mov dword [esi + 0x28], eax
lea eax, [edx + 0x10]
jmp 0x520fc3
mov eax, dword [esi + 0x20]
test eax, eax
je 0x5222dc
sub ecx, eax
lea ebx, [ecx + 1]
shr ebx, 1
add ecx, ebx
mov edi, edx
sub edi, eax
lea ebx, [edi + 0x10]
cmp ebx, ecx
cmovb ebx, ecx
test ebx, ebx
je 0x52227f
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
lea edx, [eax + edi]
mov dword [esi + 0x20], eax
add eax, ebx
mov dword [esi + 0x28], eax
lea eax, [edx + 0x10]
jmp 0x521282
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm5
movdqa xmm2, xmm6
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
jmp 0x5220cb
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm0, xmm6
pcmpeqb xmm2, xmm5
por xmm0, xmm2
movdqa xmm2, xmm1
pcmpeqb xmm1, xmm3
pcmpeqb xmm2, xmm4
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x5220b4
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x521771
mov dword [esp], eax
mov dword [ebp - 0x38], ecx
call sub.msvcrt.dll_free
xor eax, eax
mov ecx, dword [ebp - 0x38]
jmp 0x5215da
mov dword [esp], eax
mov dword [ebp - 0x38], ecx
call sub.msvcrt.dll_free
xor eax, eax
mov ecx, dword [ebp - 0x38]
jmp 0x52158b
movdqa xmm1, xmmword [edx]
movdqa xmm0, xmm7
movdqa xmm2, xmmword [ebp - 0x38]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0x48]
pcmpeqb xmm2, xmm1
jmp 0x522175
add edx, 0x10
movdqa xmm1, xmmword [edx]
movdqa xmm2, xmmword [ebp - 0x38]
movdqa xmm0, xmm1
pcmpeqb xmm2, xmm1
pcmpeqb xmm0, xmm7
por xmm2, xmm0
movdqa xmm0, xmmword [ebp - 0x48]
pcmpeqb xmm0, xmm1
por xmm0, xmm2
pcmpeqb xmm1, xmmword [ebp - 0x58]
por xmm0, xmm1
pmovmskb eax, xmm0
xor ax, 0xffff
je 0x522150
movzx eax, ax
mov ecx, 0xffffffff
bsf eax, eax
cmove eax, ecx
add edx, eax
jmp 0x521879
mov dword [esp], eax
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x521ff4
mov dword [esp], eax
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x522044
movdqa xmm1, xmmword [edi]
movdqa xmm0, xmmword [ebp - 0x68]
movdqa xmm2, xmmword [ebp - 0x138]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0x78]
pcmpeqb xmm2, xmm1
pcmpeqb xmm1, xmmword [ebp - 0x88]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb eax, xmm0
xor ax, 0xffff
jne 0x522257
movaps xmmword [ebp - 0xb8], xmm7
movdqa xmm7, xmmword [ebp - 0x138]
nop
add edi, 0x10
movdqa xmm1, xmmword [edi]
movdqa xmm2, xmmword [ebp - 0x68]
movdqa xmm0, xmm1
pcmpeqb xmm2, xmm1
pcmpeqb xmm0, xmm7
por xmm2, xmm0
movdqa xmm0, xmmword [ebp - 0x78]
pcmpeqb xmm0, xmm1
pcmpeqb xmm1, xmmword [ebp - 0x88]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb eax, xmm0
xor ax, 0xffff
je 0x522210
movdqa xmm7, xmmword [ebp - 0xb8]
movzx eax, ax
mov edx, 0xffffffff
bsf eax, eax
cmove eax, edx
add edi, eax
jmp 0x5219c0
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x52282b
mov ecx, dword [esi + 0x2c]
jmp 0x521565
mov dword [esp], eax
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x52208b
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x522848
mov ecx, dword [esi + 0x2c]
jmp 0x5215b4
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x522981
mov ecx, dword [esi + 0x2c]
jmp 0x521fd4
sub eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], eax
jmp 0x520fee
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x522a35
mov ecx, dword [esi + 0x2c]
jmp 0x522024
mov edi, dword [esi + 0x18]
test edi, edi
je 0x522a18
mov ecx, dword [esi + 0x2c]
jmp 0x52206b
cmp dl, 0x5d
mov esi, dword [ebp - 0xb8]
jne 0x522b39
add eax, 1
mov ecx, 4
mov dword [ebx], eax
mov eax, dword [ebp - 0xc8]
mov ebx, dword [esi + 0x24]
mov edx, eax
shl edx, 4
sub ebx, edx
test eax, eax
mov dword [esi + 0x24], ebx
mov esi, dword [esi + 0x10]
mov word [ebx - 2], cx
je 0x521a9f
test edx, edx
je 0x522359
mov edi, dword [esi]
mov ecx, edx
test edi, edi
je 0x52233f
mov eax, dword [edi + 4]
add eax, edx
cmp eax, dword [edi]
jbe 0x5223a3
cmp dword [esi + 4], ecx
mov edi, ecx
cmovae edi, dword [esi + 4]
cmp dword [esi + 0xc], 0
je 0x522c69
mov eax, edi
add eax, 0xc
jne 0x522379
xor eax, eax
mov dword [ebx - 8], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0xc8]
jmp 0x521aa6
mov dword [esp], eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x38], ecx
call sub.msvcrt.dll_malloc
test eax, eax
mov edx, dword [ebp - 0x1c]
je 0x522359
mov dword [eax], edi
mov edi, dword [esi]
mov ecx, dword [ebp - 0x38]
mov dword [eax + 4], 0
mov dword [eax + 8], edi
mov edi, eax
mov dword [esi], eax
mov esi, dword [edi + 4]
add ecx, esi
lea eax, [edi + esi + 0xc]
mov dword [edi + 4], ecx
jmp 0x52235b
mov eax, ecx
jmp 0x520ebb
mov eax, ecx
jmp 0x52116b
sub edi, dword [ebx + 4]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], 6
mov dword [eax + 0x1c], edi
jmp 0x520fee
lea eax, [edi + 1]
mov dword [ebx], eax
movzx esi, byte [edi + 1]
lea edx, [esi - 9]
cmp dl, 0x17
ja 0x522410
mov esi, 0x800013
bt esi, edx
jae 0x522410
lea ecx, [edi + 0x11]
lea eax, [edi + 2]
and ecx, 0xfffffff0
cmp eax, ecx
je 0x522699
movzx edx, byte [edi + 2]
sub edx, 9
cmp dl, 0x17
jbe 0x5224f0
mov dword [ebx], eax
cmp byte [eax], 0x2f
jne 0x5224a3
mov edi, 0x800013
lea edx, [eax + 1]
mov dword [ebx], edx
movzx ecx, byte [eax + 1]
cmp cl, 0x2a
jne 0x522cb9
add eax, 2
mov dword [ebx], eax
mov eax, dword [ebx]
movzx ecx, byte [eax]
test cl, cl
je 0x522d42
lea edx, [eax + 1]
cmp cl, 0x2a
mov dword [ebx], edx
jne 0x522437
cmp byte [eax + 1], 0x2f
jne 0x522437
add eax, 2
mov dword [ebx], eax
mov eax, dword [ebx]
movzx esi, byte [eax]
lea edx, [esi - 9]
cmp dl, 0x17
ja 0x52248e
bt edi, edx
jae 0x52248e
lea ecx, [eax + 0x10]
lea esi, [eax + 1]
and ecx, 0xfffffff0
cmp esi, ecx
je 0x522d59
movzx edx, byte [eax + 1]
mov eax, esi
sub edx, 9
cmp dl, 0x17
jbe 0x522515
mov dword [ebx], eax
cmp byte [eax], 0x2f
je 0x522420
mov esi, dword [ebp - 0x1c]
mov edx, dword [esi + 0x18]
test edx, edx
jne 0x520fee
movzx edx, byte [eax]
cmp dl, 0x7d
jne 0x5216b6
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0xa8]
mov ecx, dword [esi + 0x24]
mov eax, edi
mov edx, dword [esi + 0x10]
shl eax, 5
sub ecx, eax
mov dword [esi + 0x24], ecx
mov eax, ecx
lea ecx, [ecx - 0x10]
mov dword [esp + 8], edx
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0051d870
add dword [ebx], 1
sub esp, 0xc
jmp 0x520fee
bt esi, edx
jae 0x522410
add eax, 1
cmp ecx, eax
je 0x522699
movzx edi, byte [eax]
lea edx, [edi - 9]
cmp dl, 0x17
ja 0x522410
jmp 0x5224f0
bt edi, edx
jae 0x52248e
add eax, 1
cmp ecx, eax
je 0x522539
movzx esi, byte [eax]
lea edx, [esi - 9]
cmp dl, 0x17
ja 0x52248e
jmp 0x522515
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm0, xmmword [str._________________n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_r_t_t_t_t_t_t_t_t_t_t_t_t_t_t_t_tuuuuuuuubtnufruuuuuuuuuuuuuuuuuu]
pcmpeqb xmm2, xmmword [0x54f990]
por xmm0, xmm2
movdqa xmm2, xmm1
pcmpeqb xmm1, xmmword [0x54f9b0]
pcmpeqb xmm2, xmmword [0x54f9a0]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x522536
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x52248e
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmmword [ebp - 0x138]
movdqa xmm2, xmmword [ebp - 0xd8]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0xe8]
pcmpeqb xmm2, xmm1
pcmpeqb xmm1, xmmword [ebp - 0xf8]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
jne 0x522630
movaps xmmword [ebp - 0x68], xmm7
movdqa xmm7, xmmword [ebp - 0x138]
add eax, 0x10
movdqa xmm0, xmm7
movdqa xmm1, xmmword [eax]
movdqa xmm2, xmmword [ebp - 0xd8]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm2, xmm0
movdqa xmm0, xmmword [ebp - 0xe8]
pcmpeqb xmm0, xmm1
pcmpeqb xmm1, xmmword [ebp - 0xf8]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x5225e6
movdqa xmm7, xmmword [ebp - 0x68]
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x521d25
cmp cl, 0x2f
jne 0x522b24
add eax, 2
mov dword [ebx], eax
cmp byte [eax], 0
je 0x5211d0
add eax, 1
mov dword [ebx], eax
cmp byte [eax - 1], 0xa
jne 0x522653
mov edx, eax
jmp 0x521193
cmp cl, 0x2f
jne 0x522b24
add eax, 2
mov dword [ebx], eax
cmp byte [eax], 0
je 0x520f20
add eax, 1
mov dword [ebx], eax
cmp byte [eax - 1], 0xa
jne 0x52267e
mov edx, eax
jmp 0x520ee3
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmmword [ebp - 0x108]
movdqa xmm2, xmmword [ebp - 0x208]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0x118]
pcmpeqb xmm2, xmm1
pcmpeqb xmm1, xmmword [ebp - 0x128]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
jne 0x52273b
movaps xmmword [ebp - 0xb8], xmm7
movdqa xmm7, xmmword [ebp - 0x208]
add eax, 0x10
movdqa xmm0, xmm7
movdqa xmm1, xmmword [eax]
movdqa xmm2, xmmword [ebp - 0x108]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm2, xmm0
movdqa xmm0, xmmword [ebp - 0x118]
pcmpeqb xmm0, xmm1
pcmpeqb xmm1, xmmword [ebp - 0x128]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x5226ee
movdqa xmm7, xmmword [ebp - 0xb8]
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x522410
sub eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 4
mov dword [esi + 0x1c], eax
jmp 0x520fee
movdqa xmm1, xmmword [edx]
movdqa xmm0, xmmword [ebp - 0x148]
movdqa xmm2, xmmword [ebp - 0x108]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0x118]
pcmpeqb xmm2, xmm1
pcmpeqb xmm1, xmmword [ebp - 0x128]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb eax, xmm0
xor ax, 0xffff
jne 0x522801
movaps xmmword [ebp - 0x68], xmm7
movdqa xmm7, xmmword [ebp - 0x148]
add edx, 0x10
movdqa xmm0, xmm7
movdqa xmm1, xmmword [edx]
movdqa xmm2, xmmword [ebp - 0x108]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm2, xmm0
movdqa xmm0, xmmword [ebp - 0x118]
pcmpeqb xmm0, xmm1
pcmpeqb xmm1, xmmword [ebp - 0x128]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb eax, xmm0
xor ax, 0xffff
je 0x5227b7
movdqa xmm7, xmmword [ebp - 0x68]
movzx eax, ax
mov ecx, 0xffffffff
bsf eax, eax
cmove eax, ecx
add edx, eax
jmp 0x521e03
sub eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 5
mov dword [esi + 0x1c], eax
jmp 0x520fee
mov dword [esp], 1
call fcn.0053ca80
mov edx, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x20]
jmp 0x522277
mov dword [esp], 1
call fcn.0053ca80
mov edx, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x20]
jmp 0x522299
mov eax, edi
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmmword [ebp - 0x158]
movdqa xmm2, xmmword [ebp - 0x148]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0x168]
pcmpeqb xmm2, xmm1
jmp 0x5228c4
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmmword [ebp - 0x148]
movdqa xmm2, xmmword [ebp - 0x158]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm2, xmm0
movdqa xmm0, xmmword [ebp - 0x168]
pcmpeqb xmm0, xmm1
por xmm0, xmm2
pcmpeqb xmm1, xmmword [ebp - 0x178]
por xmm0, xmm1
pmovmskb ecx, xmm0
xor cx, 0xffff
je 0x522895
movzx ecx, cx
mov esi, 0xffffffff
bsf ecx, ecx
cmove ecx, esi
add eax, ecx
jmp 0x5217fc
test edx, edx
je 0x522922
mov edi, dword [esi]
mov ecx, edx
test edi, edi
je 0x522908
mov eax, dword [edi + 4]
add eax, edx
cmp eax, dword [edi]
jbe 0x52296c
cmp dword [esi + 4], ecx
mov edi, ecx
cmovae edi, dword [esi + 4]
cmp dword [esi + 0xc], 0
je 0x522c07
mov eax, edi
add eax, 0xc
jne 0x522942
xor eax, eax
mov dword [ebx - 8], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0xa8]
jmp 0x521aa6
mov dword [esp], eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x38], ecx
call sub.msvcrt.dll_malloc
test eax, eax
mov edx, dword [ebp - 0x1c]
je 0x522922
mov dword [eax], edi
mov edi, dword [esi]
mov ecx, dword [ebp - 0x38]
mov dword [eax + 4], 0
mov dword [eax + 8], edi
mov edi, eax
mov dword [esi], eax
mov esi, dword [edi + 4]
add ecx, esi
lea eax, [edi + esi + 0xc]
mov dword [edi + 4], ecx
jmp 0x522924
mov eax, ecx
jmp 0x521cca
mov dword [esp], 1
call fcn.0053ca80
mov edx, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x20]
jmp 0x5222ac
mov edx, edi
movdqa xmm1, xmmword [edx]
movdqa xmm0, xmmword [ebp - 0x198]
movdqa xmm2, xmmword [ebp - 0x188]
pcmpeqb xmm0, xmm1
jmp 0x5229d5
add edx, 0x10
movdqa xmm1, xmmword [edx]
movdqa xmm0, xmmword [ebp - 0x188]
movdqa xmm2, xmmword [ebp - 0x198]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0x1a8]
pcmpeqb xmm2, xmm1
pcmpeqb xmm1, xmmword [ebp - 0x1b8]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb ecx, xmm0
xor cx, 0xffff
je 0x5229ba
movzx ecx, cx
mov esi, 0xffffffff
bsf ecx, ecx
cmove ecx, esi
add edx, ecx
jmp 0x5218ff
mov dword [esp], 1
call fcn.0053ca80
mov edx, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x20]
jmp 0x5222e7
mov dword [esp], 1
call fcn.0053ca80
mov edx, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x20]
jmp 0x5222d4
mov edi, esi
movdqa xmm1, xmmword [edi]
movdqa xmm0, xmmword [ebp - 0x1d8]
movdqa xmm2, xmmword [ebp - 0x1c8]
pcmpeqb xmm0, xmm1
jmp 0x522a89
add edi, 0x10
movdqa xmm1, xmmword [edi]
movdqa xmm0, xmmword [ebp - 0x1c8]
movdqa xmm2, xmmword [ebp - 0x1d8]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0x1e8]
pcmpeqb xmm2, xmm1
pcmpeqb xmm1, xmmword [ebp - 0x1f8]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x522a6e
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add edi, edx
jmp 0x521a3e
mov edx, eax
jmp 0x521da9
cmp cl, 0x2f
jne 0x522ca3
add eax, 2
mov dword [ebx], eax
cmp byte [eax], 0
je 0x521d25
add eax, 1
mov dword [ebx], eax
cmp byte [eax - 1], 0xa
jne 0x522ae1
mov edx, eax
jmp 0x521cf2
mov eax, edx
sub eax, dword [ebx + 4]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], eax
jmp 0x521e0a
mov edx, eax
sub edx, dword [ebx + 4]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], edx
jmp 0x521d2c
sub edx, dword [ebx + 4]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], 0x11
mov dword [eax + 0x1c], edx
jmp 0x520fee
sub eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 7
mov dword [esi + 0x1c], eax
jmp 0x520fee
cmp cl, 0x2f
jne 0x522d11
add edx, 2
mov dword [ebx], edx
cmp byte [edx], 0
je 0x521e03
add edx, 1
mov dword [ebx], edx
cmp byte [edx - 1], 0xa
jne 0x522b5c
mov eax, edx
jmp 0x521dd1
mov edx, edi
jmp 0x5218a0
mov eax, ecx
jmp 0x52179d
mov edx, eax
sub edx, dword [esi + 4]
mov ebx, esi
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], edx
jmp 0x521803
cmp cl, 0x2f
jne 0x522d27
add eax, 2
mov dword [ebx], eax
jmp 0x522bbc
lea ecx, [eax + 1]
mov dword [ebx], ecx
cmp byte [eax], 0xa
je 0x5217c7
mov eax, dword [ebx]
cmp byte [eax], 0
jne 0x522bae
jmp 0x5217fc
sub edx, dword [ebx + 4]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], 0x11
mov dword [eax + 0x1c], edx
jmp 0x521906
cmp cl, 0x2f
jne 0x522c8c
add edx, 2
mov dword [ebx], edx
jmp 0x522bfb
lea ecx, [edx + 1]
mov dword [ebx], ecx
cmp byte [edx], 0xa
je 0x5218ca
mov edx, dword [ebx]
cmp byte [edx], 0
jne 0x522bed
jmp 0x5218ff
mov dword [esp], 1
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x1c], edx
call fcn.0053ca80
mov ecx, dword [ebp - 0x38]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov edx, dword [ebp - 0x1c]
jmp 0x52291b
cmp cl, 0x2f
jne 0x522cdf
add edi, 2
mov dword [ebx], edi
mov edi, dword [ebx]
cmp byte [edi], 0
je 0x521a3e
lea edx, [edi + 1]
mov dword [ebx], edx
cmp byte [edi], 0xa
jne 0x522c38
jmp 0x521a09
mov eax, edi
sub eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], eax
jmp 0x521a45
mov dword [esp], 1
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x1c], edx
call fcn.0053ca80
mov ecx, dword [ebp - 0x38]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov edx, dword [ebp - 0x1c]
jmp 0x522352
mov ecx, esi
sub ecx, dword [ebx + 4]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], 0x11
mov dword [eax + 0x1c], ecx
jmp 0x521906
mov eax, edx
sub eax, dword [ebx + 4]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], eax
mov eax, edx
jmp 0x521d2c
cmp cl, 0x2f
jne 0x522cf8
add eax, 2
mov dword [ebx], eax
jmp 0x522cd3
lea edx, [eax + 1]
mov dword [ebx], edx
cmp byte [eax], 0xa
je 0x522459
mov eax, dword [ebx]
cmp byte [eax], 0
jne 0x522cc5
jmp 0x52248e
mov eax, edx
sub eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov edi, edx
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], eax
jmp 0x521a45
mov eax, edx
sub eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], eax
mov eax, edx
jmp 0x522495
mov edx, eax
sub edx, dword [ebx + 4]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], edx
mov edx, eax
jmp 0x521e0a
mov eax, esi
sub eax, dword [ebx + 4]
mov ecx, esi
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], 0x11
mov eax, ecx
jmp 0x521803
mov edx, eax
sub edx, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 0x11
mov dword [esi + 0x1c], edx
jmp 0x522495
mov eax, esi
jmp 0x522539