Function at 0x14000f424
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x78
cmp qword [rsp + 0x80], 0
je 0x14000f44b
mov rax, qword [rsp + 0x80]
cmp dword [rax + 8], 0
jne 0x14000f45d
mov ecx, 0x7f
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x14000fcb4
mov rax, qword [rsp + 0x88]
shr rax, 0x10
and rax, 0xffff
movzx eax, ax
test eax, eax
jne 0x14000f50b
mov rax, qword [rsp + 0x88]
and rax, 0xffff
movzx ecx, ax
mov rax, qword [rsp + 0x80]
cmp ecx, dword [rax + 0xc]
jae 0x14000f4aa
mov ecx, 0x7f
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x14000fcb4
mov rax, qword [rsp + 0x88]
and rax, 0xffff
movzx eax, ax
mov rcx, qword [rsp + 0x80]
sub eax, dword [rcx + 0xc]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 8]
cmp dword [rsp + 0x20], eax
jbe 0x14000f4ed
mov ecx, 0x7f
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x14000fcb4
mov ecx, dword [rsp + 0x20]
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x10]
mov rax, qword [rax + rcx*8]
jmp 0x14000fcb4
mov rcx, qword [rsp + 0x88]
call fcn.140001ae0
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], 0
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x18], 0
je 0x14000fc80
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x34], 0xfeedbeef
mov dword [rsp + 0x4c], 0x9e3779b9
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x38], eax
cmp dword [rsp + 0x38], 0xc
jb 0x14000f7dd
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax]
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 1]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 2]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 3]
shl eax, 0x18
add eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 4]
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 5]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 6]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 7]
shl eax, 0x18
add eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 8]
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 9]
shl eax, 8
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 0xa]
shl eax, 0x10
add ecx, eax
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 0xb]
shl eax, 0x18
add eax, dword [rsp + 0x34]
add eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
shr ecx, 0xd
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 8
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 0xd
mov eax, dword [rsp + 0x34]
xor eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
shr ecx, 0xc
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 0x10
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 5
mov eax, dword [rsp + 0x34]
xor eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
shr ecx, 3
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 0xa
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 0xf
mov eax, dword [rsp + 0x34]
xor eax, ecx
mov dword [rsp + 0x34], eax
xor eax, eax
test eax, eax
jne 0x14000f620
mov rax, qword [rsp + 0x40]
add rax, 0xc
mov qword [rsp + 0x40], rax
mov eax, dword [rsp + 0x38]
sub eax, 0xc
mov dword [rsp + 0x38], eax
jmp 0x14000f565
mov ecx, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
add eax, ecx
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x68], eax
cmp dword [rsp + 0x68], 6
ja 0x14000f841
cmp dword [rsp + 0x68], 6
je 0x14000f8d7
cmp dword [rsp + 0x68], 1
je 0x14000f942
cmp dword [rsp + 0x68], 2
je 0x14000f92c
cmp dword [rsp + 0x68], 3
je 0x14000f916
cmp dword [rsp + 0x68], 4
je 0x14000f900
cmp dword [rsp + 0x68], 5
je 0x14000f8ed
jmp 0x14000f954
cmp dword [rsp + 0x68], 7
je 0x14000f8c1
cmp dword [rsp + 0x68], 8
je 0x14000f8ab
cmp dword [rsp + 0x68], 9
je 0x14000f895
cmp dword [rsp + 0x68], 0xa
je 0x14000f87f
cmp dword [rsp + 0x68], 0xb
je 0x14000f869
jmp 0x14000f954
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 0xa]
shl ecx, 0x18
mov eax, dword [rsp + 0x34]
add eax, ecx
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 9]
shl ecx, 0x10
mov eax, dword [rsp + 0x34]
add eax, ecx
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 8]
shl ecx, 8
mov eax, dword [rsp + 0x34]
add eax, ecx
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 7]
shl ecx, 0x18
mov eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 6]
shl ecx, 0x10
mov eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 5]
shl ecx, 8
mov eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 4]
mov eax, dword [rsp + 0x4c]
add eax, ecx
mov dword [rsp + 0x4c], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 3]
shl ecx, 0x18
mov eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 2]
shl ecx, 0x10
mov eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 1]
shl ecx, 8
mov eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax]
mov eax, dword [rsp + 0x48]
add eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
shr ecx, 0xd
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 8
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 0xd
mov eax, dword [rsp + 0x34]
xor eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
shr ecx, 0xc
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 0x10
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 5
mov eax, dword [rsp + 0x34]
xor eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x48]
sub eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
shr ecx, 3
mov eax, dword [rsp + 0x48]
xor eax, ecx
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x34]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
sub eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
shl ecx, 0xa
mov eax, dword [rsp + 0x4c]
xor eax, ecx
mov dword [rsp + 0x4c], eax
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x34]
sub eax, ecx
mov dword [rsp + 0x34], eax
mov ecx, dword [rsp + 0x4c]
shr ecx, 0xf
mov eax, dword [rsp + 0x34]
xor eax, ecx
mov dword [rsp + 0x34], eax
xor eax, eax
test eax, eax
jne 0x14000f954
xor eax, eax
test eax, eax
jne 0x14000f538
xor eax, eax
test eax, eax
jne 0x14000f538
mov qword [rsp + 0x28], 0
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x18], 0
je 0x14000fc76
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov ecx, dword [rax + 8]
sub ecx, 1
mov eax, dword [rsp + 0x34]
and eax, ecx
mov dword [rsp + 0x50], eax
xor eax, eax
test eax, eax
jne 0x14000fb23
xor eax, eax
cmp eax, 1
je 0x14000fc76
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov ecx, dword [rsp + 0x50]
imul rcx, rcx, 0x10
mov rax, qword [rax]
cmp qword [rcx + rax], 0
je 0x14000fbc6
lea rax, [rsp + 0x28]
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x80]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov edx, dword [rsp + 0x50]
imul rdx, rdx, 0x10
mov rcx, qword [rcx]
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov rax, qword [rax + 0x20]
mov rcx, qword [rcx + rdx]
sub rcx, rax
mov rax, qword [rsp + 0x58]
mov qword [rax], rcx
xor eax, eax
test eax, eax
jne 0x14000fb76
jmp 0x14000fbcf
mov qword [rsp + 0x28], 0
cmp qword [rsp + 0x28], 0
je 0x14000fc6c
mov rcx, qword [rsp + 0x28]
mov eax, dword [rsp + 0x34]
cmp dword [rcx + 0x44], eax
jne 0x14000fc18
mov rcx, qword [rsp + 0x28]
mov eax, dword [rsp + 0x30]
cmp dword [rcx + 0x40], eax
jne 0x14000fc18
mov r8d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x38]
call fcn.140001d90
test eax, eax
jne 0x14000fc18
jmp 0x14000fc6c
mov rax, qword [rsp + 0x28]
cmp qword [rax + 0x30], 0
je 0x14000fc5e
lea rax, [rsp + 0x28]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x80]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov rcx, qword [rsp + 0x28]
mov rax, qword [rax + 0x20]
mov rcx, qword [rcx + 0x30]
sub rcx, rax
mov rax, qword [rsp + 0x60]
mov qword [rax], rcx
xor eax, eax
test eax, eax
jne 0x14000fc24
jmp 0x14000fc67
mov qword [rsp + 0x28], 0
jmp 0x14000fbcf
xor eax, eax
test eax, eax
jne 0x14000fb54
xor eax, eax
test eax, eax
jne 0x14000fb07
xor eax, eax
test eax, eax
jne 0x14000f51c
xor eax, eax
test eax, eax
jne 0x14000f50b
cmp qword [rsp + 0x28], 0
jne 0x14000fcab
mov ecx, 0x7f
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x14000fcb4
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
add rsp, 0x78
ret