Function at 0x1badc0d31000
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rbx
push r13
lea rbp, [rax - 0x208]
sub rsp, 0x2f0
mov qword [rax - 0x28], rdi
lea r8, [rbp + 0x210]
lea rdi, [0x1badc0d52630]
mov qword [rax - 0x38], r14
xor r13d, r13d
mov rcx, rdi
mov edx, 0x1000
mov dword [rbp + 0x210], r13d
call fcn.1badc0d31e4a
test eax, eax
jne 0x1badc0d3104e
mov r14d, r13d
jmp 0x1badc0d3116e
mov qword [rsp + 0x2e8], rsi
mov ebx, r13d
mov qword [rsp + 0x2d8], r12
mov r12d, dword [rbp + 0x210]
shr r12d, 2
mov qword [rsp + 0x2c8], r15
test r12d, r12d
je 0x1badc0d31153
nop dword [rax]
mov eax, ebx
mov r14d, dword [rdi + rax*4]
test r14d, r14d
je 0x1badc0d31148
mov r8d, r14d
xor edx, edx
mov ecx, 0x410
call fcn.1badc0d31e57
mov rsi, rax
test rax, rax
je 0x1badc0d31148
movzx eax, r13w
lea rdi, [rbp - 0x50]
mov ecx, 0x104
lea r8, [rbp - 0x50]
rep stosw word [rdi], ax
mov rcx, rsi
mov r9d, 0x104
xor edx, edx
call fcn.1badc0d31e64
mov rcx, rsi
mov r15d, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r15d, r15d
je 0x1badc0d31141
lea ecx, [r15 - 1]
mov edi, r13d
test ecx, ecx
je 0x1badc0d31105
lea rdx, [rbp - 0x50]
lea rdx, [rdx + rcx*2]
cmp word [rdx], 0x5c
je 0x1badc0d313c7
sub rdx, 2
add ecx, 0xffffffff
jne 0x1badc0d310f2
mov rcx, r13
lea eax, [rdi + 1]
mov edx, eax
test eax, eax
je 0x1badc0d31141
movzx eax, word [rcx]
lea rdi, [0x1badc0d32040]
xor rax, 0xff
add rcx, 2
mov r8d, dword [rdi + rax*4]
xor r8d, 0xffffa8
dec rdx
call fcn.1badc0d313e0
not eax
cmp eax, 0x1a8c2c73
je 0x1badc0d31156
lea rdi, [0x1badc0d52630]
inc ebx
cmp ebx, r12d
jb 0x1badc0d31080
mov r14d, r13d
mov r12, qword [rsp + 0x2d8]
mov rsi, qword [rsp + 0x2e8]
mov r15, qword [rsp + 0x2c8]
mov rax, qword [0x1badc0d53638]
lea rbx, section..data
movzx edi, byte [0x1badc0d53630]
mov r8, r13
mov r9d, r14d
mov r14, qword [rsp + 0x2d0]
movzx edx, byte [rax - 0x12]
nop word [rax + rax]
movzx eax, dl
movzx ecx, dl
xor al, byte [r8 + rbx]
xor cl, dil
xor al, dil
xor al, 0x4c
mov byte [r8 + rbx], al
movzx eax, cl
xor al, 1
sub byte [r8 + rbx + 1], al
movzx eax, dl
xor al, byte [r8 + rbx + 2]
xor al, dil
xor al, 0x65
mov byte [r8 + rbx + 2], al
movzx eax, cl
xor al, 2
sub byte [r8 + rbx + 3], al
movzx eax, dl
xor al, byte [r8 + rbx + 4]
xor al, dil
xor al, 0x67
mov byte [r8 + rbx + 4], al
movzx eax, cl
xor al, 3
sub byte [r8 + rbx + 5], al
movzx eax, dl
xor al, byte [r8 + rbx + 6]
xor al, dil
xor al, 0x65
mov byte [r8 + rbx + 6], al
movzx eax, cl
xor al, 4
sub byte [r8 + rbx + 7], al
movzx eax, dl
xor al, byte [r8 + rbx + 8]
xor al, dil
xor al, 0x6e
mov byte [r8 + rbx + 8], al
movzx eax, cl
xor al, 5
sub byte [r8 + rbx + 9], al
movzx eax, dl
xor al, byte [r8 + rbx + 0xa]
xor al, dil
xor al, 0x64
mov byte [r8 + rbx + 0xa], al
movzx eax, cl
xor al, 6
sub byte [r8 + rbx + 0xb], al
movzx eax, dl
xor al, byte [r8 + rbx + 0xc]
xor al, dil
xor al, 0x65
mov byte [r8 + rbx + 0xc], al
movzx eax, cl
xor al, 7
xor cl, 8
sub byte [r8 + rbx + 0xd], al
movzx eax, dl
xor al, byte [r8 + rbx + 0xe]
add dl, 3
sub byte [r8 + rbx + 0xf], cl
xor al, dil
xor al, 0x6e
mov byte [r8 + rbx + 0xe], al
add r8, 0x10
cmp r8, 0x1f600
jb 0x1badc0d311a0
mov rdi, qword [rsp + 0x2e0]
mov eax, r13d
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rbp - 0x60], xmm0
mov qword [rsp + 0x68], r9
mov rcx, rbx
mov qword [rsp + 0x70], r13
mov edx, 0x3ec0
mov dword [rbp - 0x80], 0x30
mov qword [rbp - 0x78], r13
mov dword [rbp - 0x68], r13d
mov qword [rbp - 0x70], r13
nop
crc32 eax, byte [rcx]
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x1badc0d312d0
cmp eax, 0xca339b55
jne 0x1badc0d313bb
lea r9, [rsp + 0x68]
mov edx, 0x1fffff
lea r8, [rbp - 0x80]
lea rcx, [rbp + 0x228]
call fcn.1badc0d31dc0
test eax, eax
js 0x1badc0d313bb
mov rcx, qword [rbp + 0x228]
lea r9, [rsp + 0x60]
mov dword [rsp + 0x28], 0x40
lea rdx, [rbp + 0x220]
xor r8d, r8d
mov dword [rsp + 0x20], 0x3000
mov qword [rsp + 0x60], 0x1f600
mov qword [rbp + 0x220], r13
call fcn.1badc0d31dcf
mov rdx, qword [rbp + 0x220]
lea rax, [rbp + 0x218]
mov rcx, qword [rbp + 0x228]
mov r9d, 0x1f600
mov r8, rbx
mov qword [rsp + 0x20], rax
call fcn.1badc0d31dde
cmp dword [rbp + 0x218], r13d
je 0x1badc0d313bb
mov rax, qword [rbp + 0x220]
lea rcx, [rsp + 0x78]
mov r9, qword [rbp + 0x228]
xor r8d, r8d
mov qword [rsp + 0x50], r13
mov edx, 0x1fffff
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r13
mov dword [rsp + 0x30], r13d
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call fcn.1badc0d31ded
add rsp, 0x2f0
pop r13
pop rbx
pop rbp
ret
mov eax, ecx
mov edi, r15d
sub edi, ecx
lea rcx, [rbp - 0x50]
lea rcx, [rcx + rax*2]
jmp 0x1badc0d31108