Function at 0x46c384
Capabilities:
Encode data using xor

Disassembly:
push rbx
lea r11, [0x007c6680]
xor r8d, r8d
mov dl, 1
lea rbx, [0x00400000]
mov r10d, 0x100
mov r9, r11
movzx eax, dl
mov byte [r9], dl
mov byte [rax + rbx + 0x3c8780], r8b
mov al, dl
and al, 0x80
neg al
mov al, dl
sbb cl, cl
add al, al
inc r8d
and cl, 0x1b
inc r9
xor cl, al
xor dl, cl
cmp r8d, r10d
jb 0x46c3a2
mov byte [0x007c8781], 0
mov dl, 1
lea r8, [0x007c8880]
mov r9d, 0xa
movzx eax, dl
mov dword [r8], eax
mov al, dl
and al, 0x80
neg al
mov al, dl
sbb cl, cl
add al, al
add r8, 4
and cl, 0x1b
mov dl, cl
xor dl, al
dec r9
jne 0x46c3e4
xor r8d, r8d
test r8d, r8d
je 0x46c426
movzx eax, byte [r8 + rbx + 0x3c8780]
lea rcx, [0x007c677f]
sub rcx, rax
mov r9b, byte [rcx]
jmp 0x46c429
xor r9b, r9b
mov al, r9b
mov cl, r9b
rol cl, 2
rol al, 1
xor cl, al
mov dl, cl
rol dl, 2
xor dl, cl
xor dl, r9b
xor dl, 0x63
movzx eax, dl
mov byte [r8 + rbx + 0x3ca9b0], dl
mov byte [rax + rbx + 0x3c88b0], r8b
inc r8d
cmp r8d, r10d
jb 0x46c409
xor edx, edx
movzx r8d, byte [rdx + rbx + 0x3ca9b0]
mov eax, r8d
mov r9d, r8d
mov dword [rbx + rdx*4 + 0x3c89b0], r8d
rol eax, 8
mov dword [rbx + rdx*4 + 0x3c8db0], eax
mov eax, r8d
rol eax, 0x10
mov dword [rbx + rdx*4 + 0x3c91b0], eax
mov eax, r8d
ror eax, 8
test r8b, r8b
mov dword [rbx + rdx*4 + 0x3c95b0], eax
je 0x46c4c5
movzx eax, r8b
mov cl, byte [rax + rbx + 0x3c8780]
add cl, byte [0x007c8782]
cmp cl, byte [0x007c8782]
movzx eax, cl
adc rax, 0
movzx r11d, byte [rax + r11]
jmp 0x46c4c8
xor r11d, r11d
test r8b, r8b
je 0x46c4f8
movzx eax, r8b
mov cl, byte [rax + rbx + 0x3c8780]
add cl, byte [0x007c8783]
cmp cl, byte [0x007c8783]
movzx eax, cl
lea rcx, [0x007c6680]
adc rax, 0
movzx ecx, byte [rax + rcx]
jmp 0x46c4fa
xor ecx, ecx
movzx r8d, byte [rdx + rbx + 0x3c88b0]
shl ecx, 8
or ecx, r9d
mov dword [rbx + rdx*4 + 0x3c6780], r8d
shl ecx, 8
or ecx, r9d
shl ecx, 8
or ecx, r11d
lea r11, [0x007c6680]
mov eax, ecx
mov dword [rbx + rdx*4 + 0x3c7780], ecx
rol eax, 8
mov dword [rbx + rdx*4 + 0x3c7b80], eax
mov eax, ecx
rol eax, 0x10
ror ecx, 8
mov dword [rbx + rdx*4 + 0x3c7f80], eax
mov dword [rbx + rdx*4 + 0x3c8380], ecx
mov eax, r8d
rol eax, 8
mov ecx, r8d
mov dword [rbx + rdx*4 + 0x3c6b80], eax
mov eax, r8d
rol eax, 0x10
ror ecx, 8
test r8b, r8b
mov dword [rbx + rdx*4 + 0x3c7380], ecx
mov dword [rbx + rdx*4 + 0x3c6f80], eax
je 0x46c59e
movzx eax, r8b
mov cl, byte [rax + rbx + 0x3c8780]
add cl, byte [0x007c878e]
cmp cl, byte [0x007c878e]
movzx eax, cl
adc rax, 0
movzx ebx, byte [rax + r11]
jmp 0x46c5a0
xor ebx, ebx
test r8b, r8b
lea r9, [0x00400000]
je 0x46c5d2
movzx eax, r8b
mov cl, byte [rax + r9 + 0x3c8780]
add cl, byte [0x007c8789]
cmp cl, byte [0x007c8789]
movzx eax, cl
adc rax, 0
movzx r11d, byte [rax + r11]
jmp 0x46c5d5
xor r11d, r11d
test r8b, r8b
je 0x46c607
movzx eax, r8b
mov cl, byte [rax + r9 + 0x3c8780]
add cl, byte [0x007c878d]
cmp cl, byte [0x007c878d]
movzx eax, cl
lea rcx, [0x007c6680]
adc rax, 0
movzx r9d, byte [rax + rcx]
jmp 0x46c60a
xor r9d, r9d
test r8b, r8b
je 0x46c641
lea rcx, [0x00400000]
movzx eax, r8b
mov cl, byte [rax + rcx + 0x3c8780]
add cl, byte [0x007c878b]
cmp cl, byte [0x007c878b]
movzx eax, cl
lea rcx, [0x007c6680]
adc rax, 0
movzx ecx, byte [rax + rcx]
jmp 0x46c643
xor ecx, ecx
shl ecx, 8
inc rdx
or ecx, r9d
shl ecx, 8
or ecx, r11d
lea r11, [0x007c6680]
shl ecx, 8
or ecx, ebx
lea rbx, [0x00400000]
mov eax, ecx
mov dword [rbx + rdx*4 + 0x3c99ac], ecx
rol eax, 8
mov dword [rbx + rdx*4 + 0x3c9dac], eax
mov eax, ecx
rol eax, 0x10
ror ecx, 8
dec r10
mov dword [rbx + rdx*4 + 0x3ca5ac], ecx
mov dword [rbx + rdx*4 + 0x3ca1ac], eax
jne 0x46c460
pop rbx
ret