Function at 0x14004b670
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x28
mov rdi, rdx
lea r13, [rcx + 0x20]
lea r14, [rcx + 8]
mov qword [rsp + 0x80], r14
mov edx, 0x400
mov rcx, r14
call fcn.140029be0
mov qword [rsp + 0x88], r13
mov edx, 0x28
mov rcx, r13
call fcn.140029be0
mov edx, 1
mov ecx, 0x10
call fcn.14000ddc0
mov rcx, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov rdx, qword [rdi + 8]
mov qword [rsp + 0x70], rdx
xor ebp, ebp
mov r12d, ebp
test rdx, rdx
je 0x14004c9b5
mov r13, qword [rdi]
mov r15d, 2
lea r14, [0x140000000]
nop dword [rax]
movzx eax, byte [r12 + r13]
test al, al
je 0x14004b835
movzx edx, byte [rax + r14 + 0xc67ff]
lea rax, [r15 - 1]
and eax, 0x1f
movzx r10d, byte [rax + r14 + 0xc6600]
mov rax, r15
and eax, 0x1f
movzx r11d, byte [rax + r14 + 0xc6600]
lea rax, [r15 + 1]
and eax, 0x1f
movzx edi, byte [rax + r14 + 0xc6600]
mov rax, r12
shr rax, 3
lea rsi, [rcx + rax*4]
movzx r9d, byte [rsi]
mov ebx, edx
lea rax, [r15 - 2]
and eax, 0x1f
movzx eax, byte [rax + r14 + 0xc6600]
movzx r8d, byte [rax + r14 + 0xc67ff]
add r8d, edx
mov eax, 0x80808081
mul r8d
shr edx, 7
imul eax, edx, 0xff
sub r8d, eax
movsxd rax, r8d
xor r9b, byte [rax + r14 + 0xc6700]
mov byte [rsi], r9b
movzx r9d, byte [rsi + 1]
movzx r8d, byte [r10 + r14 + 0xc67ff]
add r8d, ebx
mov eax, 0x80808081
mul r8d
shr edx, 7
imul eax, edx, 0xff
sub r8d, eax
movsxd rax, r8d
xor r9b, byte [rax + r14 + 0xc6700]
mov byte [rsi + 1], r9b
movzx r9d, byte [rsi + 2]
movzx r8d, byte [r11 + r14 + 0xc67ff]
add r8d, ebx
mov eax, 0x80808081
mul r8d
shr edx, 7
imul eax, edx, 0xff
sub r8d, eax
movsxd rax, r8d
xor r9b, byte [rax + r14 + 0xc6700]
mov byte [rsi + 2], r9b
movzx r9d, byte [rsi + 3]
movzx r8d, byte [rdi + r14 + 0xc67ff]
add r8d, ebx
mov eax, 0x80808081
mul r8d
shr edx, 7
imul eax, edx, 0xff
sub r8d, eax
movsxd rax, r8d
xor r9b, byte [rax + r14 + 0xc6700]
mov byte [rsi + 3], r9b
mov rdx, qword [rsp + 0x70]
inc r12
add r15, 4
cmp r12, rdx
jne 0x14004b700
cmp rdx, 0x10
mov r14, qword [rsp + 0x80]
mov r13, qword [rsp + 0x88]
jne 0x14004be9e
mov r8, rbp
mov r9d, 0x800
lea r15, [0x140000000]
nop
movzx edx, byte [rcx]
movzx eax, byte [r8 + r15 + 0xc6400]
xor rdx, rax
movzx edx, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rcx + 4]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc5400]
mov rax, qword [r14]
mov dword [r9 + rax - 0x800], edx
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rcx + 1]
xor rdx, rax
movzx edx, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rcx + 5]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc5800]
mov rax, qword [r14]
mov dword [rax + r9 - 0x400], edx
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rcx + 2]
xor rdx, rax
movzx edx, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rcx + 6]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc5c00]
mov rax, qword [r14]
mov dword [r9 + rax], edx
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rcx + 3]
xor rdx, rax
movzx edx, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rcx + 7]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc6000]
mov rax, qword [r14]
mov dword [r9 + rax + 0x400], edx
lea r8, [r8 + 1]
add r9, 4
cmp r9, 0xc00
jne 0x14004b870
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rdi]
mov r14d, 0xc
nop word [rax + rax]
movzx r10d, byte [r15 + rbp + 0xc6501]
movzx r9d, byte [r15 + rbp + 0xc6401]
mov edx, r9d
movzx eax, byte [rsi + 0xe]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 6]
xor r8, rax
movzx eax, byte [rsi + 0xc]
xor r9, rax
movzx edx, byte [r9 + r15 + 0xc6400]
movzx eax, byte [rsi + 4]
xor rdx, rax
mov r9d, dword [r15 + r8*4 + 0xc5c00]
xor r9d, dword [r15 + rdx*4 + 0xc5400]
mov edx, r10d
movzx eax, byte [rsi + 0xf]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 7]
xor r8, rax
xor r9d, dword [r15 + r8*4 + 0xc6000]
movzx eax, byte [rsi + 0xd]
xor r10, rax
movzx edx, byte [r10 + r15 + 0xc6400]
movzx eax, byte [rsi + 5]
xor rdx, rax
xor r9d, dword [r15 + rdx*4 + 0xc5800]
mov edi, r9d
shr edi, 0x18
shl r9d, 8
or edi, r9d
movzx r10d, byte [r15 + rbp + 0xc6500]
movzx ebx, byte [r15 + rbp + 0xc6400]
mov edx, ebx
movzx eax, byte [rsi + 0xa]
xor rdx, rax
movzx r9d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 2]
xor r9, rax
mov edx, r10d
movzx eax, byte [rsi + 0xb]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 3]
xor r8, rax
mov r11d, dword [r15 + r9*4 + 0xc5c00]
xor r11d, dword [r15 + r8*4 + 0xc6000]
movzx eax, byte [rsi + 9]
xor r10, rax
movzx edx, byte [r10 + r15 + 0xc6400]
movzx eax, byte [rsi + 1]
xor rdx, rax
xor r11d, dword [r15 + rdx*4 + 0xc5800]
movzx eax, byte [rsi + 8]
xor rbx, rax
movzx edx, byte [rbx + r15 + 0xc6400]
movzx eax, byte [rsi]
xor rdx, rax
xor r11d, dword [r15 + rdx*4 + 0xc5400]
add r11d, edi
mov rax, qword [r13]
mov dword [r14 + rax - 0xc], r11d
lea edx, [rdi + r11]
ror edx, 0x17
mov rax, qword [r13]
mov dword [r14 + rax - 8], edx
movzx r10d, byte [r15 + rbp + 0xc6503]
movzx r9d, byte [r15 + rbp + 0xc6403]
mov edx, r9d
movzx eax, byte [rsi + 0xe]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 6]
xor r8, rax
movzx eax, byte [rsi + 0xc]
xor r9, rax
movzx edx, byte [r9 + r15 + 0xc6400]
movzx eax, byte [rsi + 4]
xor rdx, rax
mov r9d, dword [r15 + r8*4 + 0xc5c00]
xor r9d, dword [r15 + rdx*4 + 0xc5400]
mov edx, r10d
movzx eax, byte [rsi + 0xf]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 7]
xor r8, rax
xor r9d, dword [r15 + r8*4 + 0xc6000]
movzx eax, byte [rsi + 0xd]
xor r10, rax
movzx edx, byte [r10 + r15 + 0xc6400]
movzx eax, byte [rsi + 5]
xor rdx, rax
xor r9d, dword [r15 + rdx*4 + 0xc5800]
mov edi, r9d
shr edi, 0x18
shl r9d, 8
or edi, r9d
movzx r11d, byte [r15 + rbp + 0xc6502]
movzx ebx, byte [r15 + rbp + 0xc6402]
mov edx, ebx
movzx eax, byte [rsi + 0xa]
xor rdx, rax
movzx r9d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 2]
xor r9, rax
mov edx, r11d
movzx eax, byte [rsi + 0xb]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 3]
xor r8, rax
mov r10d, dword [r15 + r9*4 + 0xc5c00]
xor r10d, dword [r15 + r8*4 + 0xc6000]
movzx eax, byte [rsi + 9]
xor r11, rax
movzx edx, byte [r11 + r15 + 0xc6400]
movzx eax, byte [rsi + 1]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5800]
movzx eax, byte [rsi + 8]
xor rbx, rax
movzx edx, byte [rbx + r15 + 0xc6400]
movzx eax, byte [rsi]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5400]
add r10d, edi
mov rax, qword [r13]
mov dword [r14 + rax - 4], r10d
lea edx, [rdi + r10]
ror edx, 0x17
mov rax, qword [r13]
mov dword [r14 + rax], edx
movzx r11d, byte [r15 + rbp + 0xc6505]
movzx r9d, byte [r15 + rbp + 0xc6405]
movzx eax, byte [rsi + 0xe]
xor rax, r9
movzx r8d, byte [rax + r15 + 0xc6500]
movzx eax, byte [rsi + 6]
xor r8, rax
movzx eax, byte [rsi + 0xd]
xor rax, r11
movzx edx, byte [rax + r15 + 0xc6400]
movzx eax, byte [rsi + 5]
xor rdx, rax
mov r10d, dword [r15 + r8*4 + 0xc5c00]
xor r10d, dword [r15 + rdx*4 + 0xc5800]
movzx eax, byte [rsi + 0xc]
xor r9, rax
movzx edx, byte [r9 + r15 + 0xc6400]
movzx eax, byte [rsi + 4]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5400]
movzx eax, byte [rsi + 0xf]
xor rax, r11
movzx edx, byte [rax + r15 + 0xc6500]
movzx eax, byte [rsi + 7]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc6000]
mov ebx, r10d
shr ebx, 0x18
shl r10d, 8
or ebx, r10d
movzx r11d, byte [r15 + rbp + 0xc6504]
movzx r9d, byte [r15 + rbp + 0xc6404]
movzx eax, byte [rsi + 0xa]
xor rax, r9
movzx r8d, byte [rax + r15 + 0xc6500]
movzx eax, byte [rsi + 2]
xor r8, rax
movzx eax, byte [rsi + 9]
xor rax, r11
movzx edx, byte [rax + r15 + 0xc6400]
movzx eax, byte [rsi + 1]
xor rdx, rax
mov r10d, dword [r15 + r8*4 + 0xc5c00]
xor r10d, dword [r15 + rdx*4 + 0xc5800]
movzx eax, byte [rsi + 8]
xor r9, rax
movzx edx, byte [r9 + r15 + 0xc6400]
movzx eax, byte [rsi]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5400]
movzx eax, byte [rsi + 0xb]
xor r11, rax
movzx edx, byte [r11 + r15 + 0xc6500]
movzx eax, byte [rsi + 3]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc6000]
add r10d, ebx
mov rax, qword [r13]
mov dword [r14 + rax + 4], r10d
lea edx, [rbx + r10]
ror edx, 0x17
mov rax, qword [r13]
mov dword [r14 + rax + 8], edx
movzx r11d, byte [r15 + rbp + 0xc6507]
movzx r9d, byte [r15 + rbp + 0xc6407]
movzx eax, byte [rsi + 0xe]
xor rax, r9
movzx r8d, byte [rax + r15 + 0xc6500]
movzx eax, byte [rsi + 6]
xor r8, rax
movzx eax, byte [rsi + 0xd]
xor rax, r11
movzx edx, byte [rax + r15 + 0xc6400]
movzx eax, byte [rsi + 5]
xor rdx, rax
mov r10d, dword [r15 + r8*4 + 0xc5c00]
xor r10d, dword [r15 + rdx*4 + 0xc5800]
movzx eax, byte [rsi + 0xc]
xor r9, rax
movzx edx, byte [r9 + r15 + 0xc6400]
movzx eax, byte [rsi + 4]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5400]
movzx eax, byte [rsi + 0xf]
xor r11, rax
movzx edx, byte [r11 + r15 + 0xc6500]
movzx eax, byte [rsi + 7]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc6000]
mov ebx, r10d
shr ebx, 0x18
shl r10d, 8
or ebx, r10d
movzx r11d, byte [r15 + rbp + 0xc6506]
movzx r9d, byte [r15 + rbp + 0xc6406]
movzx eax, byte [rsi + 0xa]
xor rax, r9
movzx r8d, byte [rax + r15 + 0xc6500]
movzx eax, byte [rsi + 2]
xor r8, rax
movzx eax, byte [rsi + 9]
xor rax, r11
movzx edx, byte [rax + r15 + 0xc6400]
movzx eax, byte [rsi + 1]
xor rdx, rax
mov r10d, dword [r15 + r8*4 + 0xc5c00]
xor r10d, dword [r15 + rdx*4 + 0xc5800]
movzx eax, byte [rsi + 8]
xor r9, rax
movzx edx, byte [r9 + r15 + 0xc6400]
movzx eax, byte [rsi]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5400]
movzx eax, byte [rsi + 0xb]
xor r11, rax
movzx edx, byte [r11 + r15 + 0xc6500]
movzx eax, byte [rsi + 3]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc6000]
add r10d, ebx
add ebx, r10d
mov rax, qword [r13]
mov dword [r14 + rax + 0xc], r10d
ror ebx, 0x17
mov rax, qword [r13]
mov dword [r14 + rax + 0x10], ebx
lea rbp, [rbp + 8]
add r14, 0x20
cmp r14, 0xac
jb 0x14004b960
jmp 0x14004c9b5
cmp rdx, 0x18
jne 0x14004c38c
mov r10, rbp
mov r9d, 0x800
lea r15, [0x140000000]
nop dword [rax + rax]
movzx edx, byte [rcx]
movzx eax, byte [r10 + r15 + 0xc6500]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rcx + 4]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rcx + 8]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc5400]
mov rax, qword [r14]
mov dword [r9 + rax - 0x800], edx
movzx edx, byte [r10 + r15 + 0xc6500]
movzx eax, byte [rcx + 1]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rcx + 5]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rcx + 9]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc5800]
mov rax, qword [r14]
mov dword [r9 + rax - 0x400], edx
movzx edx, byte [rcx + 2]
movzx eax, byte [r10 + r15 + 0xc6400]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rcx + 6]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rcx + 0xa]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc5c00]
mov rax, qword [r14]
mov dword [r9 + rax], edx
movzx edx, byte [r10 + r15 + 0xc6400]
movzx eax, byte [rcx + 3]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rcx + 7]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rcx + 0xb]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc6000]
mov rax, qword [r14]
mov dword [r9 + rax + 0x400], edx
lea r10, [r10 + 1]
add r9, 4
cmp r9, 0xc00
jne 0x14004bec0
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rdi]
movzx ebx, byte [r15 + rbp + 0xc6401]
movzx r10d, byte [r15 + rbp + 0xc6501]
movzx eax, byte [rsi + 0x16]
xor rax, rbx
movzx edx, byte [rax + r15 + 0xc6400]
movzx eax, byte [rsi + 0xe]
xor rdx, rax
movzx r9d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 6]
xor r9, rax
mov edx, r10d
movzx eax, byte [rsi + 0x15]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 0xd]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rsi + 5]
xor rdx, rax
mov r11d, dword [r15 + r9*4 + 0xc5c00]
xor r11d, dword [r15 + rdx*4 + 0xc5800]
movzx eax, byte [rsi + 0x14]
xor r10, rax
movzx edx, byte [r10 + r15 + 0xc6400]
movzx eax, byte [rsi + 0xc]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rsi + 4]
xor r8, rax
xor r11d, dword [r15 + r8*4 + 0xc5400]
movzx eax, byte [rsi + 0x17]
xor rax, rbx
movzx edx, byte [rax + r15 + 0xc6500]
movzx eax, byte [rsi + 0xf]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 7]
xor r8, rax
xor r11d, dword [r15 + r8*4 + 0xc6000]
mov edi, r11d
shr edi, 0x18
shl r11d, 8
or edi, r11d
movzx ebx, byte [r15 + rbp + 0xc6400]
movzx r10d, byte [r15 + rbp + 0xc6500]
mov edx, r10d
movzx eax, byte [rsi + 0x10]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rsi + 8]
xor r8, rax
movzx r9d, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rsi]
xor r9, rax
movzx eax, byte [rsi + 0x12]
xor rax, rbx
movzx edx, byte [rax + r15 + 0xc6400]
movzx eax, byte [rsi + 0xa]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 2]
xor r8, rax
mov r11d, dword [r15 + r9*4 + 0xc5400]
xor r11d, dword [r15 + r8*4 + 0xc5c00]
movzx eax, byte [rsi + 0x11]
xor r10, rax
movzx edx, byte [r10 + r15 + 0xc6500]
movzx eax, byte [rsi + 9]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rsi + 1]
xor r8, rax
xor r11d, dword [r15 + r8*4 + 0xc5800]
movzx eax, byte [rsi + 0x13]
xor rbx, rax
movzx edx, byte [rbx + r15 + 0xc6500]
movzx eax, byte [rsi + 0xb]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 3]
xor r8, rax
xor r11d, dword [r15 + r8*4 + 0xc6000]
add r11d, edi
mov rax, qword [r13]
mov dword [rax + rbp*4], r11d
lea edx, [rdi + r11]
ror edx, 0x17
mov rax, qword [r13]
mov dword [rax + rbp*4 + 4], edx
movzx r11d, byte [r15 + rbp + 0xc6403]
movzx r10d, byte [r15 + rbp + 0xc6503]
mov edx, r10d
movzx eax, byte [rsi + 0x15]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 0xd]
xor r8, rax
movzx r9d, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rsi + 5]
xor r9, rax
movzx eax, byte [rsi + 0x14]
xor r10, rax
movzx edx, byte [r10 + r15 + 0xc6400]
movzx eax, byte [rsi + 0xc]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rsi + 4]
xor r8, rax
mov r10d, dword [r15 + r9*4 + 0xc5800]
xor r10d, dword [r15 + r8*4 + 0xc5400]
mov edx, r11d
movzx eax, byte [rsi + 0x17]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 0xf]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rsi + 7]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc6000]
movzx eax, byte [rsi + 0x16]
xor rax, r11
movzx edx, byte [rax + r15 + 0xc6400]
movzx eax, byte [rsi + 0xe]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 6]
xor r8, rax
xor r10d, dword [r15 + r8*4 + 0xc5c00]
mov edi, r10d
shr edi, 0x18
shl r10d, 8
or edi, r10d
movzx r11d, byte [r15 + rbp + 0xc6402]
movzx ebx, byte [r15 + rbp + 0xc6502]
mov edx, ebx
movzx eax, byte [rsi + 0x11]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 9]
xor r8, rax
movzx r9d, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rsi + 1]
xor r9, rax
mov edx, r11d
movzx eax, byte [rsi + 0x13]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 0xb]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rsi + 3]
xor rdx, rax
mov r10d, dword [r15 + r9*4 + 0xc5800]
xor r10d, dword [r15 + rdx*4 + 0xc6000]
movzx eax, byte [rsi + 0x12]
xor r11, rax
movzx edx, byte [r11 + r15 + 0xc6400]
movzx eax, byte [rsi + 0xa]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rsi + 2]
xor r8, rax
xor r10d, dword [r15 + r8*4 + 0xc5c00]
movzx eax, byte [rsi + 0x10]
xor rbx, rax
movzx edx, byte [rbx + r15 + 0xc6400]
movzx eax, byte [rsi + 8]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rsi]
xor r8, rax
xor r10d, dword [r15 + r8*4 + 0xc5400]
add r10d, edi
add edi, r10d
mov rax, qword [r13]
mov dword [rax + rbp*4 + 8], r10d
ror edi, 0x17
mov rax, qword [r13]
mov dword [rax + rbp*4 + 0xc], edi
add rbp, 4
cmp rbp, 0x28
jb 0x14004bfe4
jmp 0x14004c9b5
cmp rdx, 0x20
jne 0x14004c9b5
mov r10, rbp
mov r9d, 0x800
lea r15, [0x140000000]
nop word [rax + rax]
movzx edx, byte [rcx]
movzx eax, byte [r10 + r15 + 0xc6500]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rcx + 4]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rcx + 8]
xor rdx, rax
movzx edx, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rcx + 0xc]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc5400]
mov rax, qword [r14]
mov dword [r9 + rax - 0x800], edx
movzx edx, byte [rcx + 1]
movzx eax, byte [r10 + r15 + 0xc6400]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rcx + 5]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rcx + 9]
xor rdx, rax
movzx edx, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rcx + 0xd]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc5800]
mov rax, qword [r14]
mov dword [r9 + rax - 0x400], edx
movzx edx, byte [r10 + r15 + 0xc6400]
movzx eax, byte [rcx + 2]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rcx + 6]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rcx + 0xa]
xor rdx, rax
movzx edx, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rcx + 0xe]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc5c00]
mov rax, qword [r14]
mov dword [r9 + rax], edx
movzx edx, byte [r10 + r15 + 0xc6500]
movzx eax, byte [rcx + 3]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rcx + 7]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rcx + 0xb]
xor rdx, rax
movzx edx, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rcx + 0xf]
xor rdx, rax
mov edx, dword [r15 + rdx*4 + 0xc6000]
mov rax, qword [r14]
mov dword [r9 + rax + 0x400], edx
lea r10, [r10 + 1]
add r9, 4
cmp r9, 0xc00
jne 0x14004c3b0
mov rdi, qword [rsp + 0x78]
mov rdi, qword [rdi]
movzx r11d, byte [r15 + rbp + 0xc6501]
movzx r9d, byte [r15 + rbp + 0xc6401]
movzx eax, byte [rdi + 0x1e]
xor rax, r9
movzx edx, byte [rax + r15 + 0xc6400]
movzx eax, byte [rdi + 0x16]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi + 0xe]
xor r8, rax
movzx r10d, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rdi + 6]
xor r10, rax
movzx eax, byte [rdi + 0x1d]
xor rax, r9
movzx edx, byte [rax + r15 + 0xc6500]
movzx eax, byte [rdi + 0x15]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rdi + 0xd]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rdi + 5]
xor rdx, rax
mov r9d, dword [r15 + r10*4 + 0xc5c00]
xor r9d, dword [r15 + rdx*4 + 0xc5800]
mov edx, r11d
movzx eax, byte [rdi + 0x1f]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi + 0x17]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rdi + 0xf]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rdi + 7]
xor r8, rax
xor r9d, dword [r15 + r8*4 + 0xc6000]
movzx eax, byte [rdi + 0x1c]
xor r11, rax
movzx edx, byte [r11 + r15 + 0xc6500]
movzx eax, byte [rdi + 0x14]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi + 0xc]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rdi + 4]
xor rdx, rax
xor r9d, dword [r15 + rdx*4 + 0xc5400]
mov ebx, r9d
shr ebx, 0x18
shl r9d, 8
or ebx, r9d
movzx r10d, byte [r15 + rbp + 0xc6500]
movzx r11d, byte [r15 + rbp + 0xc6400]
mov edx, r10d
movzx eax, byte [rdi + 0x18]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rdi + 0x10]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rdi + 8]
xor rdx, rax
movzx r9d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi]
xor r9, rax
movzx eax, byte [rdi + 0x1b]
xor r10, rax
movzx edx, byte [r10 + r15 + 0xc6400]
movzx eax, byte [rdi + 0x13]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rdi + 0xb]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rdi + 3]
xor rdx, rax
mov r10d, dword [r15 + r9*4 + 0xc5400]
xor r10d, dword [r15 + rdx*4 + 0xc6000]
movzx eax, byte [rdi + 0x1a]
xor rax, r11
movzx edx, byte [rax + r15 + 0xc6400]
movzx eax, byte [rdi + 0x12]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi + 0xa]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rdi + 2]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5c00]
movzx eax, byte [rdi + 0x19]
xor rax, r11
movzx edx, byte [rax + r15 + 0xc6500]
movzx eax, byte [rdi + 0x11]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rdi + 9]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rdi + 1]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5800]
add r10d, ebx
mov rax, qword [r13]
mov dword [rax + rbp*4], r10d
lea edx, [rbx + r10]
ror edx, 0x17
mov rax, qword [r13]
mov dword [rax + rbp*4 + 4], edx
movzx r10d, byte [r15 + rbp + 0xc6503]
movzx r11d, byte [r15 + rbp + 0xc6403]
mov edx, r10d
movzx eax, byte [rdi + 0x1f]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi + 0x17]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rdi + 0xf]
xor rdx, rax
movzx r9d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rdi + 7]
xor r9, rax
movzx eax, byte [rdi + 0x1c]
xor r10, rax
movzx edx, byte [r10 + r15 + 0xc6500]
movzx eax, byte [rdi + 0x14]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi + 0xc]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rdi + 4]
xor rdx, rax
mov r10d, dword [r15 + r9*4 + 0xc6000]
xor r10d, dword [r15 + rdx*4 + 0xc5400]
movzx eax, byte [rdi + 0x1e]
xor rax, r11
movzx edx, byte [rax + r15 + 0xc6400]
movzx eax, byte [rdi + 0x16]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi + 0xe]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rdi + 6]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5c00]
movzx eax, byte [rdi + 0x1d]
xor rax, r11
movzx edx, byte [rax + r15 + 0xc6500]
movzx eax, byte [rdi + 0x15]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rdi + 0xd]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rdi + 5]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5800]
mov ebx, r10d
shr ebx, 0x18
shl r10d, 8
or ebx, r10d
movzx r11d, byte [r15 + rbp + 0xc6502]
movzx r10d, byte [r15 + rbp + 0xc6402]
mov edx, r10d
movzx eax, byte [rdi + 0x1a]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi + 0x12]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rdi + 0xa]
xor rdx, rax
movzx r9d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rdi + 2]
xor r9, rax
movzx eax, byte [rdi + 0x19]
xor r10, rax
movzx edx, byte [r10 + r15 + 0xc6500]
movzx eax, byte [rdi + 0x11]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rdi + 9]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rdi + 1]
xor rdx, rax
mov r10d, dword [r15 + r9*4 + 0xc5c00]
xor r10d, dword [r15 + rdx*4 + 0xc5800]
mov edx, r11d
movzx eax, byte [rdi + 0x1b]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi + 0x13]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6500]
movzx eax, byte [rdi + 0xb]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6500]
movzx eax, byte [rdi + 3]
xor r8, rax
xor r10d, dword [r15 + r8*4 + 0xc6000]
movzx eax, byte [rdi + 0x18]
xor r11, rax
movzx edx, byte [r11 + r15 + 0xc6500]
movzx eax, byte [rdi + 0x10]
xor rdx, rax
movzx r8d, byte [rdx + r15 + 0xc6400]
movzx eax, byte [rdi + 8]
xor r8, rax
movzx edx, byte [r8 + r15 + 0xc6400]
movzx eax, byte [rdi]
xor rdx, rax
xor r10d, dword [r15 + rdx*4 + 0xc5400]
add r10d, ebx
add ebx, r10d
mov rax, qword [r13]
mov dword [rax + rbp*4 + 8], r10d
ror ebx, 0x17
mov rax, qword [r13]
mov dword [rax + rbp*4 + 0xc], ebx
add rbp, 4
cmp rbp, 0x28
jb 0x14004c514
test rcx, rcx
je 0x14004c9cb
mov edx, 0x10
mov r8d, 1
call fcn.14000de60
nop
add rsp, 0x28
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret