Function at 0x668b20
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x198
call fcn.00693bc0
sub rsp, rax
mov rax, qword [0x0072f1d0]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x190], rbx
mov rbx, qword [rsp + 0x1c0]
mov qword [rsp + 0x188], rbp
mov qword [rsp + 0x178], rdi
mov qword [rsp + 0x170], r12
mov r12, qword [rsp + 0x1e8]
mov qword [rsp + 0x160], r14
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x1e0]
mov r14, r8
mov qword [rsp + 0x98], rcx
mov rcx, qword [rsp + 0x1d8]
mov rdi, rdx
xor edx, edx
shr r14, 3
mov qword [rsp + 0x158], r15
mov qword [rsp + 0xa8], rax
cmp r14d, 0x14
mov rbp, r9
mov qword [rsp + 0x88], r9
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0x78], r12
mov r15d, edx
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x40], edx
mov qword [rsp + 0x80], 2
je 0x668c00
cmp r14d, 0x1c
je 0x668c00
cmp r14d, 0x20
je 0x668c00
xor eax, eax
jmp 0x669492
test r9, r9
jne 0x668c17
call fcn.005b3d00
xor edx, edx
mov rbp, rax
mov qword [rsp + 0x88], rax
mov rcx, qword [rsp + 0x1c8]
mov eax, 0x200
cmp rdi, rax
cmovb rdi, rax
lea rax, [rdi + 0x3f]
and rax, 0xffffffffffffffc0
test rcx, rcx
mov qword [rsp + 0x70], rax
je 0x668c47
movsxd rax, r14d
cmp rcx, rax
cmovb rbx, rdx
mov qword [rsp + 0x180], rsi
movsxd rsi, r14d
cmp rcx, rsi
cmova rcx, rsi
test rbx, rbx
mov qword [rsp + 0x1c8], rcx
je 0x668c79
mov r8, rcx
lea rcx, [rsp + 0x100]
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x168], r13
call fcn.005e0ea0
test rax, rax
mov r13, rax
mov qword [rsp + 0x38], rax
je 0x66947f
call fcn.0063da80
test rax, rax
mov qword [rsp + 0x58], rax
je 0x66945d
mov rcx, r13
call fcn.005e0fc0
mov rcx, r13
call fcn.005e1140
mov rcx, r13
mov rdi, rax
call fcn.005e1140
mov rcx, r13
mov qword [rsp + 0x50], rax
call fcn.005e1140
mov rcx, r13
mov r15, rax
call fcn.005e1140
mov rcx, r13
mov qword [rsp + 0x48], rax
call fcn.005e1140
mov rcx, r13
mov qword [rsp + 0xb8], rax
call fcn.005e1140
mov rcx, r13
mov qword [rsp + 0x90], rax
call fcn.005e1140
mov rcx, r13
mov qword [rsp + 0x68], rax
call fcn.005e1140
mov rbx, rax
mov qword [rsp + 0x60], rax
call fcn.005c6460
mov r8, qword [rsp + 0x70]
mov rcx, rbx
mov rdx, rax
dec r8d
call fcn.00621930
test eax, eax
je 0x669451
nop
mov ebx, dword [rsp + 0x40]
xor edx, edx
mov rcx, r12
mov r8d, ebx
call fcn.0066dd30
inc ebx
test eax, eax
mov dword [rsp + 0x40], ebx
je 0x66944a
cmp qword [rsp + 0x1c8], 0
jne 0x668d81
lea rcx, [rsp + 0x100]
mov edx, r14d
call fcn.005b4240
mov ebx, 1
jmp 0x668d8d
xor eax, eax
mov ebx, eax
mov qword [rsp + 0x1c8], rax
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0xe0]
mov r8, rsi
call sub.msvcrt.dll_memcpy
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x120]
mov r8, rsi
call sub.msvcrt.dll_memcpy
lea r11, [rsi - 1]
test r11, r11
js 0x668dd5
inc byte [rsp + r11 + 0xe0]
jne 0x668dd5
dec r11
jns 0x668dc6
lea r8, [rsp + 0xc0]
lea rcx, [rsp + 0x100]
xor r9d, r9d
mov rdx, rsi
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rbp
call fcn.005d2f80
test eax, eax
je 0x669443
lea r8, [rsp + 0x120]
lea rcx, [rsp + 0xe0]
xor r9d, r9d
mov rdx, rsi
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rbp
call fcn.005d2f80
test eax, eax
je 0x66943c
xor ecx, ecx
test r14d, r14d
jle 0x668e57
nop
movzx eax, byte [rsp + rcx + 0x120]
inc rcx
xor byte [rsp + rcx + 0xbf], al
cmp rcx, rsi
jl 0x668e40
or byte [rsp + 0xc0], 0x80
mov r8, qword [rsp + 0x48]
or byte [rsp + rsi + 0xbf], 1
lea rcx, [rsp + 0xc0]
mov edx, r14d
call fcn.005c6b80
test rax, rax
je 0x669435
mov rcx, qword [rsp + 0x48]
mov r9d, ebx
mov r8, r13
mov edx, reloc.WLDAP32.dll_Ordinal_50
mov qword [rsp + 0x20], r12
call fcn.0066e340
test eax, eax
jg 0x668eb5
test eax, eax
je 0x668d40
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 2]
call fcn.0066dd30
test eax, eax
je 0x66942e
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 3]
call fcn.0066dd30
test eax, eax
je 0x669427
mov rcx, qword [rsp + 0x70]
movabs rax, 0xcccccccccccccccd
xor r12d, r12d
dec rcx
lea r13, [rsi - 1]
mul rcx
mov rbp, rdx
shr rbp, 7
test r12d, r12d
je 0x668f22
mov rcx, qword [rsp + 0x78]
mov r8d, r12d
xor edx, edx
call fcn.0066dd30
test eax, eax
je 0x6693f1
xor edx, edx
mov rcx, r15
call fcn.005c6ae0
xor ecx, ecx
test ebp, ebp
mov ebx, ecx
js 0x668fe3
test r13, r13
mov rax, r13
js 0x668f4e
inc byte [rsp + rax + 0xe0]
jne 0x668f4e
dec rax
jns 0x668f40
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x28], rcx
lea r8, [rsp + 0xc0]
lea rcx, [rsp + 0xe0]
xor r9d, r9d
mov rdx, rsi
mov qword [rsp + 0x20], rax
call fcn.005d2f80
test eax, eax
je 0x6693e5
lea rcx, [rsp + 0xc0]
mov r8, rdi
mov edx, r14d
call fcn.005c6b80
test rax, rax
je 0x6693d9
lea r8d, [r14*8]
mov rdx, rdi
mov rcx, rdi
imul r8d, ebx
call fcn.00621930
test eax, eax
je 0x6693ca
mov r8, rdi
mov rdx, r15
mov rcx, r15
call fcn.005f5620
test eax, eax
je 0x6693bb
inc ebx
mov ecx, 0
cmp ebx, ebp
jle 0x668f38
mov rdx, qword [rsp + 0x70]
mov rcx, r15
dec edx
call fcn.005c7090
test eax, eax
je 0x6693ac
mov rbx, qword [rsp + 0xb8]
mov rdx, r15
mov rcx, rbx
call fcn.005c68f0
test rax, rax
je 0x66939d
mov r8, qword [rsp + 0x60]
mov rdx, rbx
mov rcx, rbx
call fcn.005f5620
test eax, eax
je 0x66938e
mov rdx, qword [rsp + 0x48]
mov rcx, rdi
call fcn.00621730
test eax, eax
je 0x66937f
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x90]
mov r9, rdi
mov r8, rbx
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.0064a640
test eax, eax
je 0x669370
call fcn.005c6460
mov rdx, qword [rsp + 0x90]
mov rcx, rdi
mov r8, rax
call fcn.005f5540
test eax, eax
je 0x669361
mov rdx, rbx
mov rbx, qword [rsp + 0x68]
mov r8, rdi
mov rcx, rbx
call fcn.005f5540
test eax, eax
je 0x669352
mov rdx, qword [rsp + 0x60]
mov rcx, rbx
call fcn.005c6e50
test eax, eax
js 0x6690e5
mov rbx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x68]
mov r9d, 1
mov qword [rsp + 0x20], rbx
lea edx, [r9 + 0x31]
call fcn.0066e340
test eax, eax
jg 0x66910c
test eax, eax
jne 0x669343
inc r12d
cmp r12d, 0x1000
jl 0x668f06
mov rbp, qword [rsp + 0x88]
mov r12, qword [rsp + 0x78]
mov r13, qword [rsp + 0x38]
jmp 0x668d40
mov edx, 2
mov rcx, rbx
lea r8d, [rdx - 1]
call fcn.0066dd30
test eax, eax
je 0x669334
call fcn.005c6460
mov rbp, qword [rsp + 0x68]
mov r14, qword [rsp + 0x60]
mov rdx, rbp
mov rcx, r14
mov r8, rax
call fcn.005f5540
test eax, eax
je 0x669325
mov r15, qword [rsp + 0x48]
mov r13, qword [rsp + 0x38]
mov r8, r14
xor edx, edx
mov rcx, rdi
mov r9, r15
mov qword [rsp + 0x20], r13
call fcn.0064a640
test eax, eax
je 0x669420
mov edx, 2
mov rcx, r14
call fcn.005c6ae0
test eax, eax
je 0x669419
mov rcx, qword [rsp + 0x58]
mov r8, r13
mov rdx, rbp
call fcn.0063d660
test eax, eax
je 0x669412
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov r9, rbp
mov qword [rsp + 0x28], rax
mov r8, rdi
mov rdx, r14
mov qword [rsp + 0x20], r13
call fcn.0063f980
test eax, eax
je 0x66940b
nop
nop
mov rcx, qword [rsp + 0x50]
cmp dword [rcx + 8], 1
jne 0x66923c
mov rax, qword [rcx]
cmp qword [rax], 1
jne 0x66923c
cmp dword [rcx + 0x10], 0
jne 0x66923c
call fcn.005c6460
mov rdx, r14
mov rcx, r14
mov r8, rax
call fcn.005f5620
test eax, eax
je 0x669404
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
inc dword [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov r9, rbp
mov r8, rdi
mov rdx, r14
mov qword [rsp + 0x20], r13
call fcn.0063f980
test eax, eax
jne 0x6691d0
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov edx, 3
mov rcx, rbx
lea r8d, [rdx - 2]
call fcn.0066dd30
test eax, eax
je 0x6693fd
mov rbx, qword [rsp + 0x98]
mov dword [rsp + 0x30], 1
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x669273
call fcn.005c6630
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x669281
call fcn.005c6630
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x66928f
call fcn.005c6630
mov rcx, rbp
call fcn.005c74d0
mov rcx, r15
mov qword [rbx + 0x10], rax
call fcn.005c74d0
mov rcx, qword [rsp + 0x50]
mov qword [rbx + 0x18], rax
call fcn.005c74d0
cmp qword [rbx + 0x10], 0
mov qword [rbx + 0x20], rax
je 0x6692c8
cmp qword [rbx + 0x18], 0
je 0x6692c8
test rax, rax
jne 0x6692d0
xor r15d, r15d
jmp 0x66945d
mov rax, qword [rsp + 0xb0]
test rax, rax
je 0x6692e0
mov dword [rax], r12d
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
je 0x6692f7
mov rax, qword [rsp + 0x80]
mov dword [rdx], eax
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x669458
lea rdx, [rsp + 0x100]
mov r8, rsi
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r13, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
jmp 0x66945d
mov r15d, dword [rsp + 0x30]
mov rcx, r13
call fcn.005e10c0
mov rcx, r13
call fcn.005e0f20
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x66947f
mov rcx, rax
call fcn.0063d610
mov r13, qword [rsp + 0x168]
mov rsi, qword [rsp + 0x180]
mov eax, r15d
mov r15, qword [rsp + 0x158]
mov r14, qword [rsp + 0x160]
mov r12, qword [rsp + 0x170]
mov rdi, qword [rsp + 0x178]
mov rbp, qword [rsp + 0x188]
mov rbx, qword [rsp + 0x190]
mov rcx, qword [rsp + 0x140]
call fcn.00693b90
add rsp, 0x198
ret