Function at 0x1400abe90
Capabilities:
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov r14, r9
mov r15, r8
mov rsi, rdx
invalid
mov rdi, rcx
movzx eax, byte [rdx]
test rax, rax
je 0x1400abf58
cmp eax, 1
jne 0x1400abf80
lea rdx, [rsi + 8]
mov rcx, rdi
mov r8, r15
mov r9, r14
call fcn.1400abce0
mov eax, dword [rsi + 0x28]
mov r11d, dword [rsi + 0x20]
mov ecx, dword [rsi + 0x24]
xor edx, edx
lea r8, [0x14014bbc0]
mov r9d, 0xff
cmp r14, rdx
je 0x1400ac196
mov edi, eax
or edi, 3
mov r10d, edi
and r10d, 0xfffffffe
imul r10d, edi
shr r10d, 8
xor r10b, byte [r15 + rdx]
mov edi, r11d
shr edi, 8
xor r11b, r10b
movzx r11d, r11b
xor edi, dword [r8 + r11*4]
mov dword [rsi + 0x20], edi
mov r11d, edi
and edi, r9d
add edi, ecx
imul ecx, edi, 0x8088405
inc ecx
mov dword [rsi + 0x24], ecx
mov edi, ecx
shr edi, 0x18
mov ebx, eax
shr ebx, 8
and eax, r9d
xor eax, edi
xor ebx, dword [r8 + rax*4]
mov dword [rsi + 0x28], ebx
mov byte [r15 + rdx], r10b
inc rdx
mov eax, ebx
jmp 0x1400abeef
add rsi, 8
mov rcx, rdi
mov rdx, rsi
mov r8, r15
mov r9, r14
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400abce0
mov rcx, qword [rsi + 0x30]
test rcx, rcx
je case.0x14008b196.474
lea r12, [rsi + 8]
cmp rcx, r14
cmovae rcx, r14
lea r9, str.C:Userspc.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_src_aes.rs
mov rdx, r15
mov r8, r14
call fcn.140001030
mov r9, rdx
lea rbx, [rsp + 0x40]
mov rcx, rbx
mov ecx, ebx
mov rdx, r12
mov r8, rax
call fcn.1400abce0
std
invalid
dec dword [rax - 0x7d]
cmp eax, dword [rax]
je 0x1400abfe2
mov rax, qword [rsp + 0x48]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
jmp 0x1400ac196
add dword [rax], eax
invalid
mov qword [rsp + 0x38], r12
mov rdx, qword [rsp + 0x48]
sub qword [rsi + 0x30], rdx
lea rbx, [rsi + 0x38]
lea rax, str.C:Userspc.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_src_aes.rs
lea eax, [0x14014b7b0]
mov qword [rsp + 0x20], rax
xor ecx, ecx
mov qword [rsp + 0x30], rdx
mov r8, r15
mov r9, r14
call case.0x14001d1ef.166
dec dword [rax - 0x77]
invalid
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x40], rbx
lea rdx, [rsi + 0x98]
mov cl, byte [rsi + 0xd8]
mov ds, eax
add byte [rax], al
add byte [rdi + rcx - 0x4a], al
jmp 0x1404b7c75
add byte [rax], al
invalid
sub r12, r13
mov rbx, rbp
sub rbx, r12
mov qword [rsp + 0x28], rdx
jae case.0x14008b196.493
invalid
lea r9, [0x14014b080]
mov rbx, rax
mov r8d, 0x40
add byte [rax], al
add byte [rcx + rcx*4 - 0x17], cl
mov ecx, ebp
call fcn.1400475dd
mov r8, rdx
lea r9, [0x14014b098]
mov rcx, rbp
mov rdx, rax
call fcn.140001030
cmc
dec dword [rax - 0x73]
or eax, 0x9f036
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, rbx
mov r9, rbp
call fcn.1400309f6
imul ecx, dword [rcx - 8], 0xed014cff
jmp 0x1400ac150
test cl, cl
je 0x1400ac0f0
mov rbp, rax
add rbp, r12
add ebp, esp
lea r9, [0x14014b020]
mov qword [rsp + 0x70], rax
mov r8d, 0x40
mov rcx, r13
mov r13, rdx
call fcn.1400475dd
lea rcx, [0x14014b038]
lea ecx, [0x14014b038]
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, qword [rsp + 0x70]
mov r9, r12
mov ecx, esp
call fcn.1400309f6
lea rcx, [rsp + 0x40]
lea ecx, [rsp + 0x40]
mov r8d, 1
mov rdx, r13
call case.0x14008bdb0.313
add byte [rax], al
mov rax, rbp
jmp case.0x1400875d4.466
invalid
mov rbx, rbp
mov r13, rbx
and r13, 0xffffffffffffffc0
and ebp, 0xffffffc0
mov ebp, ebx
and ebp, 0x3f
in eax, 0x3f
add r13, rax
cmp rbx, 0x40
jb 0x1400ac11c
shr rbx, 6
lea rcx, [rsp + 0x40]
mov rdx, rax
mov r8, rbx
mov eax, ebx
call case.0x14008bdb0.313
lea r9, [0x14014b050]
mov r8d, 0x40
mov rcx, rbp
mov rdx, qword [rsp + 0x28]
and al, 0x28
call fcn.140001030
lea rcx, [0x14014b068]
sub ebp, edi
or dword [rax], eax
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r13
mov r9, rbp
mov ecx, ebp
call fcn.1400309f6
mov byte [rsi + 0xd8], bpl
mov rbx, qword [rsi + 0x20]
mov r12, qword [rsi + 0x28]
lea r9, str.C:Userspc.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_src_aes.rs
or eax, 0x9f662
mov r13, qword [rsp + 0x30]
mov rcx, r13
mov rdx, r15
mov edx, edi
mov r8, r14
call fcn.140001030
mov bh, 0x4e
cmc
invalid
mov r8, rdx
mov rcx, rbx
mov rdx, rax
call qword [r12 + 0x18]
call qword [rsp + 0x18]
cmp qword [rsi + 0x30], 0
je 0x1400ac1aa
invalid
cmp byte [rsi + 0xe0], 0
jne 0x1400ac338
lea r15, [rsp + 0x80]
lea rax, [0x14014b878]