Function at 0x14001c4d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x848
mov rax, qword [0x140051088]
xor rax, rsp
mov qword [rsp + 0x840], rax
cmp r8d, 0x80
je 0x14001c522
cmp r8d, 0x100
je 0x14001c52a
mov r14d, 0xffffffe0
cmp r8d, 0xc0
jne 0x14001cadd
mov r9d, 0xc
jmp 0x14001c530
mov r9d, 0xa
jmp 0x14001c530
mov r9d, 0xe
mov dword [rcx], r9d
cmp byte [0x140051d70], 0
jne 0x14001c88a
mov dword [rsp + 0x28], r8d
mov ebx, 1
xor eax, eax
xor ebp, ebp
nop
mov dword [rsp + rbp*4 + 0x440], ebx
mov edi, ebx
mov dword [rsp + rdi*4 + 0x40], ebp
lea edi, [rbx + rbx]
test bl, bl
mov esi, 0x1b
cmovns esi, eax
movzx edi, dil
xor edi, ebx
xor esi, edi
mov dword [rsp + rbp*4 + 0x444], esi
lea ebx, [rbp + 1]
mov dword [rsp + rsi*4 + 0x40], ebx
lea ebx, [rsi + rsi]
test dil, dil
mov edi, 0x1b
cmovns edi, eax
movzx ebx, bl
xor ebx, esi
xor ebx, edi
add rbp, 2
cmp rbp, 0x100
jne 0x14001c550
mov dword [rsp + 0x2c], r9d
movaps xmm0, xmmword [0x140043920]
movaps xmmword [0x140051d80], xmm0
movaps xmm0, xmmword [0x140043930]
movaps xmmword [0x140051d90], xmm0
movabs rax, 0x360000001b
mov qword [0x140051da0], rax
mov byte [0x140051db0], 0x63
mov byte [0x140053f13], 0
mov ebp, 1
lea r12, [0x140051db0]
lea r10, [0x140053eb0]
nop word cs:[rax + rax]
nop
movsxd rbx, dword [rsp + rbp*4 + 0x40]
mov edi, 0xff
sub rdi, rbx
mov ebx, dword [rsp + rdi*4 + 0x440]
lea edi, [rbx + rbx]
mov esi, ebx
shr esi, 7
or esi, edi
movzx edi, sil
lea esi, [rdi + rdi]
xor ebx, edi
shr edi, 7
movzx esi, sil
or edi, esi
lea eax, [rdi + rdi]
shr esi, 7
movzx eax, al
or esi, eax
shr eax, 7
xor ebx, edi
xor ebx, esi
mov edi, esi
and edi, 0x7f
lea eax, [rax + rdi*2]
xor ebx, eax
movsxd rax, ebx
xor rax, 0x63
mov byte [rbp + r12], al
mov byte [rax + r10], bpl
add rbp, 1
cmp rbp, 0x100
jne 0x14001c600
mov eax, dword [rsp + 0x78]
mov qword [rsp + 0x38], rax
mov eax, dword [rsp + 0x64]
mov qword [rsp + 0x30], rax
mov r8d, dword [rsp + 0x6c]
mov r15d, dword [rsp + 0x74]
mov bl, 0x63
mov r11, 0xfffffffffffffc04
xor r13d, r13d
nop word cs:[rax + rax]
nop dword [rax + rax]
movzx ebp, bl
test bpl, bpl
mov ebx, 0x1b
mov eax, 0
cmovns ebx, eax
lea esi, [rbp + rbp]
movzx edi, sil
xor edi, ebx
mov ebx, ebp
shl ebx, 8
mov eax, ebp
shl eax, 0x10
or eax, ebx
or eax, edi
xor edi, ebp
mov esi, edi
shl esi, 0x18
or esi, eax
lea rbx, [0x140052eb0]
mov dword [r11 + rbx + 0x3fc], esi
shl eax, 8
or eax, edi
lea rbx, [0x1400532b0]
mov dword [r11 + rbx + 0x3fc], eax
shl eax, 8
or eax, ebp
lea rbx, [0x1400536b0]
mov dword [r11 + rbx + 0x3fc], eax
shl eax, 8
or eax, ebp
lea rbp, [0x140053ab0]
mov dword [r11 + rbp + 0x3fc], eax
movzx ebx, byte [r13 + r10]
mov r14d, 0
mov ebp, 0
test rbx, rbx
je 0x14001c812
mov r9d, dword [rsp + rbx*4 + 0x40]
mov rax, qword [rsp + 0x38]
add eax, r9d
cdqe
imul rsi, rax, 0xffffffff80808081
shr rsi, 0x20
add esi, eax
mov edi, esi
shr edi, 0x1f
sar esi, 7
add esi, edi
mov edi, esi
shl edi, 8
sub esi, edi
add esi, eax
movsxd rax, esi
mov rsi, qword [rsp + 0x30]
add esi, r9d
movsxd rsi, esi
imul rdi, rsi, 0xffffffff80808081
shr rdi, 0x20
add edi, esi
mov ebx, edi
shr ebx, 0x1f
sar edi, 7
add edi, ebx
mov ebx, edi
shl ebx, 8
sub edi, ebx
add edi, esi
movsxd rsi, edi
mov ebp, dword [rsp + rsi*4 + 0x440]
shl ebp, 8
xor ebp, dword [rsp + rax*4 + 0x440]
lea eax, [r9 + r15]
cdqe
imul rsi, rax, 0xffffffff80808081
shr rsi, 0x20
add esi, eax
mov edi, esi
shr edi, 0x1f
sar esi, 7
add esi, edi
mov edi, esi
shl edi, 8
sub esi, edi
add esi, eax
movsxd rax, esi
mov r14d, dword [rsp + rax*4 + 0x440]
shl r14d, 0x10
xor r14d, ebp
add r9d, r8d
movsxd rax, r9d
imul rbp, rax, 0xffffffff80808081
shr rbp, 0x20
add ebp, eax
mov ebx, ebp
shr ebx, 0x1f
sar ebp, 7
add ebp, ebx
mov ebx, ebp
shl ebx, 8
sub ebp, ebx
add ebp, eax
movsxd rax, ebp
mov ebp, dword [rsp + rax*4 + 0x440]
shl ebp, 0x18
xor ebp, r14d
lea rax, [0x140051eb0]
mov dword [r11 + rax + 0x3fc], ebp
shrd ebp, r14d, 0x18
lea rax, [0x1400522b0]
mov dword [r11 + rax + 0x3fc], ebp
mov eax, ebp
rol eax, 8
lea rbx, [0x1400526b0]
mov dword [r11 + rbx + 0x3fc], eax
rol ebp, 0x10
lea rax, [0x140052ab0]
mov dword [r11 + rax + 0x3fc], ebp
test r11, r11
je 0x14001c879
movzx ebx, byte [r13 + r12 + 1]
add r13, 1
add r11, 4
jmp 0x14001c6a0
mov byte [0x140051d70], 1
mov r9d, dword [rsp + 0x2c]
mov r8d, dword [rsp + 0x28]
lea rax, [rcx + 0x10]
mov qword [rcx + 8], rax
shr r8d, 5
je 0x14001c8b0
mov eax, r8d
xor ebp, ebp
nop dword [rax]
mov ebx, dword [rdx + rbp*4]
mov dword [rcx + rbp*4 + 0x10], ebx
add rbp, 1
cmp rax, rbp
jne 0x14001c8a0
cmp r9d, 0xa
je 0x14001c9c4
cmp r9d, 0xc
je 0x14001ca4b
xor r14d, r14d
cmp r9d, 0xe
jne 0x14001cadd
mov edi, dword [rcx + 0x10]
xor r14d, r14d
lea r8, [0x140051d80]
lea r9, [0x140051db0]
xor eax, eax
nop word [rax + rax]
xor edi, dword [rax + r8]
mov edx, dword [rcx + rax*8 + 0x2c]
movzx esi, dh
movzx esi, byte [rsi + r9]
xor esi, edi
mov edi, edx
shr edi, 0x10
movzx edi, dil
movzx edi, byte [rdi + r9]
shl edi, 8
mov rbx, rdx
mov r10, rdx
shr rbx, 0x18
movzx ebx, byte [rbx + r9]
shl ebx, 0x10
xor ebx, esi
xor ebx, edi
movzx edi, r10b
movzx edi, byte [rdi + r9]
shl edi, 0x18
xor edi, ebx
mov dword [rcx + rax*8 + 0x30], edi
mov ebp, dword [rcx + rax*8 + 0x14]
xor ebp, edi
mov dword [rcx + rax*8 + 0x34], ebp
xor ebp, dword [rcx + rax*8 + 0x18]
mov dword [rcx + rax*8 + 0x38], ebp
xor ebp, dword [rcx + rax*8 + 0x1c]
mov dword [rcx + rax*8 + 0x3c], ebp
movzx ebx, bpl
movzx ebx, byte [rbx + r9]
xor ebx, dword [rcx + rax*8 + 0x20]
mov esi, ebp
shr esi, 8
movzx esi, sil
movzx esi, byte [rsi + r9]
shl esi, 8
xor esi, ebx
mov edx, ebp
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r9]
shl edx, 0x10
shr rbp, 0x18
movzx ebp, byte [rbp + r9]
shl ebp, 0x18
xor ebp, edx
xor ebp, esi
mov dword [rcx + rax*8 + 0x40], ebp
xor ebp, dword [rcx + rax*8 + 0x24]
mov dword [rcx + rax*8 + 0x44], ebp
xor ebp, dword [rcx + rax*8 + 0x28]
mov dword [rcx + rax*8 + 0x48], ebp
xor ebp, r10d
mov dword [rcx + rax*8 + 0x4c], ebp
add rax, 4
cmp rax, 0x1c
jne 0x14001c8f0
jmp 0x14001cadd
mov edi, dword [rcx + 0x10]
xor r14d, r14d
lea r8, [0x140051d80]
lea rdx, [0x140051db0]
xor ebp, ebp
nop word [rax + rax]
xor edi, dword [rbp + r8]
mov eax, dword [rcx + rbp*4 + 0x1c]
movzx esi, ah
movzx esi, byte [rsi + rdx]
xor esi, edi
mov edi, eax
shr edi, 0x10
movzx edi, dil
movzx edi, byte [rdi + rdx]
shl edi, 8
mov rbx, rax
shr rbx, 0x18
movzx ebx, byte [rbx + rdx]
shl ebx, 0x10
xor ebx, esi
xor ebx, edi
movzx edi, al
movzx edi, byte [rdi + rdx]
shl edi, 0x18
xor edi, ebx
mov dword [rcx + rbp*4 + 0x20], edi
mov ebx, dword [rcx + rbp*4 + 0x14]
xor ebx, edi
mov dword [rcx + rbp*4 + 0x24], ebx
xor ebx, dword [rcx + rbp*4 + 0x18]
mov dword [rcx + rbp*4 + 0x28], ebx
xor ebx, eax
mov dword [rcx + rbp*4 + 0x2c], ebx
add rbp, 4
cmp rbp, 0x28
jne 0x14001c9e0
jmp 0x14001cadd
mov ebx, dword [rcx + 0x10]
add rcx, 0x3c
xor r14d, r14d
lea r8, [0x140051d80]
lea rdi, [0x140051db0]
xor ebp, ebp
nop word cs:[rax + rax]
nop
xor ebx, dword [rbp + r8]
mov edx, dword [rcx - 0x18]
movzx esi, dh
movzx esi, byte [rsi + rdi]
xor esi, ebx
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
movzx ebx, byte [rbx + rdi]
shl ebx, 8
mov rax, rdx
shr rax, 0x18
movzx eax, byte [rax + rdi]
shl eax, 0x10
xor eax, esi
xor eax, ebx
movzx ebx, dl
movzx ebx, byte [rbx + rdi]
shl ebx, 0x18
xor ebx, eax
mov dword [rcx - 0x14], ebx
mov eax, dword [rcx - 0x28]
xor eax, ebx
mov dword [rcx - 0x10], eax
xor eax, dword [rcx - 0x24]
mov dword [rcx - 0xc], eax
xor eax, dword [rcx - 0x20]
mov dword [rcx - 8], eax
xor eax, dword [rcx - 0x1c]
mov dword [rcx - 4], eax
xor eax, edx
mov dword [rcx], eax
add rbp, 4
add rcx, 0x18
cmp rbp, 0x20
jne 0x14001ca70
mov rcx, qword [rsp + 0x840]
xor rcx, rsp
call fcn.140021820
mov eax, r14d
add rsp, 0x848
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret