Function at 0x140024554
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 rbx, rdx
mov rsi, rcx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14002458c
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 rdi, 0x46a9bab2c79a9e2c
lea rsi, [rsp + 0x40]
mov edx, 0xfa
mov rcx, rsi
call fcn.1400018bc
mov byte [rsi], 0x5f
mov r12d, 1
lea rax, [rdi + 1]
mov qword [rsp + 0x28], rbx
movzx ecx, byte [r12 + rbx - 1]
test ecx, ecx
je 0x1400245f5
mov byte [rsp + r12 + 0x40], cl
mov edx, ecx
not edx
lea ebp, [rdx + rdx*2]
add edx, edx
add ecx, ebp
inc ecx
xor ecx, edx
add rcx, rdi
xor rcx, rax
add r12, rcx
cmp r12, 0xf5
jne 0x1400245bf
mov r12d, 0xf5
movabs rbx, 0x58fd93577bb3bfa2
mov byte [rsp + r12 + 0x40], 0x40
xor eax, eax
lea r13, [rax*4]
xor r10d, r10d
cmp r13, 0xa
setb r10b
mov esi, 2
sub rsi, r10
xor r8d, r8d
mov qword [rsp + 0x38], rax
cmp rax, 0x19
mov eax, 3
cmovb rax, rsi
setb r8b
lea ebp, [rax + r12 - 1]
add r12, rax
mov edi, esi
not edi
or edi, r10d
mov eax, r10d
or eax, esi
not eax
lea r9d, [rax + rax*2]
mov edx, r10d
not edx
add edx, edx
mov eax, edx
sub eax, esi
xor esi, r10d
sub esi, edi
add esi, r9d
xor esi, eax
movabs rax, 0x2e548de0290b5591
xor rsi, rax
mov eax, r8d
not eax
or eax, r10d
mov ecx, r10d
or cl, r8b
movzx ecx, cl
not ecx
lea ecx, [rcx + rcx*2]
sub edx, r8d
xor r10b, r8b
movzx edi, r10b
sub edi, eax
add edi, ecx
xor edi, edx
add rdi, rsi
add rdi, r12
lea rax, [rsp + rdi]
add rax, 0x40
movabs rcx, 0xd1ab721fd6f4aa70
mov byte [rcx + rax], 0
mov esi, 0xff
mov rcx, r13
call fcn.14002485b
mov r15, rax
mov edx, r15d
and edx, esi
add eax, edx
mov r8, rbx
lea ebx, [rdx + rdx]
xor ebx, eax
mov eax, ebx
xor al, 0x80
mov ecx, ebx
or ecx, 0xc5
and ecx, esi
imul ecx, ecx
imul ecx, ecx, 0x91bd
or edx, 0x86
imul edx, edx
imul r14d, edx, 0xd7a1
xor edx, edx
cmp ecx, r14d
sete dl
sub al, dl
add al, r15b
add al, 0xb0
mov byte [rsp + r12 + 0x40], al
dec r12
mov edi, edx
neg edi
mov ecx, r14d
not ecx
or ecx, edi
mov esi, r14d
or esi, edi
not esi
lea esi, [rsi + rsi*2]
add edx, edx
sub edx, r14d
add edx, 0xfffffffe
xor edi, r14d
sub edi, ecx
add edi, esi
xor edi, edx
movabs rcx, 0x7085ff10184264a3
add rcx, rdi
movzx eax, al
lea edx, [rdi + rax]
mov esi, edi
xor esi, eax
sub edx, esi
mov esi, 0xff
and edi, eax
add edi, edi
xor edi, edx
movabs rax, 0xf00c1166b44e566e
xor rdi, rax
imul rdi, rcx
mov rax, r13
cqo
idiv rdi
or ebx, 4
and ebx, esi
imul ebx, ebx
imul ecx, ebx, 0xe8e5
mov edx, ebp
or edx, 0xc
and edx, esi
imul edx, edx
imul edx, edx, 0xe81b
xor ebx, ebx
cmp ecx, edx
sete bl
neg rbx
lea rcx, [r8 + rbx]
add rcx, 9
lea ebx, [r14 + rdx]
mov edi, r14d
xor edi, edx
sub ebx, edi
and r14d, edx
add r14d, r14d
xor r14d, ebx
mov rbx, r8
add r14, r8
xor r14, rcx
add r14, r13
dec ebp
mov r13, rax
cmp r14, 0x12
ja 0x1400246be
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x140024578
mov eax, r15d
mov edx, 0xfffffffe
xor eax, edx
add eax, r15d
add eax, 2
add r15d, r15d
and r15d, 2
xor rax, r15
movabs rcx, 0xde7a7f91feb40ae5
xor rax, rcx
mov ecx, r14d
xor ecx, edx
add ecx, r14d
add ecx, 2
add r14d, r14d
and r14d, 2
xor rcx, r14
movabs rdx, 0x34b9453652e9a2ed
xor rcx, rdx
imul rcx, rax
mov rax, qword [rsp + 0x38]
add rax, rcx
cmp rax, 0x33
jne 0x140024607
mov rcx, qword [rsp + 0x28]
call fcn.14002487e
int3