Function at 0x63b3b0
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, 0x10c
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 0x63b6f0
jle 0x63b412
cmp dl, 0x74
je 0x63b4d0
cmp dl, 0x7b
je 0x63b645
cmp dl, 0x6e
je 0x63b550
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.006410f0
cmp dl, 0x22
je 0x63b620
cmp dl, 0x5b
jne 0x63b3fa
add eax, 1
mov dword [ebx], eax
mov ecx, dword [esi + 0x28]
mov edi, dword [esi + 0x24]
mov eax, ecx
sub eax, edi
mov edx, edi
cmp eax, 0xf
jle 0x63b900
lea eax, [edx + 0x10]
test edx, edx
mov dword [esi + 0x24], eax
je 0x63b468
mov eax, 4
mov dword [edx + 0xc], 0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov word [edx + 0xe], ax
mov edx, dword [ebx]
movzx eax, byte [edx]
lea ecx, [eax - 9]
mov eax, edx
cmp cl, 0x17
jbe 0x63b5c5
nop
lea esi, [esi]
mov ecx, dword [ebp - 0x1c]
mov dword [ebx], eax
mov edi, dword [ecx + 0x18]
test edi, edi
jne 0x63b4bb
cmp byte [eax], 0x5d
jne 0x63bc52
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 0x63b7d1
lea edx, [eax + 2]
mov dword [ebx], edx
cmp byte [eax + 2], 0x75
jne 0x63b7d1
lea edx, [eax + 3]
mov dword [ebx], edx
cmp byte [eax + 3], 0x65
jne 0x63b7d1
add eax, 4
mov dword [ebx], eax
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
mov ebx, ecx
sub ebx, eax
mov edx, eax
cmp ebx, 0xf
jle 0x63be82
lea eax, [edx + 0x10]
test edx, edx
mov dword [esi + 0x24], eax
je 0x63b4bb
mov ecx, 0xa
mov dword [edx + 0xc], 0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov word [edx + 0xe], cx
jmp 0x63b4bb
lea edx, [eax + 1]
mov dword [ebx], edx
cmp byte [eax + 1], 0x75
jne 0x63b7d1
lea edx, [eax + 2]
mov dword [ebx], edx
cmp byte [eax + 2], 0x6c
jne 0x63b7d1
lea edx, [eax + 3]
mov dword [ebx], edx
cmp byte [eax + 3], 0x6c
jne 0x63b7d1
add eax, 4
mov dword [ebx], eax
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
mov ebx, ecx
sub ebx, eax
mov edx, eax
cmp ebx, 0xf
jle 0x63bed0
lea eax, [edx + 0x10]
test edx, edx
mov dword [esi + 0x24], eax
je 0x63b4bb
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
jmp 0x63b4bb
mov edi, 0x800013
bt edi, ecx
jae 0x63b480
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x63b870
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
ja 0x63b480
bt edi, edx
jae 0x63b480
add eax, 1
cmp ecx, eax
je 0x63b870
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
ja 0x63b480
jmp 0x63b5f4
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 8], 0
call fcn.00644db0
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 8
add eax, 1
mov dword [ebx], eax
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
mov edi, ecx
sub edi, eax
mov edx, eax
cmp edi, 0xf
jle 0x63b950
lea eax, [edx + 0x10]
test edx, edx
mov dword [esi + 0x24], eax
je 0x63b68d
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 0x63b780
mov ecx, dword [ebp - 0x1c]
mov dword [ebx], eax
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x63b4bb
movzx edx, byte [eax]
cmp dl, 0x7d
jne 0x63b9a0
add eax, 1
mov edx, 3
mov dword [ebx], eax
mov eax, dword [esi + 0x24]
mov word [eax - 2], dx
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 0x63b7d1
lea edx, [eax + 2]
mov dword [ebx], edx
cmp byte [eax + 2], 0x6c
jne 0x63b7d1
lea edx, [eax + 3]
mov dword [ebx], edx
cmp byte [eax + 3], 0x73
jne 0x63b7d1
lea edx, [eax + 4]
mov dword [ebx], edx
cmp byte [eax + 4], 0x65
jne 0x63b7d1
add eax, 5
mov dword [ebx], eax
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
mov ebx, ecx
sub ebx, eax
mov edx, eax
cmp ebx, 0xf
jle 0x63bf17
lea eax, [edx + 0x10]
test edx, edx
mov dword [esi + 0x24], eax
je 0x63b4bb
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 0x63b4bb
mov edi, 0x800013
bt edi, ecx
jae 0x63b6a0
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x63b7f0
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
ja 0x63b6a0
nop
lea esi, [esi]
bt edi, edx
jae 0x63b6a0
add eax, 1
cmp ecx, eax
je 0x63b7f0
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
ja 0x63b6a0
jmp 0x63b7b0
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 xmm5, 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 xmm1, xmmword [eax]
movdqa xmm0, xmm5
movdqa xmm4, xmmword [0x766eb0]
pcmpeqb xmm0, xmm1
movdqa xmm3, xmmword [0x766ec0]
movdqa xmm2, xmmword [0x766ed0]
jmp 0x63b82f
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
pcmpeqb xmm0, xmm5
movdqa xmm6, xmm4
pcmpeqb xmm6, xmm1
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 0x63b820
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x63b6a0
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 [0x766eb0]
movdqa xmm6, xmm4
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm5
pcmpeqb xmm6, xmm1
movdqa xmm3, xmmword [0x766ec0]
pcmpeqb xmm0, xmm1
movdqa xmm2, xmmword [0x766ed0]
por xmm0, xmm6
movdqa xmm6, xmm3
pcmpeqb xmm6, xmm1
jmp 0x63b8d5
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
movdqa xmm6, xmm1
pcmpeqb xmm0, xmm4
pcmpeqb xmm6, xmm5
por xmm0, xmm6
movdqa xmm6, xmm1
pcmpeqb xmm6, xmm3
por xmm0, xmm6
pcmpeqb xmm1, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x63b8b2
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x63b480
mov eax, dword [esi + 0x20]
test eax, eax
je 0x63c20b
sub ecx, eax
lea edx, [ecx + 1]
shr edx, 1
add edx, ecx
sub edi, eax
lea ecx, [edi + 0x10]
cmp ecx, edx
cmovb ecx, edx
test ecx, ecx
je 0x63bfef
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [ebp - 0x38], ecx
call sub.msvcrt.dll_srand
mov ecx, dword [ebp - 0x38]
mov dword [esi + 0x20], eax
lea edx, [eax + edi]
add eax, ecx
mov dword [esi + 0x28], eax
jmp 0x63b43a
mov edx, dword [esi + 0x20]
test edx, edx
je 0x63c1f8
sub ecx, edx
lea edi, [ecx + 1]
shr edi, 1
add ecx, edi
sub eax, edx
mov edi, eax
lea eax, [eax + 0x10]
cmp eax, ecx
cmovae ecx, eax
test ecx, ecx
je 0x63bfda
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [ebp - 0x38], ecx
call sub.msvcrt.dll_srand
mov ecx, dword [ebp - 0x38]
mov dword [esi + 0x20], eax
lea edx, [eax + edi]
add eax, ecx
mov dword [esi + 0x28], eax
jmp 0x63b65f
cmp dl, 0x22
mov dword [ebp - 0x38], 0
jne 0x63c2bd
movdqa xmm3, 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 xmm6, xmmword [0x766eb0]
movdqa xmm7, xmm3
movdqa xmm5, xmmword [0x766ec0]
movdqa xmm4, xmmword [0x766ed0]
movaps xmmword [ebp - 0x98], xmm3
movaps xmmword [ebp - 0xa8], xmm6
movaps xmmword [ebp - 0xb8], xmm5
movaps xmmword [ebp - 0xc8], xmm4
movaps xmmword [ebp - 0xd8], xmm3
movaps xmmword [ebp - 0xe8], xmm6
movaps xmmword [ebp - 0xf8], xmm5
movaps xmmword [ebp - 0x108], xmm4
movaps xmmword [ebp - 0x88], xmm4
movaps xmmword [ebp - 0x78], xmm5
movaps xmmword [ebp - 0x68], xmm6
movaps xmmword [ebp - 0x58], xmm7
movaps xmmword [ebp - 0x48], xmm3
mov edi, dword [ebp - 0x1c]
mov dword [esp + 8], 1
mov dword [esp + 4], esi
mov dword [esp], ebx
mov ecx, edi
call fcn.00644db0
mov eax, dword [edi + 0x18]
sub esp, 0xc
test eax, eax
jne 0x63b4bb
mov eax, dword [ebx]
movdqa xmm3, xmmword [ebp - 0x48]
movzx ecx, byte [eax]
mov edi, eax
movdqa xmm7, xmmword [ebp - 0x58]
movdqa xmm6, xmmword [ebp - 0x68]
lea edx, [ecx - 9]
movdqa xmm5, xmmword [ebp - 0x78]
cmp dl, 0x17
movdqa xmm4, xmmword [ebp - 0x88]
ja 0x63baa0
mov ecx, 0x800013
bt ecx, edx
jae 0x63baa0
lea edx, [eax + 0x10]
add edi, 1
and edx, 0xfffffff0
cmp edi, edx
je 0x63bf5e
movzx eax, byte [eax + 1]
sub eax, 9
cmp al, 0x17
jbe 0x63bbf4
nop
mov dword [ebx], edi
cmp byte [edi], 0x3a
jne 0x63c3c4
lea eax, [edi + 1]
mov dword [ebx], eax
movzx ecx, byte [edi + 1]
sub ecx, 9
cmp cl, 0x17
ja 0x63bb0e
mov edx, 0x800013
bt edx, ecx
jae 0x63bb0e
lea ecx, [edi + 0x11]
lea eax, [edi + 2]
and ecx, 0xfffffff0
cmp eax, ecx
je 0x63c004
movzx edi, byte [edi + 2]
sub edi, 9
mov edx, edi
cmp dl, 0x17
ja 0x63bb0e
mov edx, 0x800013
bt edx, edi
jae 0x63bb0e
mov edi, 0x800013
add eax, 1
cmp ecx, eax
je 0x63c004
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
jbe 0x63bc44
mov edi, dword [ebp - 0x1c]
mov dword [ebx], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
movaps xmmword [ebp - 0x88], xmm4
mov ecx, edi
movaps xmmword [ebp - 0x78], xmm5
movaps xmmword [ebp - 0x68], xmm6
movaps xmmword [ebp - 0x58], xmm7
movaps xmmword [ebp - 0x48], xmm3
call fcn.0063b3b0
sub esp, 8
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x63b4bb
mov eax, dword [ebx]
movdqa xmm3, xmmword [ebp - 0x48]
movzx ecx, byte [eax]
mov edi, eax
movdqa xmm7, xmmword [ebp - 0x58]
movdqa xmm6, xmmword [ebp - 0x68]
lea edx, [ecx - 9]
movdqa xmm5, xmmword [ebp - 0x78]
cmp dl, 0x17
movdqa xmm4, xmmword [ebp - 0x88]
ja 0x63bba0
mov ecx, 0x800013
bt ecx, edx
jae 0x63bba0
lea edx, [eax + 0x10]
add edi, 1
and edx, 0xfffffff0
cmp edi, edx
je 0x63c0e2
movzx eax, byte [eax + 1]
sub eax, 9
cmp al, 0x17
jbe 0x63bc20
nop
lea esi, [esi]
mov dword [ebx], edi
movzx eax, byte [edi]
add dword [ebp - 0x38], 1
cmp al, 0x2c
je 0x63c259
cmp al, 0x7d
jne 0x63c244
mov eax, dword [ebp - 0x38]
add edi, 1
mov ecx, dword [esi + 0x10]
mov dword [ebx], edi
mov ebx, dword [esi + 0x24]
mov edi, eax
shl edi, 5
sub ebx, edi
test eax, eax
mov dword [esi + 0x24], ebx
mov esi, 3
mov word [ebx - 2], si
jne 0x63c3db
mov dword [ebx - 8], 0
mov dword [ebx - 0xc], eax
mov dword [ebx - 0x10], eax
jmp 0x63b4bb
bt ecx, eax
jae 0x63baa0
add edi, 1
cmp edx, edi
je 0x63bf5e
movzx eax, byte [edi]
sub eax, 9
cmp al, 0x17
ja 0x63baa0
jmp 0x63bbf4
bt ecx, eax
jae 0x63bba0
add edi, 1
cmp edx, edi
je 0x63c0e2
movzx eax, byte [edi]
sub eax, 9
cmp al, 0x17
ja 0x63bba0
jmp 0x63bc20
bt edi, edx
jb 0x63baf4
jmp 0x63bb0e
movdqa xmm3, 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 - 0x88], esi
mov esi, dword [ebp - 0x1c]
movdqa xmm7, xmm3
movdqa xmm6, xmmword [0x766eb0]
mov dword [ebp - 0x98], 0
movdqa xmm5, xmmword [0x766ec0]
movdqa xmm4, xmmword [0x766ed0]
lea esi, [esi]
mov eax, dword [ebp - 0x88]
mov ecx, esi
mov dword [esp], ebx
movaps xmmword [ebp - 0x78], xmm4
movaps xmmword [ebp - 0x68], xmm5
movaps xmmword [ebp - 0x58], xmm6
movaps xmmword [ebp - 0x48], xmm7
movaps xmmword [ebp - 0x38], xmm3
mov dword [esp + 4], eax
call fcn.0063b3b0
mov ecx, dword [esi + 0x18]
sub esp, 8
test ecx, ecx
jne 0x63b4bb
mov edx, dword [ebx]
add dword [ebp - 0x98], 1
movdqa xmm3, xmmword [ebp - 0x38]
movzx eax, byte [edx]
movdqa xmm7, xmmword [ebp - 0x48]
lea ecx, [eax - 9]
movdqa xmm6, xmmword [ebp - 0x58]
mov eax, edx
cmp cl, 0x17
movdqa xmm5, xmmword [ebp - 0x68]
movdqa xmm4, xmmword [ebp - 0x78]
ja 0x63bd20
mov edi, 0x800013
bt edi, ecx
jae 0x63bd20
lea ecx, [edx + 0x10]
add eax, 1
and ecx, 0xfffffff0
cmp eax, ecx
je 0x63bdb0
movzx edx, byte [edx + 1]
sub edx, 9
cmp dl, 0x17
jbe 0x63bd90
lea esi, [esi]
mov dword [ebx], eax
movzx edx, byte [eax]
cmp dl, 0x2c
jne 0x63c07e
lea edx, [eax + 1]
mov dword [ebx], edx
movzx ecx, byte [eax + 1]
sub ecx, 9
cmp cl, 0x17
ja 0x63bd7f
mov edi, 0x800013
bt edi, ecx
jae 0x63bd7f
lea ecx, [eax + 0x11]
lea edx, [eax + 2]
and ecx, 0xfffffff0
cmp edx, ecx
je 0x63be20
movzx eax, byte [eax + 2]
sub eax, 9
cmp al, 0x17
ja 0x63bd7f
bt edi, eax
jae 0x63bd7f
add edx, 1
cmp ecx, edx
je 0x63be20
movzx eax, byte [edx]
sub eax, 9
cmp al, 0x17
jbe 0x63bd65
mov dword [ebx], edx
jmp 0x63bc90
bt edi, edx
jae 0x63bd20
add eax, 1
cmp ecx, eax
je 0x63bdb0
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
ja 0x63bd20
jmp 0x63bd90
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
pcmpeqb xmm0, xmm3
jmp 0x63bdcf
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm3
pcmpeqb xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm2, xmmword [0x766eb0]
por xmm0, xmm2
movdqa xmm2, xmm1
pcmpeqb xmm1, xmmword [0x766ed0]
pcmpeqb xmm2, xmmword [0x766ec0]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x63bdc0
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x63bd20
movdqa xmm1, xmmword [edx]
movdqa xmm2, xmm7
movdqa xmm0, xmm1
pcmpeqb xmm0, xmm6
jmp 0x63be45
add edx, 0x10
movdqa xmm1, xmmword [edx]
movdqa xmm0, xmm7
movdqa xmm2, xmm6
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmm5
pcmpeqb xmm2, xmm1
pcmpeqb xmm1, xmm4
por xmm0, xmm2
por xmm0, xmm1
pmovmskb eax, xmm0
xor ax, 0xffff
je 0x63be32
movzx eax, ax
mov ecx, 0xffffffff
bsf eax, eax
cmove eax, ecx
add edx, eax
mov dword [ebx], edx
jmp 0x63bc90
mov edi, dword [esi + 0x20]
test edi, edi
je 0x63c231
sub ecx, edi
lea ebx, [ecx + 1]
shr ebx, 1
add ecx, ebx
sub eax, edi
lea ebx, [eax + 0x10]
mov dword [ebp - 0x1c], eax
cmp ebx, ecx
cmovb ebx, ecx
test ebx, ebx
je 0x63c1d4
mov dword [esp + 4], ebx
mov dword [esp], edi
call sub.msvcrt.dll_srand
mov edx, dword [ebp - 0x1c]
mov dword [esi + 0x20], eax
add edx, eax
add eax, ebx
mov dword [esi + 0x28], eax
jmp 0x63b517
mov edi, dword [esi + 0x20]
test edi, edi
je 0x63c21e
sub ecx, edi
lea ebx, [ecx + 1]
shr ebx, 1
add ecx, ebx
sub eax, edi
lea ebx, [eax + 0x10]
mov dword [ebp - 0x1c], eax
cmp ebx, ecx
cmovb ebx, ecx
test ebx, ebx
je 0x63c1c2
mov dword [esp + 4], ebx
mov dword [esp], edi
call sub.msvcrt.dll_srand
mov edx, dword [ebp - 0x1c]
mov dword [esi + 0x20], eax
add edx, eax
add eax, ebx
mov dword [esi + 0x28], eax
jmp 0x63b597
mov edi, dword [esi + 0x20]
test edi, edi
je 0x63c2d9
sub ecx, edi
lea ebx, [ecx + 1]
shr ebx, 1
add ecx, ebx
sub eax, edi
lea ebx, [eax + 0x10]
mov dword [ebp - 0x1c], eax
cmp ebx, ecx
cmovb ebx, ecx
test ebx, ebx
je 0x63c1e6
mov dword [esp + 4], ebx
mov dword [esp], edi
call sub.msvcrt.dll_srand
mov edx, dword [ebp - 0x1c]
mov dword [esi + 0x20], eax
add edx, eax
add eax, ebx
mov dword [esi + 0x28], eax
jmp 0x63b746
movdqa xmm1, xmmword [edi]
movdqa xmm2, xmm3
movdqa xmm0, xmm1
pcmpeqb xmm2, xmm1
pcmpeqb xmm0, xmmword [0x766eb0]
jmp 0x63bf9b
add edi, 0x10
movdqa xmm1, xmmword [edi]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm0, xmm3
pcmpeqb xmm2, xmmword [0x766eb0]
por xmm0, xmm2
movdqa xmm2, xmm1
pcmpeqb xmm1, xmmword [0x766ed0]
pcmpeqb xmm2, xmmword [0x766ec0]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb eax, xmm0
xor ax, 0xffff
je 0x63bf80
movzx eax, ax
mov edx, 0xffffffff
bsf eax, eax
cmove eax, edx
add edi, eax
jmp 0x63baa0
mov dword [esp], edx
mov dword [ebp - 0x38], ecx
call fcn.00548438
xor eax, eax
mov ecx, dword [ebp - 0x38]
jmp 0x63b98a
mov dword [esp], eax
mov dword [ebp - 0x38], ecx
call fcn.00548438
xor eax, eax
mov ecx, dword [ebp - 0x38]
jmp 0x63b938
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm0, xmm6
pcmpeqb xmm2, xmm7
por xmm0, xmm2
movdqa xmm2, xmm1
pcmpeqb xmm2, xmm5
jmp 0x63c053
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm7
movdqa xmm2, xmm6
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmm5
pcmpeqb xmm2, xmm1
por xmm0, xmm2
pcmpeqb xmm1, xmm4
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x63c030
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x63bb0e
cmp dl, 0x5d
mov esi, dword [ebp - 0x88]
jne 0x63c490
add eax, 1
mov edx, 4
mov ecx, dword [esi + 0x10]
mov dword [ebx], eax
mov eax, dword [ebp - 0x98]
mov ebx, dword [esi + 0x24]
mov edi, eax
shl edi, 4
sub ebx, edi
test eax, eax
mov dword [esi + 0x24], ebx
mov word [ebx - 2], dx
je 0x63bbe2
mov dword [esp], edi
call fcn.00649650
sub esp, 4
mov dword [ebx - 8], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_putchar
mov eax, dword [ebp - 0x98]
jmp 0x63bbe9
movdqa xmm1, xmmword [edi]
movdqa xmm0, xmmword [ebp - 0xa8]
movdqa xmm2, xmmword [ebp - 0x98]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0xb8]
pcmpeqb xmm2, xmm1
pcmpeqb xmm1, xmmword [ebp - 0xc8]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb eax, xmm0
xor ax, 0xffff
jne 0x63c1ad
movaps xmmword [ebp - 0x48], xmm7
movaps xmmword [ebp - 0x58], xmm6
movaps xmmword [ebp - 0x68], xmm5
movaps xmmword [ebp - 0x78], xmm4
movdqa xmm5, xmmword [ebp - 0xa8]
movdqa xmm4, xmmword [ebp - 0x98]
movdqa xmm6, xmmword [ebp - 0xb8]
movdqa xmm7, xmmword [ebp - 0xc8]
lea esi, [esi]
add edi, 0x10
movdqa xmm1, xmmword [edi]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm0, xmm4
pcmpeqb xmm2, xmm5
por xmm2, xmm0
movdqa xmm0, xmm1
pcmpeqb xmm1, xmm7
pcmpeqb xmm0, xmm6
por xmm0, xmm2
por xmm0, xmm1
pmovmskb eax, xmm0
xor ax, 0xffff
je 0x63c160
movdqa xmm7, xmmword [ebp - 0x48]
movdqa xmm6, xmmword [ebp - 0x58]
movdqa xmm5, xmmword [ebp - 0x68]
movdqa xmm4, xmmword [ebp - 0x78]
movzx eax, ax
mov edx, 0xffffffff
bsf eax, eax
cmove eax, edx
add edi, eax
jmp 0x63bba0
mov dword [esp], edi
call fcn.00548438
xor eax, eax
mov edx, dword [ebp - 0x1c]
jmp 0x63bf08
mov dword [esp], edi
call fcn.00548438
xor eax, eax
mov edx, dword [ebp - 0x1c]
jmp 0x63beba
mov dword [esp], edi
call fcn.00548438
xor eax, eax
mov edx, dword [ebp - 0x1c]
jmp 0x63bf4f
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x63c3ff
mov ecx, dword [esi + 0x2c]
jmp 0x63b964
mov edx, dword [esi + 0x18]
test edx, edx
je 0x63c41c
mov edx, dword [esi + 0x2c]
jmp 0x63b914
mov edx, dword [esi + 0x18]
test edx, edx
je 0x63c456
mov ecx, dword [esi + 0x2c]
jmp 0x63bee4
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x63c473
mov ecx, dword [esi + 0x2c]
jmp 0x63be96
sub edi, dword [ebx + 4]
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], 6
mov dword [eax + 0x1c], edi
jmp 0x63b4bb
lea eax, [edi + 1]
mov dword [ebx], eax
movzx ecx, byte [edi + 1]
sub ecx, 9
cmp cl, 0x17
ja 0x63c2b2
mov edx, 0x800013
bt edx, ecx
jae 0x63c2b2
lea ecx, [edi + 0x11]
lea eax, [edi + 2]
and ecx, 0xfffffff0
cmp eax, ecx
je 0x63c2ec
movzx edi, byte [edi + 2]
sub edi, 9
mov edx, edi
cmp dl, 0x17
ja 0x63c2b2
mov edx, 0x800013
bt edx, edi
jae 0x63c2b2
mov edi, 0x800013
nop
add eax, 1
cmp ecx, eax
je 0x63c2ec
movzx edx, byte [eax]
sub edx, 9
cmp dl, 0x17
jbe 0x63c2d2
mov dword [ebx], eax
cmp byte [eax], 0x22
je 0x63ba0c
sub eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 4
mov dword [esi + 0x1c], eax
jmp 0x63b4bb
bt edi, edx
jb 0x63c2a0
jmp 0x63c2b2
mov edx, dword [esi + 0x18]
test edx, edx
je 0x63c439
mov ecx, dword [esi + 0x2c]
jmp 0x63bf2b
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmmword [ebp - 0xe8]
movdqa xmm2, xmmword [ebp - 0xd8]
pcmpeqb xmm0, xmm1
pcmpeqb xmm2, xmm1
por xmm0, xmm2
movdqa xmm2, xmmword [ebp - 0xf8]
pcmpeqb xmm2, xmm1
pcmpeqb xmm1, xmmword [ebp - 0x108]
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
jne 0x63c3af
movaps xmmword [ebp - 0x48], xmm7
movaps xmmword [ebp - 0x58], xmm6
movaps xmmword [ebp - 0x68], xmm5
movaps xmmword [ebp - 0x78], xmm4
movdqa xmm5, xmmword [ebp - 0xe8]
movdqa xmm4, xmmword [ebp - 0xd8]
movdqa xmm6, xmmword [ebp - 0xf8]
movdqa xmm7, xmmword [ebp - 0x108]
add eax, 0x10
movdqa xmm1, xmmword [eax]
movdqa xmm0, xmm1
movdqa xmm2, xmm1
pcmpeqb xmm0, xmm4
pcmpeqb xmm2, xmm5
por xmm2, xmm0
movdqa xmm0, xmm1
pcmpeqb xmm1, xmm7
pcmpeqb xmm0, xmm6
por xmm0, xmm2
por xmm0, xmm1
pmovmskb edx, xmm0
xor dx, 0xffff
je 0x63c362
movdqa xmm7, xmmword [ebp - 0x48]
movdqa xmm6, xmmword [ebp - 0x58]
movdqa xmm5, xmmword [ebp - 0x68]
movdqa xmm4, xmmword [ebp - 0x78]
movzx edx, dx
mov ecx, 0xffffffff
bsf edx, edx
cmove edx, ecx
add eax, edx
jmp 0x63c2b2
mov eax, edi
sub eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 5
mov dword [esi + 0x1c], eax
jmp 0x63b4bb
mov dword [esp], edi
call fcn.00649650
push ecx
mov dword [ebx - 8], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_putchar
mov eax, dword [ebp - 0x38]
jmp 0x63bbe9
mov dword [esp], 1
call fcn.006ff530
mov edx, dword [esi + 0x20]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x24]
jmp 0x63c203
mov dword [esp], 1
call fcn.006ff530
mov edi, dword [esi + 0x24]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x20]
jmp 0x63c216
mov dword [esp], 1
call fcn.006ff530
mov edi, dword [esi + 0x20]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x24]
jmp 0x63c2e4
mov dword [esp], 1
call fcn.006ff530
mov edi, dword [esi + 0x20]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x24]
jmp 0x63c229
mov dword [esp], 1
call fcn.006ff530
mov edi, dword [esi + 0x20]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x24]
jmp 0x63c23c
sub eax, dword [ebx + 4]
mov esi, dword [ebp - 0x1c]
mov dword [esi + 0x18], 7
mov dword [esi + 0x1c], eax
jmp 0x63b4bb