Function at 0x14006c7d0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
mov r12, rcx
mov eax, r8d
mov ecx, dword [rcx + 4]
mov r13, r9
add rax, qword [r12 + 0xa0]
bswap rax
mov qword [rsp + 0xa4], rax
mov eax, ecx
or eax, r8d
je 0x14006c830
cmp ecx, 3
jbe 0x14006d270
test r8d, r8d
jne 0x14006d270
mov r8d, 0x10
lea rdx, [rsp + rcx + 0xa0]
sub r8, rcx
jmp 0x14006c83e
lea rdx, [rsp + 0xa4]
mov r8d, 0xc
mov rcx, r12
mov ebx, 0x1e
lea r14, [r12 + 0xc]
call sym.fugue2_core
mov eax, dword [r12 + 8]
lea eax, [rax + rax*2]
add eax, eax
mov eax, eax
lea rsi, [rax*4]
sub rbx, rax
lea rax, [rsp + 0xf0]
lea rdx, [r12 + rbx*4 + 0xc]
mov r8, rsi
mov rcx, rax
mov rdi, rax
mov qword [rsp + 0x20], rax
call sym.memcpy
mov r8d, ebx
lea rcx, [rdi + rsi]
shl r8, 2
mov rdx, r14
lea rdi, [0x1401bb7c0]
call sym.memcpy
lea rax, [rsp + 0xfc]
mov dword [rsp + 0x64], 0xa
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x1c0], r12
mov qword [rsp + 0x1d8], r13
nop dword [rax + rax]
mov r8d, 0x6c
lea r15, [0x1401bbfc0]
lea r13, [0x1401bc3c0]
lea rbp, [0x1401bbbc0]
mov rax, qword [rsp + 0x15c]
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rax
mov eax, dword [rsp + 0x164]
mov dword [rsp + 0xb8], eax
call sym.memmove
mov rcx, qword [rsp + 0xb0]
mov edx, dword [rsp + 0x108]
xor dword [rsp + 0x134], edx
mov ebx, dword [rsp + 0x12c]
vmovq xmm0, qword [rsp + 0x12c]
vmovq xmm1, qword [rsp + 0x100]
mov rax, rcx
shr rax, 0x20
mov r10d, eax
mov eax, dword [rsp + 0x100]
xor r10d, dword [rsp + 0x104]
mov dword [rsp + 0x78], ebx
xor ecx, eax
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0xb8]
movzx r8d, cl
mov ebx, r10d
vpxor xmm0, xmm0, xmm1
mov r8d, dword [rdi + r8*4]
movzx esi, bh
vmovq qword [rsp + 0x12c], xmm0
mov r11, rsi
mov rsi, rbp
xor eax, edx
mov edx, ecx
shr edx, 0x10
movzx r12d, al
movzx edx, dl
mov r12d, dword [rdi + r12*4]
mov r9d, dword [r15 + rdx*4]
movzx edx, ch
shr ecx, 0x18
mov edx, dword [rbp + rdx*4]
mov r14d, dword [r13 + rcx*4]
mov ebp, dword [rbp + r11*4]
movzx r11d, r10b
mov r11d, dword [rdi + r11*4]
mov ecx, r9d
xor ecx, edx
xor r14d, r8d
xor r14d, ecx
mov ecx, r10d
shr r10d, 0x10
xor edx, ebp
shr ecx, 0x18
movzx r10d, r10b
xor r8d, r11d
mov ecx, dword [r13 + rcx*4]
xor ebp, dword [r15 + r10*4]
xor r8d, r12d
mov r10d, ecx
xor r10d, r11d
xor ebp, r10d
mov r10d, eax
shr r10d, 0x18
mov r11d, dword [r13 + r10*4]
mov r10d, eax
movzx eax, ah
shr r10d, 0x10
movzx r10d, r10b
mov r10d, dword [r15 + r10*4]
xor ecx, r11d
xor r11d, r12d
xor r9d, r10d
xor r10d, dword [rsi + rax*4]
mov eax, dword [rsp + 0xfc]
mov r12d, eax
movzx esi, ah
xor r10d, r11d
mov r11d, eax
shr r12d, 0x10
movzx eax, al
shr r11d, 0x18
movzx r12d, r12b
mov r11d, dword [r13 + r11*4]
mov r13, rsi
lea rsi, [0x1401bbbc0]
mov r12d, dword [r15 + r12*4]
mov r13d, dword [rsi + r13*4]
mov r15d, r8d
xor ecx, r11d
xor r11d, dword [rdi + rax*4]
xor r9d, r12d
mov eax, r10d
xor edx, r13d
xor r12d, r13d
mov r13d, ebp
xor eax, edx
xor r13d, r9d
shr r15d, 0x18
and eax, 0xff00
and r13d, 0xff0000
xor r15d, r14d
movzx r15d, r15b
xor r11d, r12d
mov r12d, r8d
xor r12d, r11d
movzx r12d, r12b
or eax, r12d
mov r12d, r14d
xor r12d, ecx
and r12d, 0xff000000
or r12d, r13d
mov r13d, edx
or eax, r12d
mov r12d, r9d
shl r13d, 8
shl r12d, 8
xor r13d, r11d
mov dword [rsp + 0xf0], eax
xor r12d, r10d
and r13d, 0xff00
and r12d, 0xff0000
or r12d, r13d
mov r13d, ecx
shl r13d, 8
xor r13d, ebp
and r13d, 0xff000000
or r13d, r15d
mov r15d, r8d
or r12d, r13d
mov r13d, edx
mov dword [rsp + 0xf4], r12d
mov r12d, r9d
shr r13d, 0x10
shl r12d, 0x10
xor r13d, r14d
xor r12d, r11d
and r13d, 0xff00
and r12d, 0xff0000
or r12d, r13d
mov r13d, ecx
shr r15d, 0x10
shr r9d, 8
shl r13d, 0x10
xor r15d, ebp
shr edx, 8
shl ecx, 0x18
xor r13d, r10d
shr r8d, 8
xor r9d, r14d
xor edx, ebp
and r13d, 0xff000000
xor ecx, r11d
xor r8d, r10d
movzx r15d, r15b
or r13d, r15d
and r9d, 0xff0000
and edx, 0xff00
and ecx, 0xff000000
movzx r8d, r8b
or r12d, r13d
or edx, r9d
or ecx, r8d
mov dword [rsp + 0xf8], r12d
or edx, ecx
dec dword [rsp + 0x64]
mov dword [rsp + 0xfc], edx
jne 0x14006c8d0
mov ebx, dword [rsp + 0x68]
mov esi, dword [rsp + 0x78]
mov dword [rsp + 0x90], 0xd
mov r14, qword [rsp + 0x70]
xor esi, ebx
mov dword [rsp + 0x40], esi
lea rsi, [rsp + 0x12c]
mov qword [rsp + 0x98], r14
mov qword [rsp + 0x80], rsi
lea rsi, [rsp + 0x128]
mov qword [rsp + 0x88], rsi
jmp 0x14006cbf7
mov ebx, dword [rsp + 0x100]
mov esi, dword [rsp + 0x40]
xor ebx, eax
vmovdqu ymm0, ymmword [rsp + 0x148]
lea r9, [0x1401bbbc0]
mov dword [rsp + 0x100], ebx
mov rcx, qword [rsp + 0x80]
lea r11, [0x1401bc3c0]
mov dword [rsp + 0x64], ebx
mov rbx, r9
xor eax, esi
mov rsi, qword [rsp + 0x20]
mov dword [rsp + 0x12c], eax
vmovdqu ymm2, ymmword [rsp + 0x12c]
mov edx, eax
shr edx, 0x10
movzx edx, dl
vmovdqu ymm3, ymmword [rsi]
vmovdqu ymmword [rsp + 0xb0], ymm2
vmovdqu ymmword [rsp + 0xcc], ymm0
vmovdqu ymm2, ymmword [rsp + 0xb0]
vmovdqu ymmword [rcx], ymm3
vmovdqu ymmword [rsp + 0x20], ymm3
vmovdqu ymm5, ymmword [rsi + 0x1c]
mov qword [rsp + 0x20], rsi
lea rsi, [0x1401bbfc0]
mov ebp, dword [rsi + rdx*4]
movzx edx, ah
mov r15d, dword [r9 + rdx*4]
movzx edx, al
shr eax, 0x18
mov r10d, dword [rdi + rdx*4]
mov r14d, dword [r11 + rax*4]
vmovdqu ymmword [rsp + 0xf0], ymm2
vmovdqu ymmword [rsp + 0x10c], ymm0
mov eax, ebp
xor eax, r15d
xor r14d, r10d
vmovdqu ymmword [rcx + 0x1c], ymm5
vmovdqu ymmword [rsp + 0x40], ymm5
xor r14d, eax
mov eax, dword [rsp + 0xf4]
mov edx, eax
movzx ecx, ah
movzx r8d, al
shr eax, 0x10
shr edx, 0x18
movzx eax, al
mov ecx, dword [r9 + rcx*4]
mov r8d, dword [rdi + r8*4]
mov edx, dword [r11 + rdx*4]
mov r13d, dword [rsi + rax*4]
mov eax, edx
xor r13d, ecx
xor eax, r8d
xor r13d, eax
mov eax, dword [rsp + 0xf8]
mov r9d, eax
shr r9d, 0x18
mov r12d, dword [r11 + r9*4]
mov r9d, eax
movzx r11d, al
movzx eax, ah
shr r9d, 0x10
movzx r9d, r9b
xor edx, r12d
mov dword [rsp + 0x40], edx
mov r9d, dword [rsi + r9*4]
mov r11d, dword [rdi + r11*4]
mov edx, dword [rbx + rax*4]
mov eax, dword [rsp + 0xfc]
vmovdqu ymm4, ymmword [rsp + 0x148]
xor r8d, r11d
xor r12d, r11d
lea r11, [0x1401bc3c0]
xor r8d, r10d
xor edx, r9d
mov r10d, eax
xor r12d, edx
mov edx, dword [rsp + 0x40]
shr r10d, 0x18
mov r10d, dword [r11 + r10*4]
mov r11d, eax
shr r11d, 0x10
movzx r11d, r11b
mov r11d, dword [rsi + r11*4]
xor edx, r10d
xor r9d, r11d
xor r9d, ebp
movzx ebp, ah
movzx eax, al
mov ebp, dword [rbx + rbp*4]
xor r10d, dword [rdi + rax*4]
mov eax, r14d
xor eax, edx
and eax, 0xff000000
xor r11d, ebp
xor ecx, ebp
mov ebp, r12d
xor r10d, r11d
xor ecx, r15d
mov r15d, r8d
xor r15d, r10d
xor ebp, ecx
movzx r11d, r15b
mov r15d, r13d
and ebp, 0xff00
xor r15d, r9d
or eax, r11d
mov r11d, r15d
mov r15d, ecx
and r11d, 0xff0000
shl r15d, 8
or r11d, ebp
mov ebp, r9d
or eax, r11d
shl ebp, 8
mov r11d, r15d
mov r15d, edx
xor r11d, r10d
xor ebp, r12d
shl r15d, 8
mov dword [rsp + 0xf0], eax
and r11d, 0xff00
and ebp, 0xff0000
or ebp, r11d
mov r11d, r15d
mov r15d, r8d
shr r15d, 0x18
xor r11d, r13d
xor r15d, r14d
and r11d, 0xff000000
movzx r15d, r15b
or r11d, r15d
mov r15d, ecx
or ebp, r11d
shr r15d, 0x10
mov dword [rsp + 0x40], ebp
mov dword [rsp + 0xf4], ebp
mov ebp, r9d
mov r11d, r15d
shl ebp, 0x10
xor r11d, r14d
mov r15d, edx
xor ebp, r10d
and r11d, 0xff00
shl r15d, 0x10
and ebp, 0xff0000
or ebp, r11d
mov r11d, r15d
mov r15d, r8d
xor r11d, r12d
and r11d, 0xff000000
shr r15d, 0x10
shr r9d, 8
shr ecx, 8
shl edx, 0x18
shr r8d, 8
xor r9d, r14d
xor ecx, r13d
xor edx, r10d
xor r8d, r12d
and r9d, 0xff0000
and ecx, 0xff00
and edx, 0xff000000
movzx r8d, r8b
or ecx, r9d
xor r15d, r13d
or edx, r8d
movzx r15d, r15b
mov r8d, 0x40
lea r14, [0x1401bc3c0]
or ecx, edx
mov rdx, qword [rsp + 0x20]
or r11d, r15d
mov dword [rsp + 0x7c], ecx
mov dword [rsp + 0xfc], ecx
mov ecx, dword [rsp + 0x100]
or ebp, r11d
mov dword [rsp + 0x70], ebp
mov dword [rsp + 0xf8], ebp
xor ecx, eax
xor eax, dword [rsp + 0x130]
mov dword [rsp + 0x94], ecx
mov dword [rsp + 0x100], ecx
mov rcx, qword [rsp + 0x88]
mov dword [rsp + 0x130], eax
vmovdqu ymm3, ymmword [rsp + 0x130]
mov r12d, eax
vmovdqu ymmword [rsp + 0xb0], ymm3
vmovdqu ymmword [rsp + 0xc8], ymm4
vzeroupper
call sym.memmove
mov eax, r12d
mov qword [rsp + 0x68], rbx
shr eax, 0x10
vmovdqu ymm5, ymmword [rsp + 0xb0]
movzx eax, al
vmovdqu ymm1, ymmword [rsp + 0xc8]
mov r11d, dword [rsi + rax*4]
mov eax, r12d
movzx eax, ah
mov r10d, dword [rbx + rax*4]
movzx eax, r12b
mov ebp, dword [rdi + rax*4]
mov eax, r12d
shr eax, 0x18
mov r13d, dword [r14 + rax*4]
mov eax, r11d
xor eax, r10d
vmovdqu ymmword [rsp + 0xf0], ymm5
vmovdqu ymmword [rsp + 0x108], ymm1
xor r13d, ebp
xor r13d, eax
mov eax, dword [rsp + 0xf4]
movzx ecx, ah
mov edx, eax
mov r9d, dword [rbx + rcx*4]
shr edx, 0x18
movzx ecx, al
shr eax, 0x10
mov edx, dword [r14 + rdx*4]
movzx eax, al
mov ecx, dword [rdi + rcx*4]
mov r12d, dword [rsi + rax*4]
mov eax, edx
xor eax, ecx
xor r12d, r9d
xor r12d, eax
mov eax, dword [rsp + 0xf8]
mov r8d, eax
movzx r15d, al
shr r8d, 0x18
mov r15d, dword [rdi + r15*4]
mov r14d, dword [r14 + r8*4]
mov r8d, eax
movzx eax, ah
xor edx, r14d
shr r8d, 0x10
xor r14d, r15d
xor ecx, r15d
movzx r8d, r8b
mov dword [rsp + 0x78], edx
lea r15, [0x1401bc3c0]
xor ecx, ebp
mov r8d, dword [rsi + r8*4]
mov edx, r8d
xor edx, dword [rbx + rax*4]
mov eax, dword [rsp + 0x64]
mov ebx, dword [rsp + 0x64]
shr eax, 0x18
mov ebp, dword [r15 + rax*4]
mov eax, dword [rsp + 0x64]
xor r14d, edx
mov r15d, ecx
mov edx, dword [rsp + 0x78]
shr eax, 0x10
movzx eax, al
xor edx, ebp
mov eax, dword [rsi + rax*4]
movzx esi, bh
movzx ebx, byte [rsp + 0x64]
xor r8d, eax
xor ebp, dword [rdi + rbx*4]
xor r8d, r11d
mov r11, rsi
lea rsi, [0x1401bbbc0]
mov r11d, dword [rsi + r11*4]
xor eax, r11d
xor r9d, r11d
mov r11d, r14d
xor r9d, r10d
xor ebp, eax
mov r10d, ecx
mov eax, r13d
xor eax, edx
xor r10d, ebp
xor r11d, r9d
mov ebx, r9d
and eax, 0xff000000
movzx r10d, r10b
and r11d, 0xff00
or eax, r10d
mov r10d, r12d
xor r10d, r8d
and r10d, 0xff0000
or r10d, r11d
mov r11d, edx
or eax, r10d
mov r10d, ecx
shl r11d, 8
shr r10d, 0x18
xor r11d, r12d
mov dword [rsp + 0xf0], eax
xor r10d, r13d
and r11d, 0xff000000
movzx r10d, r10b
or r11d, r10d
mov r10d, r8d
shl ebx, 8
shr r15d, 0x10
shl r10d, 8
xor ebx, ebp
xor r15d, r12d
shr ecx, 8
xor r10d, r14d
and ebx, 0xff00
xor ecx, r14d
movzx r15d, r15b
and r10d, 0xff0000
movzx ecx, cl
or r10d, ebx
mov ebx, r9d
or r11d, r10d
mov r10d, r8d
shr ebx, 0x10
shr r8d, 8
shl r10d, 0x10
xor ebx, r13d
xor r8d, r13d
mov dword [rsp + 0xf4], r11d
xor r10d, ebp
and ebx, 0xff00
and r8d, 0xff0000
and r10d, 0xff0000
or r10d, ebx
mov ebx, edx
shl edx, 0x18
shl ebx, 0x10
xor edx, ebp
xor ebx, r14d
and edx, 0xff000000
and ebx, 0xff000000
or ecx, edx
or ebx, r15d
or ebx, r10d
shr r9d, 8
xor r9d, r12d
mov dword [rsp + 0xf8], ebx
and r9d, 0xff00
or r8d, r9d
or ecx, r8d
mov dword [rsp + 0xfc], ecx
dec dword [rsp + 0x90]
jne 0x14006cbf0
mov edi, dword [rsp + 0x40]
mov edx, ecx
mov ecx, dword [rsp + 0x100]
mov r10d, ebx
mov r14, qword [rsp + 0x98]
mov r12, qword [rsp + 0x1c0]
mov r13, qword [rsp + 0x1d8]
xor edi, eax
xor ecx, eax
mov eax, edi
bswap r11d
mov dword [r13], r11d
bswap r10d
mov dword [r13 + 4], r10d
bswap edx
mov dword [r13 + 8], edx
bswap ecx
mov dword [r13 + 0xc], ecx
bswap eax
mov dword [r13 + 0x10], eax
mov eax, dword [rsp + 0x70]
bswap eax
mov dword [r13 + 0x14], eax
mov eax, dword [rsp + 0x7c]
bswap eax
cmp qword [rsp + 0x1e0], 8
mov dword [r13 + 0x18], eax
je 0x14006d2e0
vpxor xmm0, xmm0, xmm0
movabs rax, 0x6286f757f4c9120d
movabs rdx, 0xe074e3cbee39e01c
vmovdqu ymmword [r12 + 0xc], ymm0
vmovdqu ymmword [r14 + 0x20], ymm0
vmovdqu ymmword [r14 + 0x3c], ymm0
mov qword [r12 + 0x70], rdx
mov qword [r12 + 0x68], rax
movabs rdx, 0xbd8d679a9a43d215
movabs rax, 0xa1127c62e074e3cb
mov qword [r12 + 0x74], rax
mov qword [r12 + 0x7c], rdx
mov qword [r12], 0
mov dword [r12 + 8], 0
mov qword [r12 + 0xa0], 0
vzeroupper
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, 0xffffff00
sarx eax, eax, r8d
and eax, edx
cmp ecx, 4
je 0x14006d318
mov edx, ecx
mov r8d, 0x10
inc ecx
lea r10, [rsp + 0xa0]
mov byte [rsp + rdx + 0xa0], al
sub r8, rdx
lea rdx, [rsp + rdx + 0xa0]
cmp ecx, 3
ja 0x14006c83e
mov r9d, 4
mov eax, ecx
add r10, rax
sub r9d, ecx
je 0x14006c83e
xor eax, eax
mov ecx, eax
inc eax
mov byte [r10 + rcx], 0
cmp eax, r9d
jb 0x14006d2c8
jmp 0x14006c83e
mov eax, dword [rsp + 0x94]
bswap eax
vmovdqu ymm2, ymmword [0x1401bc820]
vpxor xmm0, xmm0, xmm0
mov dword [r13 + 0x1c], eax
vmovdqu ymmword [r12 + 0xc], ymm0
vmovdqu ymmword [r14 + 0x20], ymm0
vmovdqu ymmword [r14 + 0x38], ymm0
vmovdqu ymmword [r12 + 0x64], ymm2
jmp 0x14006d23a
lea r10, [rsp + 0xa0]
mov byte [rsp + 0xa0], al
mov r8d, 0x10
mov ecx, 1
mov rdx, r10
jmp 0x14006d2b2