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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push r12
push r14
push r15
sub rsp, 0xd8
mov r15, r9
mov rbx, r8
mov r12, rdx
mov r14, rcx
test r9b, 1
jne 0x140028fc6
mov ecx, 8
mov qword [rsp + 0xc8], rdi
call fcn.140029470
test al, al
je 0x1400289db
cmp r12, 0x10
jb 0x1400289db
mov rdi, r12
shr rdi, 4
imul rax, rdi, 0xfffffffffffffff0
add r12, rax
mov qword [rsp + 0x108], r12
mov r8, r15
mov rdx, rbx
mov rcx, r14
call fcn.1400804d0
add r14, 0x400
sub rdi, 1
jne 0x1400289c0
mov ecx, 4
call fcn.140029470
test al, al
je 0x140028a2b
cmp r12, 8
jb 0x140028a2b
mov rdi, r12
shr rdi, 3
imul rax, rdi, 0xfffffffffffffff8
add r12, rax
mov qword [rsp + 0x108], r12
nop word [rax + rax]
mov r8, r15
mov rdx, rbx
mov rcx, r14
call fcn.14007fb90
add r14, 0x200
sub rdi, 1
jne 0x140028a10
call fcn.140081770
test al, al
je 0x140028a6b
cmp r12, 4
jb 0x140028a6b
mov rdi, r12
shr rdi, 2
imul rax, rdi, 0xfffffffffffffffc
add r12, rax
mov qword [rsp + 0x108], r12
mov r8, r15
mov rdx, rbx
mov rcx, r14
call fcn.14007f040
add r14, 0x100
sub rdi, 1
jne 0x140028a50
test r12, r12
je 0x140028faf
shr r15, 1
mov qword [rsp + 0x100], rbp
add r14, 8
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0xc0], r13
mov qword [rsp + 0x118], r15
nop dword [rax]
nop word [rax + rax]
mov r12d, dword [rbx + 0x30]
mov r9d, dword [rbx + 0x10]
mov esi, r9d
mov eax, dword [rbx]
mov r13d, eax
mov edi, dword [rbx + 0x2c]
mov ecx, dword [rbx + 4]
mov edx, dword [rbx + 8]
mov r8d, dword [rbx + 0xc]
mov r10d, dword [rbx + 0x24]
mov r11d, dword [rbx + 0x28]
mov dword [rsp + 0x74], r9d
mov r9d, dword [rbx + 0x14]
mov ebp, r9d
mov dword [rsp + 0x94], r12d
mov dword [rsp + 0x58], r12d
mov r12d, dword [rbx + 0x34]
mov dword [rsp + 0x78], r9d
mov dword [rsp + 0x4c], r9d
mov r9d, dword [rbx + 0x18]
mov dword [rsp + 0x98], r12d
mov dword [rsp + 0x38], r12d
mov r12d, dword [rbx + 0x38]
mov dword [rsp + 0x7c], r9d
mov dword [rsp + 0x50], r9d
mov r9d, dword [rbx + 0x1c]
mov dword [rsp + 0x9c], r12d
mov dword [rsp + 0x5c], r12d
mov r12d, dword [rbx + 0x3c]
mov dword [rsp + 0x80], r9d
mov dword [rsp + 0x54], r9d
mov r9d, dword [rbx + 0x20]
mov dword [rsp + 0xa0], r12d
mov dword [rsp + 0x60], r12d
mov r12, qword [rsp + 0x108]
mov dword [rsp + 0x84], r9d
mov dword [rsp + 0x64], eax
mov dword [rsp + 0x68], ecx
mov dword [rsp + 0x6c], edx
mov dword [rsp + 0x70], r8d
mov dword [rsp + 0x88], r10d
mov dword [rsp + 0x8c], r11d
mov dword [rsp + 0x90], edi
mov dword [rsp + 0x34], edi
test r15, r15
je 0x140028ea3
mov edi, dword [rsp + 0x38]
mov r12d, r9d
mov r9d, dword [rsp + 0x50]
mov ebx, ecx
mov qword [rsp + 0xa8], r15
mov r14d, r8d
mov r15d, edx
mov edx, r11d
mov r11d, dword [rsp + 0x58]
nop word [rax + rax]
mov r8d, dword [rsp + 0x4c]
add r13d, esi
add ebx, r8d
xor r11d, r13d
xor edi, ebx
add r15d, r9d
mov eax, r11d
shl r11d, 0x10
shr eax, 0x10
or eax, r11d
add r12d, eax
xor esi, r12d
mov ecx, esi
shl esi, 0xc
shr ecx, 0x14
or ecx, esi
add r13d, ecx
xor eax, r13d
mov r11d, eax
shl eax, 8
shr r11d, 0x18
or r11d, eax
mov eax, edi
shr eax, 0x10
add r12d, r11d
xor ecx, r12d
shl edi, 0x10
mov ebp, ecx
or eax, edi
shl ecx, 7
add r10d, eax
xor r8d, r10d
shr ebp, 0x19
or ebp, ecx
mov ecx, r8d
shr ecx, 0x14
shl r8d, 0xc
or ecx, r8d
add ebx, ecx
xor eax, ebx
mov edi, eax
shl eax, 8
shr edi, 0x18
or edi, eax
add r10d, edi
xor ecx, r10d
mov dword [rsp + 0x38], r10d
mov r8d, ecx
shl ecx, 7
shr r8d, 0x19
or r8d, ecx
mov ecx, dword [rsp + 0x5c]
xor ecx, r15d
mov eax, ecx
shl ecx, 0x10
shr eax, 0x10
or eax, ecx
add edx, eax
xor r9d, edx
mov ecx, r9d
shl r9d, 0xc
shr ecx, 0x14
or ecx, r9d
add r15d, ecx
xor eax, r15d
mov esi, eax
shl eax, 8
shr esi, 0x18
or esi, eax
add edx, esi
xor ecx, edx
mov dword [rsp + 0x30], edx
mov edx, dword [rsp + 0x54]
mov r9d, ecx
shl ecx, 7
add r14d, edx
shr r9d, 0x19
or r9d, ecx
mov ecx, dword [rsp + 0x60]
xor ecx, r14d
mov eax, ecx
mov r10d, dword [rsp + 0x34]
add r13d, r8d
shr eax, 0x10
add ebx, r9d
shl ecx, 0x10
xor r11d, ebx
or eax, ecx
add r10d, eax
xor edx, r10d
mov ecx, edx
shl edx, 0xc
shr ecx, 0x14
or ecx, edx
add r14d, ecx
xor eax, r14d
mov edx, eax
shl eax, 8
shr edx, 0x18
or edx, eax
add r10d, edx
xor edx, r13d
xor ecx, r10d
mov dword [rsp + 0x34], r10d
mov r10d, ecx
mov eax, edx
shr eax, 0x10
shl ecx, 7
shl edx, 0x10
or eax, edx
shr r10d, 0x19
mov edx, dword [rsp + 0x30]
or r10d, ecx
add edx, eax
add r15d, r10d
xor r8d, edx
xor edi, r15d
mov ecx, r8d
shl r8d, 0xc
shr ecx, 0x14
or ecx, r8d
add r13d, ecx
xor eax, r13d
mov r8d, eax
shl eax, 8
shr r8d, 0x18
or r8d, eax
add edx, r8d
mov dword [rsp + 0x60], r8d
mov r8d, dword [rsp + 0x34]
xor ecx, edx
mov eax, ecx
mov dword [rsp + 0x30], edx
shr eax, 0x19
shl ecx, 7
or eax, ecx
mov dword [rsp + 0x4c], eax
mov eax, r11d
shr eax, 0x10
shl r11d, 0x10
or eax, r11d
add r8d, eax
xor r9d, r8d
mov ecx, r9d
shl r9d, 0xc
shr ecx, 0x14
or ecx, r9d
add ebx, ecx
xor eax, ebx
mov r11d, eax
shl eax, 8
shr r11d, 0x18
or r11d, eax
mov eax, edi
add r8d, r11d
xor ecx, r8d
mov dword [rsp + 0x34], r8d
mov r9d, ecx
shl ecx, 7
shr r9d, 0x19
or r9d, ecx
shr eax, 0x10
shl edi, 0x10
add r14d, ebp
or eax, edi
xor esi, r14d
add r12d, eax
xor r10d, r12d
mov ecx, r10d
shl r10d, 0xc
shr ecx, 0x14
or ecx, r10d
mov r10d, dword [rsp + 0x38]
add r15d, ecx
xor eax, r15d
mov edi, eax
shl eax, 8
shr edi, 0x18
or edi, eax
add r12d, edi
xor ecx, r12d
mov eax, ecx
shl ecx, 7
shr eax, 0x19
or eax, ecx
mov dword [rsp + 0x54], eax
mov eax, esi
shl esi, 0x10
shr eax, 0x10
or eax, esi
add r10d, eax
xor ebp, r10d
mov ecx, ebp
shl ebp, 0xc
shr ecx, 0x14
or ecx, ebp
add r14d, ecx
xor eax, r14d
mov r8d, eax
shl eax, 8
shr r8d, 0x18
or r8d, eax
add r10d, r8d
mov dword [rsp + 0x5c], r8d
xor ecx, r10d
mov esi, ecx
shl ecx, 7
shr esi, 0x19
or esi, ecx
sub qword [rsp + 0xa8], 1
jne 0x140028bc0
mov ebp, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x48], r12d
mov r12, qword [rsp + 0x108]
mov dword [rsp + 0x44], r14d
mov r8d, dword [rsp + 0x44]
mov r14, qword [rsp + 0xb0]
mov dword [rsp + 0x40], r15d
mov edx, dword [rsp + 0x40]
mov r15, qword [rsp + 0x118]
mov dword [rsp + 0x3c], ebx
mov ecx, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x110]
mov dword [rsp + 0x38], edi
mov edi, dword [rsp + 0x34]
mov dword [rsp + 0x58], r11d
mov r11d, dword [rsp + 0x30]
mov dword [rsp + 0x50], r9d
mov r9d, dword [rsp + 0x48]
add eax, r13d
mov dword [r14 - 8], eax
mov eax, dword [rsp + 0x68]
add eax, ecx
mov dword [r14 - 4], eax
mov eax, dword [rsp + 0x6c]
add eax, edx
mov dword [r14], eax
mov eax, dword [rsp + 0x70]
add eax, r8d
mov dword [r14 + 4], eax
mov eax, dword [rsp + 0x74]
add eax, esi
mov dword [r14 + 8], eax
mov eax, dword [rsp + 0x78]
add eax, ebp
mov dword [r14 + 0xc], eax
mov eax, dword [rsp + 0x50]
add eax, dword [rsp + 0x7c]
mov dword [r14 + 0x10], eax
mov eax, dword [rsp + 0x54]
add eax, dword [rsp + 0x80]
mov dword [r14 + 0x14], eax
mov eax, dword [rsp + 0x84]
add eax, r9d
mov dword [r14 + 0x18], eax
mov eax, dword [rsp + 0x88]
add eax, r10d
mov dword [r14 + 0x1c], eax
mov eax, dword [rsp + 0x8c]
add eax, r11d
mov dword [r14 + 0x20], eax
mov eax, dword [rsp + 0x90]
add eax, edi
mov dword [r14 + 0x24], eax
mov eax, dword [rsp + 0x58]
add eax, dword [rsp + 0x94]
mov dword [r14 + 0x28], eax
mov eax, dword [rsp + 0x38]
add eax, dword [rsp + 0x98]
mov dword [r14 + 0x2c], eax
mov eax, dword [rsp + 0x5c]
add eax, dword [rsp + 0x9c]
mov dword [r14 + 0x30], eax
mov eax, dword [rsp + 0x60]
add eax, dword [rsp + 0xa0]
mov dword [r14 + 0x34], eax
mov eax, 0
add dword [rbx + 0x30], 1
sete al
add r14, 0x40
add dword [rbx + 0x34], eax
sub r12, 1
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0x108], r12
jne 0x140028ab0
mov r13, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0x100]
mov rdi, qword [rsp + 0xc8]
add rsp, 0xd8
pop r15
pop r14
pop r12
pop rbx
ret
lea r9, str.src_lib_stream_chacha_chacha.cpp
mov dword [rsp + 0x20], 0x70
lea r8, str.chacha
lea rdx, str.Valid_rounds
lea rcx, str.rounds___2__0
call fcn.14000e220
int3