Function at 0x465cc4
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2c8
mov rax, qword [0x007a1a88]
mov qword [rsp + 0x2b0], rax
mov eax, r8d
mov ebx, 0xff
mov r10, rcx
not eax
mov qword [rsp + 0x10], rcx
movsxd rsi, edx
xor r9d, r9d
lea rbp, [0x00400000]
mov dword [rsp + 4], eax
mov rcx, rbx
mov al, byte [r9 + rbp + 0x2905c7]
inc r9
xor al, byte [r9 + rbp + 0x2298bf]
add al, r8b
dec rcx
mov byte [rsp + r9 + 0xaf], al
jne 0x465d0d
mov r9d, r8d
mov r11d, 0x100
shr r9d, 8
mov dl, byte [rcx + rbp + 0x290643]
not dl
xor dl, byte [rcx + rbp + 0x2299c0]
add dl, r9b
cmp rcx, rbx
mov byte [rsp + rcx + 0x1b0], dl
jge 0x465d6e
mov al, byte [rsp + rcx + 0xb0]
not al
xor al, dl
mov byte [rsp + rcx + 0x1b0], al
inc rcx
dec r11
jne 0x465d3d
mov ebx, r8d
lea r9, [0x00690643]
shr ebx, 0x10
xor edx, edx
mov rdi, r9
lea rax, [r11 + rdx]
mov cl, byte [rax + rbp + 0x229ac0]
lea rax, [r11 + rdx]
inc rdx
xor cl, byte [rdi]
add rdi, 7
sub cl, bl
cmp rdx, 0x2d
mov byte [rsp + rax + 0x50], cl
jl 0x465d88
lea rax, [0x0069064d]
add r9, 5
add r11, 0x2d
cmp r9, rax
jl 0x465d83
shr r8d, 0x18
lea rbx, [rsp + 0x50]
lea r9, [0x00690639]
xor r11d, r11d
xor edx, edx
mov rdi, r9
lea rax, [r11 + rdx]
mov cl, byte [rax + rbp + 0x229b20]
mov al, byte [rbx + rdx]
xor cl, byte [rdi]
not al
add rdi, 7
sub cl, r8b
xor cl, al
lea rax, [r11 + rdx]
inc rdx
cmp rdx, 0x1a
mov byte [rsp + rax + 0x18], cl
jl 0x465dd8
lea rax, [0x0069064f]
add r9, 0xb
add r11, 0x1a
add rbx, 0x2d
cmp r9, rax
jl 0x465dd3
mov bpl, byte [rsp + 7]
mov r12b, byte [rsp + 6]
mov r13b, byte [rsp + 5]
mov r14b, byte [rsp + 4]
mov rbx, r10
lea rdi, [r10 + 1]
lea rsi, [rsi + r10 - 2]
mov r10, qword [0x008d1198]
lea r9, [rsp + 0x32]
lea r11, [rsp + 0x18]
xor r15d, r15d
xor dl, dl
cmp byte [rbx], dl
mov byte [rsp + 8], dl
mov byte [rsp], dl
mov byte [rsp + 1], dl
mov byte [rsp + 2], dl
je 0x465f20
mov eax, r15d
cdq
movzx edx, dl
add eax, edx
movzx eax, al
sub eax, edx
movsxd r8, eax
mov al, byte [rbx]
lea ecx, [rax + rax*4]
movzx eax, cl
movzx ecx, byte [rsp + rax + 0x1b0]
movzx eax, byte [r9]
add cx, ax
movzx eax, byte [r8 + r10]
movzx edx, cx
xor edx, eax
lea eax, [rdx + rdx*2]
movsxd rcx, eax
movabs rax, 0x8080808080808081
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov al, byte [rsp + rcx + 0xb0]
not al
mov byte [rsp + 2], al
movzx eax, byte [rbx]
movzx ecx, byte [rsp + rax + 0x1b0]
mov rax, qword [0x008d11a0]
add cx, word [rax + r8*2]
movzx eax, byte [r11]
add cx, ax
imul cx, cx, 0xb
movzx eax, cx
imul eax, eax, 0xb
movsxd rcx, eax
movabs rax, 0x8080808080808081
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov dl, byte [rsp + 8]
mov al, byte [rsp + rcx + 0xb0]
not al
mov byte [rsp + 1], al
cmp byte [rdi], 0
je 0x465fbf
movzx r8d, byte [rdi]
lea eax, [r8 + r8]
movzx ecx, al
movzx eax, byte [r9]
movzx edx, byte [rsp + rcx + 0x1b0]
add dx, ax
imul dx, dx, 0x17
cmp dx, 0xff
jb 0x465f53
add dx, 0xff01
movzx eax, dx
imul r8d, r8d, 0x11
movabs rdi, 0x8080808080808081
add eax, 7
movsxd rcx, eax
mov rax, rdi
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov al, byte [rsp + rcx + 0xb0]
mov byte [rsp], al
movzx eax, r8b
movzx ecx, byte [rsp + rax + 0x1b0]
movzx eax, byte [r11]
add cx, ax
mov rax, rdi
imul cx, cx, 0x11
movzx r8d, cx
mul r8
shr rdx, 7
imul rdx, rdx, 0xff
sub r8, rdx
mov dl, byte [rsp + r8 + 0xb0]
inc r9
lea rcx, [rsp + 0x32]
mov rax, r9
sub rax, rcx
lea rcx, [rsp + 0x32]
cmp rax, 0x1a
cmovl rcx, r9
inc r11
mov r9, rcx
lea rcx, [rsp + 0x18]
mov rax, r11
sub rax, rcx
lea rcx, [rsp + 0x18]
cmp rax, 0x1a
cmovl rcx, r11
xor r12b, byte [rsp + 2]
xor bpl, byte [rsp]
xor r14b, byte [rsp + 1]
add rbx, 2
xor r13b, dl
cmp rbx, rsi
mov r11, rcx
jae 0x466026
lea rdi, [rbx + 1]
cmp rdi, rsi
jae 0x466026
inc r15d
jmp 0x465e50
mov r10, qword [rsp + 0x10]
lea r9, [rsp + 0x50]
lea r11, [rsp + 0x7d]
xor ebx, ebx
movabs r8, 0x8080808080808081
xor dil, dil
xor r15b, r15b
cmp byte [r10], dil
mov byte [rsp], dil
mov byte [rsp + 1], dil
je 0x4660f2
movzx eax, byte [r10]
movzx r8d, byte [rsp + rax + 0x1b0]
movzx eax, byte [r9]
add ax, r8w
imul ax, ax, 7
cmp ax, 0xff
jb 0x46607c
add ax, 0xff01
movzx ecx, ax
movabs rax, 0x8080808080808081
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov al, byte [rsp + rcx + 0xb0]
movzx ecx, byte [r11]
add cx, r8w
mov byte [rsp + 1], al
cmp cx, 0xff
jb 0x4660b9
add cx, 0xff01
movzx eax, cx
movabs r8, 0x8080808080808081
shl ax, 2
add cx, ax
movzx eax, cx
add eax, 0x11
movsxd rcx, eax
mov rax, r8
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov r15b, byte [rsp + rcx + 0xb0]
mov al, byte [r10 + 1]
test al, al
je 0x4661ac
movzx eax, al
movzx edi, byte [rsp + rax + 0x1b0]
movzx eax, byte [r9]
add ax, di
cmp ax, 0xff
jb 0x46611a
add ax, 0xff01
movzx ecx, ax
mov rax, r8
movzx r8d, byte [r11]
add r8w, di
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov al, byte [rsp + rcx + 0xb0]
mov ecx, 0xff
cmp r8w, cx
mov byte [rsp], al
jb 0x466154
add r8w, 0xff01
mov eax, ebx
cdq
and edx, ecx
add eax, edx
and eax, ecx
sub eax, edx
mov rdx, qword [0x008d11a0]
movsxd rcx, eax
mov rax, qword [0x008d1198]
movzx edx, word [rdx + rcx*2]
movzx eax, byte [rcx + rax]
add dx, ax
add dx, r8w
movabs r8, 0x8080808080808081
mov rax, r8
imul dx, dx, 0x13
movzx ecx, dx
mul rcx
shr rdx, 7
imul rdx, rdx, 0xff
sub rcx, rdx
mov dil, byte [rsp + rcx + 0xb0]
inc r9
lea rcx, [rsp + 0x50]
mov rax, r9
sub rax, rcx
lea rcx, [rsp + 0x50]
cmp rax, 0x2d
cmovl rcx, r9
inc r11
mov r9, rcx
lea rcx, [rsp + 0x7d]
mov rax, r11
sub rax, rcx
lea rcx, [rsp + 0x7d]
cmp rax, 0x2d
cmovl rcx, r11
xor r12b, byte [rsp + 1]
xor bpl, byte [rsp]
add r10, 2
xor r14b, r15b
xor r13b, dil
cmp r10, rsi
mov r11, rcx
jae 0x466210
lea rax, [r10 + 1]
cmp rax, rsi
jae 0x466210
inc ebx
jmp 0x466041
mov byte [rsp + 7], bpl
mov byte [rsp + 6], r12b
mov byte [rsp + 5], r13b
mov byte [rsp + 4], r14b
mov eax, dword [rsp + 4]
mov rcx, qword [rsp + 0x2b0]
call fcn.00577820
add rsp, 0x2c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret