Function at 0x424ab0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x28
test rcx, rcx
je 0x4247ca
xor eax, eax
mov qword [rcx + 0x8c], 0
mov qword [rcx + 0x94], 0
mov word [rcx + 0x44e8], ax
xor eax, eax
mov qword [rcx + 0x9c], 0
mov qword [rcx + 0xa4], 0
mov qword [rcx + 0xac], 0
mov dword [rcx + 0xb4], 0
add rsp, 0x28
ret
lea rdx, str.src_prngs_chacha20.c
lea rcx, str.prng___NULL
mov r8d, 0x27
call fcn.0041f640
nop
nop
nop word cs:[rax + rax]
push rbx
sub rsp, 0x20
test r8, r8
mov rbx, rdx
mov rax, r8
je 0x424862
test rcx, rcx
je 0x424894
test rdx, rdx
je 0x42487b
cmp dword [rdx], 0x27
jbe 0x424830
cmp word [r8 + 0x44e8], 0
jne 0x424841
mov eax, 9
add rsp, 0x20
pop rbx
ret
mov eax, 6
mov dword [rdx], 0x28
add rsp, 0x20
pop rbx
ret
mov rdx, rcx
mov r8d, 0x28
mov rcx, rax
call fcn.00425230
test eax, eax
jne 0x42481e
mov dword [rbx], 0x28
add rsp, 0x20
pop rbx
ret
lea rdx, str.src_prngs_chacha20.c
lea rcx, str.prng___NULL
mov r8d, 0x9d
call fcn.0041f640
lea rdx, str.src_prngs_chacha20.c
lea rcx, [0x004d9923]
mov r8d, 0x9f
call fcn.0041f640
lea rdx, str.src_prngs_chacha20.c
lea rcx, [0x004d9917]
mov r8d, 0x9e
call fcn.0041f640
nop
nop
push rsi
push rbx
sub rsp, 0x28
test r8, r8
je 0x424a7a
test rcx, rcx
je 0x424a93
cmp edx, 0x27
mov eax, 0x10
jbe 0x424a42
lea ebx, [rdx - 1]
xor eax, eax
xor r9d, r9d
mov word [r8 + 0x44e8], ax
mov qword [r8 + 0x8c], 0
mov r10d, 0xcccccccd
lea r11, [rcx + rbx + 1]
and ebx, 3
mov qword [r8 + 0x94], 0
mov qword [r8 + 0x9c], 0
mov qword [r8 + 0xa4], 0
mov qword [r8 + 0xac], 0
mov dword [r8 + 0xb4], 0
je 0x42499c
add rcx, 1
movzx edx, byte [rcx - 1]
mov r9d, 1
xor byte [r8 + 0x8c], dl
cmp rbx, 1
mov dword [r8 + 0xb4], 1
je 0x42499c
cmp rbx, 2
jne 0x424a50
add rcx, 1
lea edx, [r9 + 1]
mov eax, r9d
movzx ebx, byte [rcx - 1]
mov dword [r8 + 0xb4], edx
mul r10d
shr edx, 5
lea esi, [rdx + rdx*4]
shl esi, 3
sub r9d, esi
xor byte [r8 + r9 + 0x8c], bl
mov r9d, dword [r8 + 0xb4]
lea eax, [r9 + 1]
movzx esi, byte [rcx]
lea rbx, [rcx + 1]
mov dword [r8 + 0xb4], eax
mov eax, r9d
mul r10d
shr edx, 5
lea eax, [rdx + rdx*4]
shl eax, 3
sub r9d, eax
xor byte [r8 + r9 + 0x8c], sil
cmp rbx, r11
je 0x424a40
mov r9d, dword [r8 + 0xb4]
movzx ebx, byte [rcx + 1]
add rcx, 4
mov eax, r9d
lea esi, [r9 + 1]
mul r10d
mov dword [r8 + 0xb4], esi
shr edx, 5
lea esi, [rdx + rdx*4]
shl esi, 3
sub r9d, esi
xor byte [r8 + r9 + 0x8c], bl
mov r9d, dword [r8 + 0xb4]
movzx ebx, byte [rcx - 2]
lea eax, [r9 + 1]
mov dword [r8 + 0xb4], eax
mov eax, r9d
mul r10d
shr edx, 5
lea esi, [rdx + rdx*4]
shl esi, 3
sub r9d, esi
xor byte [r8 + r9 + 0x8c], bl
mov r9d, dword [r8 + 0xb4]
jmp 0x42496c
xor eax, eax
add rsp, 0x28
pop rbx
pop rsi
ret
lea eax, [r9 + 1]
movzx esi, byte [rcx]
and r9d, 1
add rcx, 1
mov dword [r8 + 0xb4], eax
xor byte [r8 + r9 + 0x8c], sil
mov r9d, dword [r8 + 0xb4]
jmp 0x424968
lea rdx, str.src_prngs_chacha20.c
lea rcx, str.prng___NULL
mov r8d, 0xb9
call fcn.0041f640
lea rdx, str.src_prngs_chacha20.c
lea rcx, [0x004d9902]
mov r8d, 0xba
call fcn.0041f640
nop
nop dword [rax]
push r12
push rbp
mov eax, 0x48c0
push rdi
push rsi
push rbx
call fcn.00448fd0
sub rsp, rax
movabs rbx, 0x273475e4030dc947
mov esi, 0xffffdebd
mov ecx, 0xffffd8be
mov qword [rsp + 0x4c], rbx
mov word [rsp + 0x54], si
lea rbx, [rsp + 0x3d0]
lea rsi, [rsp + 0x60]
movdqa xmm0, xmmword [0x004d99b0]
movabs rdi, 0x911a7f3759effabc
mov r8d, 0xffffa61a
movabs rdx, 0x58f012b9526b259
movdqa xmm1, xmmword [0x004d99c0]
xor r9d, r9d
mov qword [rsp + 0x45c], 0
mov qword [rsp + 0x464], 0
xor r12d, r12d
movdqa xmm2, xmmword [0x004d99d0]
mov word [rsp + 0x4a], cx
mov qword [rsp + 0x56], rdi
mov rcx, rsi
mov word [rsp + 0x5e], r8w
mov byte [rsp + 0x90], 0x31
mov r8d, 0xcccccccd
movaps xmmword [rsp + 0x60], xmm0
mov byte [rsp + 0x91], 0x32
mov dword [rsp + 0x3c], 0x12c
lea rdi, [rsi + 0x32]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x80], xmm2
mov qword [rsp + 0x42], rdx
mov word [rsp + 0x48b8], r9w
mov qword [rbx + 0x9c], 0
mov qword [rbx + 0xa4], 0
mov qword [rbx + 0xac], 0
jmp 0x424ca9
mov eax, r10d
lea ebp, [r12 + 2]
movzx r9d, byte [rcx + 1]
mul r8d
add rcx, 7
mov eax, ebp
shr edx, 5
lea r11d, [rdx + rdx*4]
mul r8d
shl r11d, 3
sub r10d, r11d
shr edx, 5
xor byte [rsp + r10 + 0x45c], r9b
lea r9d, [r12 + 3]
lea r11d, [rdx + rdx*4]
movzx r10d, byte [rcx - 5]
mov eax, r9d
shl r11d, 3
sub ebp, r11d
mul r8d
xor byte [rsp + rbp + 0x45c], r10b
lea r10d, [r12 + 4]
movzx ebp, byte [rcx - 4]
mov eax, r10d
shr edx, 5
lea r11d, [rdx + rdx*4]
mul r8d
shl r11d, 3
sub r9d, r11d
lea r11d, [r12 + 5]
shr edx, 5
xor byte [rsp + r9 + 0x45c], bpl
movzx r9d, byte [rcx - 3]
lea ebp, [rdx + rdx*4]
mov eax, r11d
mul r8d
shl ebp, 3
sub r10d, ebp
xor byte [rsp + r10 + 0x45c], r9b
lea r10d, [r12 + 6]
shr edx, 5
lea ebp, [rdx + rdx*4]
movzx r9d, byte [rcx - 2]
add r12d, 7
mov eax, r10d
mov dword [rsp + 0x484], r12d
mul r8d
shl ebp, 3
sub r11d, ebp
xor byte [rsp + r11 + 0x45c], r9b
movzx r11d, byte [rcx - 1]
shr edx, 5
lea r9d, [rdx + rdx*4]
shl r9d, 3
sub r10d, r9d
xor byte [rsp + r10 + 0x45c], r11b
mov eax, r12d
lea r11, [rcx + 1]
movzx ebp, byte [rcx]
mul r8d
mov eax, r12d
lea r10d, [r12 + 1]
mov dword [rsp + 0x484], r10d
shr edx, 5
lea r9d, [rdx + rdx*4]
shl r9d, 3
sub eax, r9d
xor byte [rsp + rax + 0x45c], bpl
cmp r11, rdi
jne 0x424bc0
lea rdx, [rbx + 0x8c]
mov r9d, 0x14
mov r8d, 0x20
mov rcx, rbx
call fcn.004252a0
test eax, eax
je 0x424d12
add rsp, 0x48c0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
lea rdx, [rbx + 0xac]
xor r9d, r9d
mov r8d, 8
mov rcx, rbx
call fcn.004251a0
test eax, eax
jne 0x424d04
lea rdi, [rsp + 0x1d0]
mov qword [rbx + 0x94], 0
mov qword [rbx + 0x9c], 0
mov qword [rbx + 0xa4], 0
mov qword [rbx + 0xac], 0
mov r12d, 1
mov qword [rbx + 0x8c], 0
mov r8d, 0xa
mov rdx, rdi
mov rcx, rbx
mov dword [rsp + 0x484], 0
mov word [rsp + 0x48b8], r12w
call fcn.00425230
test eax, eax
je 0x424db0
mov eax, 9
add rsp, 0x48c0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
lea rbp, str.CHACHA_PRNG
lea r8, [rsp + 0x42]
mov rcx, rdi
mov dword [rsp + 0x28], 1
mov r9d, 0xa
mov edx, 0xa
mov qword [rsp + 0x20], rbp
call fcn.0041f620
mov ecx, eax
mov eax, 5
test ecx, ecx
jne 0x424d04
cmp word [rsp + 0x48b8], 0
je 0x424d9c
mov r8d, 0x1f4
mov rdx, rdi
mov rcx, rbx
call fcn.00425230
test eax, eax
jne 0x424d9c
cmp word [rsp + 0x48b8], 0
je 0x424d9c
lea r12, [rsp + 0xa0]
mov r8d, 0x28
mov rcx, rbx
mov rdx, r12
call fcn.00425230
test eax, eax
jne 0x424d04
movzx r11d, byte [rsi]
mov r8d, 0xcccccccd
mov r10d, 1
xor byte [rsp + 0xa0], r11b
mov eax, r10d
movzx r11d, byte [rsi + r10]
mul r8d
mov eax, r10d
shr edx, 5
lea r9d, [rdx + rdx*4]
shl r9d, 3
sub eax, r9d
lea r9, [r10 + 1]
xor byte [rsp + rax + 0xa0], r11b
movzx r11d, byte [rsi + r10 + 1]
mov eax, r9d
mul r8d
shr edx, 5
lea ecx, [rdx + rdx*4]
shl ecx, 3
sub r9d, ecx
xor byte [rsp + r9 + 0xa0], r11b
lea r9, [r10 + 2]
movzx r11d, byte [rsi + r10 + 2]
mov eax, r9d
mul r8d
shr edx, 5
lea ecx, [rdx + rdx*4]
shl ecx, 3
sub r9d, ecx
xor byte [rsp + r9 + 0xa0], r11b
lea r9, [r10 + 3]
movzx r11d, byte [rsi + r10 + 3]
mov eax, r9d
mul r8d
shr edx, 5
lea ecx, [rdx + rdx*4]
shl ecx, 3
sub r9d, ecx
xor byte [rsp + r9 + 0xa0], r11b
lea r9, [r10 + 4]
movzx r11d, byte [rsi + r10 + 4]
mov eax, r9d
mul r8d
shr edx, 5
lea ecx, [rdx + rdx*4]
shl ecx, 3
sub r9d, ecx
xor byte [rsp + r9 + 0xa0], r11b
lea r9, [r10 + 5]
movzx r11d, byte [rsi + r10 + 5]
mov eax, r9d
mul r8d
shr edx, 5
lea ecx, [rdx + rdx*4]
shl ecx, 3
sub r9d, ecx
xor byte [rsp + r9 + 0xa0], r11b
lea r9, [r10 + 6]
movzx r11d, byte [rsi + r10 + 6]
mov eax, r9d
mul r8d
shr edx, 5
lea ecx, [rdx + rdx*4]
shl ecx, 3
add r10, 7
sub r9d, ecx
xor byte [rsp + r9 + 0xa0], r11b
cmp r10, 0x32
jne 0x424e4f
mov r9d, 0x14
mov r8d, 0x20
mov rdx, r12
mov rcx, rbx
call fcn.004252a0
test eax, eax
jne 0x424d04
lea rdx, [r12 + 0x20]
xor r9d, r9d
mov r8d, 8
mov rcx, rbx
call fcn.004251a0
test eax, eax
jne 0x424d04
mov edx, 0x28
mov rcx, r12
call fcn.00420130
cmp word [rsp + 0x48b8], 0
je 0x424d9c
mov r8d, 0x1f4
mov rdx, rdi
mov rcx, rbx
call fcn.00425230
test eax, eax
jne 0x424d9c
lea rdx, [rsp + 0x3c]
mov r8, rbx
mov rcx, r12
call 0x4247f0
test eax, eax
jne 0x424d04
cmp word [rsp + 0x48b8], 0
je 0x424d9c
mov r8d, 0x1f4
mov rdx, rdi
mov rcx, rbx
call fcn.00425230
test eax, eax
jne 0x424d9c
cmp word [rsp + 0x48b8], 0
je 0x424d9c
mov r8d, 0xa
mov rdx, rdi
mov rcx, rbx
call fcn.00425230
test eax, eax
jne 0x424d9c
lea r8, [rsp + 0x4c]
mov dword [rsp + 0x28], 2
mov qword [rsp + 0x20], rbp
mov r9d, 0xa
mov edx, 0xa
mov rcx, rdi
call fcn.0041f620
test eax, eax
je 0x425066
mov eax, 5
jmp 0x424d04
mov rcx, rbx
mov word [rsp + 0x48b8], 0
call fcn.00425140
test eax, eax
jne 0x424d04
mov edx, dword [rsp + 0x3c]
mov r8, rbx
mov rcx, r12
call 0x4248b0
test eax, eax
jne 0x424d04
mov rcx, rbx
call fcn.00424290
test eax, eax
jne 0x424d04
cmp word [rsp + 0x48b8], 0
je 0x424d9c
mov r8d, 0x1f4
mov rdx, rdi
mov rcx, rbx
call fcn.00425230
test eax, eax
jne 0x424d9c
cmp word [rsp + 0x48b8], 0
je 0x424d9c
mov r8d, 0xa
mov rdx, rdi
mov rcx, rbx
call fcn.00425230
test eax, eax
jne 0x424d9c
lea r8, [rsp + 0x56]
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x20], rbp
mov r9d, 0xa
mov edx, 0xa
mov rcx, rdi
call fcn.0041f620
test eax, eax
jne 0x42505c
mov rcx, rbx
mov word [rsp + 0x48b8], 0
call fcn.00425140
jmp 0x424d04