Function at 0x1400636e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
test rcx, rcx
je 0x1400643c4
mov qword [rsp + 0x80], rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x20], xmm0
xor r15d, r15d
mov r13d, 0
mov qword [rsp + 0x90], rdx
test rdx, rdx
mov qword [rsp + 0x98], r8
je 0x1400639ea
mov eax, 0
mov qword [rsp + 0x38], rax
mov eax, 0
mov qword [rsp + 0x78], rax
mov eax, 0
mov qword [rsp + 0x70], rax
mov eax, 0
mov qword [rsp + 0x68], rax
mov eax, 0
mov qword [rsp + 0x60], rax
mov edi, 0
mov r11d, 0
mov edx, 0
mov eax, 0
mov ebp, 0
mov r14d, 0
mov esi, 0
mov ebx, 0
mov r12d, 0
mov r10d, 0
mov ecx, 0
test r8d, r8d
je 0x140063d72
mov ecx, r8d
and ecx, 0xf
cmp r8d, 0x10
mov qword [rsp + 0xb0], r9
jae 0x140063a59
xor r13d, r13d
xor eax, eax
mov qword [rsp + 0x78], rax
xor eax, eax
mov qword [rsp + 0x70], rax
xor eax, eax
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rsp + 0x60], rax
xor edi, edi
xor r11d, r11d
xor eax, eax
xor ebp, ebp
xor r14d, r14d
xor esi, esi
xor ebx, ebx
xor r12d, r12d
xor r10d, r10d
xor edx, edx
mov qword [rsp + 0x88], rdx
xor r15d, r15d
mov edx, ecx
xor ecx, ecx
mov qword [rsp + 0x38], rcx
mov ecx, edx
xor edx, edx
test ecx, ecx
je 0x140063d6a
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov r8d, ecx
lea rcx, [rsp + 0x40]
mov rdx, qword [rsp + 0x90]
call sub.msvcrt.dll_memcpy
mov rbx, qword [rsp + 0x38]
xor rbx, qword [rsp + 0x40]
mov qword [rsp + 0x20], rbx
xor r15, qword [rsp + 0x48]
mov qword [rsp + 0x28], r15
mov rax, qword [rsp + 0x80]
lea rdx, [rax + 0x140]
mov eax, 0x10
xor r9d, r9d
lea rcx, [0x1402647c0]
xor r8d, r8d
nop word [rax + rax]
movzx r10d, byte [rsp + rax + 0x1f]
mov esi, r10d
and esi, 0xf
shl rsi, 4
xor r9, qword [rdx + rsi]
mov r11, r8
xor r11, qword [rdx + rsi + 8]
mov r8, r11
shld r8, r9, 8
shl r9, 8
and r10d, 0xfffffff0
xor r9, qword [rdx + r10 + 0x100]
xor r8, qword [rdx + r10 + 0x108]
mov rsi, r11
shr rsi, 0x37
and esi, 0x1e
movzx esi, word [rsi + rcx + 0x20]
xor rsi, r9
movzx r9d, byte [rdx + r10 + 0xf]
shr r11, 0x3c
and r9d, 0xf
xor r9, r11
movzx r9d, word [rcx + r9*2]
xor r9, rsi
dec rax
cmp rax, 1
ja 0x140063870
mov eax, ebx
and eax, 0xf
shl rax, 4
xor r9, qword [rdx + rax]
xor r8, qword [rdx + rax + 8]
mov rax, r9
movabs rsi, 0xf0f0f0f0f0f0f0f
and rax, rsi
mov r10, r8
shr r10, 4
and r10, rsi
mov r11, r8
shl r11, 0xc
movabs rdi, 0xf0f0f0f0f0f0f000
and r11, rdi
mov r15, rax
shr r15, 0x34
or r15, r11
shr r9, 4
and r9, rsi
shl rax, 0xc
or rax, r9
and ebx, 0xf0
xor rax, qword [rdx + rbx]
or r15, r10
xor r15, qword [rdx + rbx + 8]
shr r8, 0x37
and r8d, 0x1e
movzx ecx, word [r8 + rcx]
xor rcx, rax
mov r10, rcx
shr r10, 8
mov r12, rax
shr r12, 0x10
mov rbx, rax
shr rbx, 0x18
mov rsi, rax
shr rsi, 0x20
mov r14, rax
shr r14, 0x28
mov rbp, rax
shr rbp, 0x30
shr rax, 0x38
mov r11, r15
shr r11, 8
mov rdi, r15
shr rdi, 0x10
mov rdx, r15
shr rdx, 0x18
mov qword [rsp + 0x60], rdx
mov rdx, r15
shr rdx, 0x20
mov qword [rsp + 0x68], rdx
mov rdx, r15
shr rdx, 0x28
mov qword [rsp + 0x70], rdx
mov rdx, r15
shr rdx, 0x30
mov qword [rsp + 0x78], rdx
mov r13, r15
shr r13, 0x38
mov edx, r15d
mov qword [rsp + 0x38], rcx
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0xb0]
jmp 0x140063d72
xor eax, eax
mov qword [rsp + 0x38], rax
mov eax, 0
mov qword [rsp + 0x78], rax
mov eax, 0
mov qword [rsp + 0x70], rax
mov eax, 0
mov qword [rsp + 0x68], rax
mov eax, 0
mov qword [rsp + 0x60], rax
mov edi, 0
mov r11d, 0
mov edx, 0
mov eax, 0
mov ebp, 0
mov r14d, 0
mov esi, 0
mov ebx, 0
mov r12d, 0
mov r10d, 0
mov ecx, 0
jmp 0x140063d72
mov dword [rsp + 0xa0], ecx
mov eax, r8d
shr eax, 4
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x80]
lea rdx, [rax + 0x140]
xor r15d, r15d
lea r8, [0x1402647c0]
xor eax, eax
mov qword [rsp + 0x38], rax
xor ecx, ecx
xor eax, eax
mov qword [rsp + 0x78], rax
xor eax, eax
mov qword [rsp + 0x70], rax
xor eax, eax
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rsp + 0x60], rax
xor edi, edi
xor r11d, r11d
xor eax, eax
xor ebp, ebp
xor r14d, r14d
xor esi, esi
xor ebx, ebx
xor r12d, r12d
xor r10d, r10d
xor r9d, r9d
mov r13, qword [rsp + 0x90]
nop dword [rax]
test r13b, 7
je 0x140063b80
xor r9b, byte [r13]
mov byte [rsp + 0x20], r9b
xor r10b, byte [r13 + 1]
mov byte [rsp + 0x21], r10b
xor r12b, byte [r13 + 2]
mov byte [rsp + 0x22], r12b
xor bl, byte [r13 + 3]
mov byte [rsp + 0x23], bl
xor sil, byte [r13 + 4]
mov byte [rsp + 0x24], sil
xor r14b, byte [r13 + 5]
mov byte [rsp + 0x25], r14b
xor bpl, byte [r13 + 6]
mov byte [rsp + 0x26], bpl
xor al, byte [r13 + 7]
mov byte [rsp + 0x27], al
xor r15b, byte [r13 + 8]
mov byte [rsp + 0x28], r15b
xor r11b, byte [r13 + 9]
mov byte [rsp + 0x29], r11b
xor dil, byte [r13 + 0xa]
mov byte [rsp + 0x2a], dil
mov rax, qword [rsp + 0x60]
xor al, byte [r13 + 0xb]
mov byte [rsp + 0x2b], al
mov rax, qword [rsp + 0x68]
xor al, byte [r13 + 0xc]
mov byte [rsp + 0x2c], al
mov rax, qword [rsp + 0x70]
xor al, byte [r13 + 0xd]
mov byte [rsp + 0x2d], al
mov rax, qword [rsp + 0x78]
xor al, byte [r13 + 0xe]
mov byte [rsp + 0x2e], al
xor cl, byte [r13 + 0xf]
mov byte [rsp + 0x2f], cl
jmp 0x140063b97
mov rax, qword [rsp + 0x38]
xor rax, qword [r13]
mov qword [rsp + 0x20], rax
xor r15, qword [r13 + 8]
mov qword [rsp + 0x28], r15
dec dword [rsp + 0x5c]
mov eax, 0x10
xor r9d, r9d
xor ecx, ecx
nop word cs:[rax + rax]
movzx r10d, byte [rsp + rax + 0x1f]
mov esi, r10d
and esi, 0xf
shl rsi, 4
xor r9, qword [rdx + rsi]
mov r11, rcx
xor r11, qword [rdx + rsi + 8]
mov rcx, r11
shld rcx, r9, 8
shl r9, 8
and r10d, 0xfffffff0
xor r9, qword [rdx + r10 + 0x100]
xor rcx, qword [rdx + r10 + 0x108]
mov rsi, r11
shr rsi, 0x37
and esi, 0x1e
movzx esi, word [rsi + r8 + 0x20]
xor rsi, r9
movzx r9d, byte [rdx + r10 + 0xf]
shr r11, 0x3c
and r9d, 0xf
xor r9, r11
movzx r9d, word [r8 + r9*2]
xor r9, rsi
dec rax
cmp rax, 1
ja 0x140063bb0
movzx r10d, byte [rsp + 0x20]
mov eax, r10d
and eax, 0xf
shl rax, 4
xor r9, qword [rdx + rax]
xor rcx, qword [rdx + rax + 8]
mov rax, r9
movabs r14, 0xf0f0f0f0f0f0f0f
and rax, r14
mov r11, rcx
shr r11, 4
and r11, r14
mov rsi, rcx
shl rsi, 0xc
movabs rbx, 0xf0f0f0f0f0f0f000
and rsi, rbx
mov r15, rax
shr r15, 0x34
or r15, rsi
or r15, r11
shr r9, 4
and r9, r14
shl rax, 0xc
or rax, r9
and r10d, 0xfffffff0
xor rax, qword [rdx + r10]
xor r15, qword [rdx + r10 + 8]
shr rcx, 0x37
and ecx, 0x1e
movzx r9d, word [rcx + r8]
xor r9, rax
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], r15
add r13, 0x10
mov r10, r9
shr r10, 8
mov r12, rax
shr r12, 0x10
mov rbx, rax
shr rbx, 0x18
mov rsi, rax
shr rsi, 0x20
mov r14, rax
shr r14, 0x28
mov rbp, rax
shr rbp, 0x30
shr rax, 0x38
mov r11, r15
shr r11, 8
mov rdi, r15
shr rdi, 0x10
mov rcx, r15
shr rcx, 0x18
mov qword [rsp + 0x60], rcx
mov rcx, r15
shr rcx, 0x20
mov qword [rsp + 0x68], rcx
mov rcx, r15
shr rcx, 0x28
mov qword [rsp + 0x70], rcx
mov rcx, r15
shr rcx, 0x30
mov qword [rsp + 0x78], rcx
mov rcx, r15
shr rcx, 0x38
mov qword [rsp + 0x38], r9
cmp dword [rsp + 0x5c], 0
jne 0x140063ad0
mov qword [rsp + 0x90], r13
mov r13, rcx
mov edx, r15d
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x88], rcx
mov r8, qword [rsp + 0x98]
mov r9, qword [rsp + 0xb0]
mov ecx, dword [rsp + 0xa0]
test ecx, ecx
jne 0x140063813
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x88], rcx
mov ecx, dword [rsp + 0x120]
test r9, r9
je 0x1400641d6
test ecx, ecx
je 0x1400641d6
mov qword [rsp + 0xa0], rdx
mov edx, ecx
and edx, 0xf
cmp ecx, 0x10
mov dword [rsp + 0xac], edx
jb 0x14006407c
shr ecx, 4
mov rdx, qword [rsp + 0x80]
add rdx, 0x140
lea r8, [0x1402647c0]
nop dword [rax + rax]
test r9b, 7
je 0x140063e90
mov r15, qword [rsp + 0x88]
xor r15b, byte [r9]
mov byte [rsp + 0x20], r15b
xor r10b, byte [r9 + 1]
mov byte [rsp + 0x21], r10b
xor r12b, byte [r9 + 2]
mov byte [rsp + 0x22], r12b
xor bl, byte [r9 + 3]
mov byte [rsp + 0x23], bl
xor sil, byte [r9 + 4]
mov byte [rsp + 0x24], sil
xor r14b, byte [r9 + 5]
mov byte [rsp + 0x25], r14b
xor bpl, byte [r9 + 6]
mov byte [rsp + 0x26], bpl
xor al, byte [r9 + 7]
mov byte [rsp + 0x27], al
mov rax, qword [rsp + 0xa0]
xor al, byte [r9 + 8]
mov byte [rsp + 0x28], al
xor r11b, byte [r9 + 9]
mov byte [rsp + 0x29], r11b
xor dil, byte [r9 + 0xa]
mov byte [rsp + 0x2a], dil
mov rax, qword [rsp + 0x60]
xor al, byte [r9 + 0xb]
mov byte [rsp + 0x2b], al
mov rax, qword [rsp + 0x68]
xor al, byte [r9 + 0xc]
mov byte [rsp + 0x2c], al
mov rax, qword [rsp + 0x70]
xor al, byte [r9 + 0xd]
mov byte [rsp + 0x2d], al
mov rax, qword [rsp + 0x78]
xor al, byte [r9 + 0xe]
mov byte [rsp + 0x2e], al
mov r14, r9
xor r13b, byte [r9 + 0xf]
mov byte [rsp + 0x2f], r13b
jmp 0x140063ea9
mov rax, qword [rsp + 0x38]
xor rax, qword [r9]
mov qword [rsp + 0x20], rax
mov r14, r9
xor r15, qword [r9 + 8]
mov qword [rsp + 0x28], r15
dec ecx
mov dword [rsp + 0x5c], ecx
mov eax, 0x10
xor r9d, r9d
xor ecx, ecx
nop dword [rax]
movzx r10d, byte [rsp + rax + 0x1f]
mov esi, r10d
and esi, 0xf
shl rsi, 4
xor r9, qword [rdx + rsi]
mov r11, rcx
xor r11, qword [rdx + rsi + 8]
mov rcx, r11
shld rcx, r9, 8
shl r9, 8
and r10d, 0xfffffff0
xor r9, qword [rdx + r10 + 0x100]
xor rcx, qword [rdx + r10 + 0x108]
mov rsi, r11
shr rsi, 0x37
and esi, 0x1e
movzx esi, word [rsi + r8 + 0x20]
xor rsi, r9
movzx r9d, byte [rdx + r10 + 0xf]
shr r11, 0x3c
and r9d, 0xf
xor r9, r11
movzx r9d, word [r8 + r9*2]
xor r9, rsi
dec rax
cmp rax, 1
ja 0x140063ec0
movzx r10d, byte [rsp + 0x20]
mov eax, r10d
and eax, 0xf
shl rax, 4
xor r9, qword [rdx + rax]
xor rcx, qword [rdx + rax + 8]
mov rax, r9
movabs rdi, 0xf0f0f0f0f0f0f0f
and rax, rdi
mov r11, rcx
shr r11, 4
and r11, rdi
mov rsi, rcx
shl rsi, 0xc
movabs rbx, 0xf0f0f0f0f0f0f000
and rsi, rbx
mov r15, rax
shr r15, 0x34
or r15, rsi
shr r9, 4
and r9, rdi
shl rax, 0xc
or rax, r9
and r10d, 0xfffffff0
xor rax, qword [rdx + r10]
or r15, r11
xor r15, qword [rdx + r10 + 8]
shr rcx, 0x37
and ecx, 0x1e
movzx ecx, word [rcx + r8]
xor rcx, rax
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], r15
mov r9, r14
add r9, 0x10
mov r10, rcx
shr r10, 8
mov qword [rsp + 0x90], r10
mov r10, rax
shr r10, 0x10
mov r12, rax
shr r12, 0x18
mov rbx, rax
shr rbx, 0x20
mov rsi, rax
shr rsi, 0x28
mov r14, rax
shr r14, 0x30
shr rax, 0x38
mov rbp, r15
shr rbp, 8
mov r11, r15
shr r11, 0x10
mov r13, r15
shr r13, 0x18
mov qword [rsp + 0x60], r13
mov r13, r15
shr r13, 0x20
mov qword [rsp + 0x68], r13
mov r13, r15
shr r13, 0x28
mov qword [rsp + 0x70], r13
mov r13, r15
shr r13, 0x30
mov qword [rsp + 0x78], r13
mov r13, r15
shr r13, 0x38
mov edi, r15d
mov qword [rsp + 0xa0], rdi
mov rdi, r11
mov r11, rbp
mov rbp, r14
mov r14, rsi
mov rsi, rbx
mov rbx, r12
mov r12, r10
mov r10, qword [rsp + 0x90]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x88], rcx
mov ecx, dword [rsp + 0x5c]
test ecx, ecx
jne 0x140063dd0
mov eax, dword [rsp + 0xac]
test eax, eax
je 0x1400641e0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
mov r8d, eax
lea rcx, [rsp + 0x40]
mov rdx, r9
call sub.msvcrt.dll_memcpy
mov r14, qword [rsp + 0x38]
xor r14, qword [rsp + 0x40]
mov qword [rsp + 0x20], r14
xor r15, qword [rsp + 0x48]
mov qword [rsp + 0x28], r15
mov rbx, qword [rsp + 0x80]
lea rcx, [rbx + 0x140]
mov r9d, 0x10
xor r8d, r8d
lea rax, [0x1402647c0]
xor edx, edx
nop dword [rax]
movzx r10d, byte [rsp + r9 + 0x1f]
mov esi, r10d
and esi, 0xf
shl rsi, 4
xor r8, qword [rcx + rsi]
mov r11, rdx
xor r11, qword [rcx + rsi + 8]
mov rdx, r11
shld rdx, r8, 8
shl r8, 8
and r10d, 0xfffffff0
xor r8, qword [rcx + r10 + 0x100]
xor rdx, qword [rcx + r10 + 0x108]
mov rsi, r11
shr rsi, 0x37
and esi, 0x1e
movzx esi, word [rsi + rax + 0x20]
xor rsi, r8
movzx r8d, byte [rcx + r10 + 0xf]
shr r11, 0x3c
and r8d, 0xf
xor r8, r11
movzx r8d, word [rax + r8*2]
xor r8, rsi
dec r9
cmp r9, 1
ja 0x1400640e0
mov r9d, r14d
and r9d, 0xf
shl r9, 4
xor r8, qword [rcx + r9]
xor rdx, qword [rcx + r9 + 8]
mov r9, r8
movabs rsi, 0xf0f0f0f0f0f0f0f
and r9, rsi
mov r10, rdx
shr r10, 4
and r10, rsi
mov r11, rdx
shl r11, 0xc
movabs rdi, 0xf0f0f0f0f0f0f000
and r11, rdi
mov r15, r9
shr r15, 0x34
or r15, r11
or r15, r10
shr r8, 4
and r8, rsi
shl r9, 0xc
or r9, r8
and r14d, 0xf0
xor r9, qword [rcx + r14]
xor r15, qword [rcx + r14 + 8]
shr rdx, 0x37
and edx, 0x1e
movzx r12d, word [rdx + rax]
xor r12, r9
mov r8, qword [rsp + 0x98]
jmp 0x1400641f5
mov rbx, qword [rsp + 0x80]
jmp 0x1400641f0
mov rbx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x98]
mov r12, qword [rsp + 0x38]
mov eax, dword [rsp + 0x130]
mov rcx, qword [rsp + 0x128]
mov edx, r8d
shr edx, 0x1d
mov r9, r8
lea r8d, [r8*8]
mov word [rsp + 0x40], 0
mov byte [rsp + 0x42], 0
mov byte [rsp + 0x43], dl
mov edx, r9d
shr edx, 0x15
mov byte [rsp + 0x44], dl
mov edx, r9d
shr edx, 0xd
mov byte [rsp + 0x45], dl
shr r9d, 5
mov byte [rsp + 0x46], r9b
mov byte [rsp + 0x47], r8b
mov edx, dword [rsp + 0x120]
mov r9, rdx
shr edx, 0x1d
lea r8d, [r9*8]
mov word [rsp + 0x48], 0
mov byte [rsp + 0x4a], 0
mov byte [rsp + 0x4b], dl
mov edx, r9d
shr edx, 0x15
mov byte [rsp + 0x4c], dl
mov edx, r9d
shr edx, 0xd
mov byte [rsp + 0x4d], dl
shr r9d, 5
mov byte [rsp + 0x4e], r9b
mov byte [rsp + 0x4f], r8b
xor r12, qword [rsp + 0x40]
mov qword [rsp + 0x20], r12
xor r15, qword [rsp + 0x48]
mov qword [rsp + 0x28], r15
add rbx, 0x140
mov r10d, 0x10
xor r9d, r9d
lea rdx, [0x1402647c0]
xor r8d, r8d
nop dword [rax]
movzx r11d, byte [rsp + r10 + 0x1f]
mov edi, r11d
and edi, 0xf
shl rdi, 4
xor r9, qword [rbx + rdi]
mov rsi, r8
xor rsi, qword [rbx + rdi + 8]
mov r8, rsi
shld r8, r9, 8
shl r9, 8
and r11d, 0xfffffff0
xor r9, qword [rbx + r11 + 0x100]
xor r8, qword [rbx + r11 + 0x108]
mov rdi, rsi
shr rdi, 0x37
and edi, 0x1e
movzx edi, word [rdi + rdx + 0x20]
xor rdi, r9
movzx r9d, byte [rbx + r11 + 0xf]
shr rsi, 0x3c
and r9d, 0xf
xor r9, rsi
movzx r9d, word [rdx + r9*2]
xor r9, rdi
dec r10
cmp r10, 1
ja 0x1400642c0
mov r10d, r12d
and r10d, 0xf
shl r10, 4
xor r9, qword [rbx + r10]
xor r8, qword [rbx + r10 + 8]
mov r10, r9
movabs r14, 0xf0f0f0f0f0f0f0f
and r10, r14
mov rsi, r8
shr rsi, 4
and rsi, r14
mov rdi, r8
shl rdi, 0xc
movabs r11, 0xf0f0f0f0f0f0f000
and rdi, r11
mov r11, r10
shr r11, 0x34
or r11, rdi
or r11, rsi
shr r9, 4
and r9, r14
shl r10, 0xc
or r10, r9
and r12d, 0xf0
xor r10, qword [rbx + r12]
xor r11, qword [rbx + r12 + 8]
shr r8, 0x37
and r8d, 0x1e
movzx edx, word [r8 + rdx]
xor rdx, r10
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], r11
mov r8d, eax
lea rdx, [rsp + 0x20]
call sub.msvcrt.dll_memcpy
nop
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret