Function at 0x7feeff566a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
mov rdi, rdx
mov rsi, rcx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x7feeff566d8
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x30], rsi
movabs r14, 0x40ddad432fbea77e
lea rsi, [rsp + 0x40]
mov edx, 0xfa
mov rcx, rsi
call fcn.7feeff318bc
mov byte [rsi], 0x5f
mov r15d, 1
lea r9, [r14 + 1]
movabs r8, 0xbf2252bcd0415882
mov qword [rsp + 0x28], rdi
movzx ebp, byte [rdi + r15 - 1]
test ebp, ebp
je 0x7feeff5678a
lea rdx, [r15 - 1]
mov byte [rsp + r15 + 0x40], bpl
or ebp, 0x2b
imul ebp, ebp
imul esi, ebp, 0xa0ab
mov ebp, edx
or ebp, 0xa0
movzx ebp, bpl
imul ebp, ebp
imul ecx, ebp, 0xdbeb
cmp esi, ecx
mov rax, r9
cmove rax, r14
mov esi, ecx
not esi
or esi, edx
mov ebp, ecx
or ebp, edx
not ebp
lea ebp, [rbp + rbp*2]
mov ebx, edx
not ebx
add ebx, ebx
sub ebx, ecx
xor ecx, edx
sub ecx, esi
add ecx, ebp
xor ecx, ebx
xor rcx, r8
add rcx, rax
add r15, rcx
cmp r15, 0xf5
jne 0x7feeff56715
mov r15d, 0xf5
movabs rsi, 0x4f023549f7e99d06
mov byte [rsp + r15 + 0x40], 0x40
xor eax, eax
mov edi, 0xff
lea r13, [rax*4]
cmp r13, 0xa
mov edx, 2
sbb rdx, 0
mov qword [rsp + 0x38], rax
cmp rax, 0x19
mov eax, 3
cmovb rax, rdx
add r15, rax
lea ecx, [rdx + r15]
mov ebp, edx
xor ebp, r15d
sub ecx, ebp
and edx, r15d
add rdx, rdx
xor rcx, rdx
movabs rbx, 0x742e29cab4bcb518
add rcx, rbx
lea edx, [r15 + rax]
mov ebp, r15d
xor ebp, eax
sub edx, ebp
and eax, r15d
add rax, rax
xor rdx, rax
lea rax, [rbx + rdx]
inc rax
xor rax, rcx
add rax, r15
mov byte [rsp + rax + 0x40], 0
mov rcx, r13
call fcn.7feeff569b8
mov r14, rax
mov r12d, r14d
and r12d, edi
mov eax, r12d
or eax, 0x87
imul eax, eax
imul ebp, eax, 0x3209
mov eax, r12d
or eax, 0x7b
imul eax, eax
imul ebx, eax, 0x1f01
cmp ebp, ebx
sete al
neg al
xor al, 0xed
mov r8d, 0xff
mov edi, r14d
not edi
mov rcx, rsi
lea esi, [rdi + rdi]
mov edx, esi
sub edx, r14d
lea edi, [rdi + rdi*2]
inc edi
xor edi, edx
add dil, 0xf0
mul dil
add al, r14b
mov byte [rsp + r15 + 0x40], al
dec r15
mov eax, ebp
not eax
or eax, r14d
mov edx, ebp
or edx, r14d
not edx
lea edx, [rdx + rdx*2]
sub esi, ebp
xor ebp, r14d
sub ebp, eax
add ebp, edx
xor ebp, esi
mov rsi, rcx
lea eax, [rbx + rbp]
mov edx, ebp
xor edx, ebx
sub eax, edx
and ebx, ebp
add ebx, ebx
xor ebx, eax
mov rcx, rbx
movabs rax, 0xcecf740d7059beb1
xor rcx, rax
add rcx, rbp
movabs rax, 0x31308bf28fa64159
add rcx, rax
mov rax, r13
cqo
idiv rcx
mov ecx, r12d
or ecx, 0xea
imul ecx, ecx
imul ecx, ecx, 0x8f83
or ebp, 0x81
and ebp, r8d
imul ebp, ebp
imul edx, ebp, 0xa351
lea rdi, [rsi + 1]
xor ebp, ebp
cmp ecx, edx
cmove rdi, rsi
sete bpl
mov ecx, ebx
sub ecx, ebp
neg ebp
mov edx, ebx
xor edx, ebp
sub ecx, edx
and ebp, ebx
add ebp, ebp
xor ebp, ecx
movabs rcx, 0xb0fdcab608166302
xor rbp, rcx
add rbp, rdi
mov edi, 0xff
add rbp, r13
mov r13, rax
cmp rbp, 0x12
ja 0x7feeff56812
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x7feeff566c4
mov eax, r12d
xor eax, 0xfffffffe
add eax, r12d
add eax, 2
lea ecx, [r14 + r14]
and ecx, 2
xor ecx, eax
movabs rax, 0x2407547c2a5a8818
xor rcx, rax
lea eax, [r14 + rbp]
mov edx, r14d
xor edx, ebp
sub eax, edx
and r14d, ebp
add r14d, r14d
xor r14d, eax
add r14, rcx
add r14, qword [rsp + 0x38]
movabs rax, 0xdbf8ab83d5a577e9
add r14, rax
mov rax, r14
cmp r14, 0x33
jne 0x7feeff567a1
mov rcx, qword [rsp + 0x28]
call fcn.7feeff569db
int3