Function at 0x140006882
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, 0x108
mov r12, rdx
mov r14, rcx
cmp byte [rdx + 0xc1], 0
je 0x140006a5e
mov rax, qword [r12 + 0xa0]
lea rcx, [rax - 1]
imul rcx, rcx, 0xb0
add rcx, qword [r12 + 0x98]
xor esi, esi
cmp rax, 1
cmovae rsi, rcx
lea rdx, [0x14033c448]
mov rcx, rsi
call fcn.14000d02a
mov rax, qword [rsi + 0x68]
mov rdi, qword [rsi + 0x70]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdi
cmp rdi, 0xffff
jbe 0x140006910
lea rdx, [0x140439683]
mov r8d, 0x1e
mov cl, reloc.WS2_32.dll_setsockopt
call fcn.140095057
jmp 0x140006a33
lea r15, [rsp + 0x50]
lea r13, [rsp + 0x40]
lea rbp, [0x140439712]
test rdi, rdi
je 0x140006a45
cmp rdi, 4
jb 0x140006d6b
mov rcx, r15
mov rdx, r13
call fcn.1401c0234
cmp word [rsp + 0x50], 0
jne 0x140006e0b
movzx ebx, word [rsp + 0x52]
mov word [rsp + 0x36], bx
mov rcx, r15
mov rdx, r13
call fcn.1401c0234
cmp word [rsp + 0x50], 0
jne 0x140006e0b
cmp bx, 1
je 0x140006d7a
cmp bx, 0x20
jb 0x1400069cd
movzx ecx, word [rsp + 0x52]
add rdi, 0xfffffffffffffffc
xor eax, eax
cmp rax, 0x62
je 0x14000699c
lea rdx, [rax + 2]
cmp word [rax + rbp], bx
mov rax, rdx
jne 0x140006987
jmp 0x1400069cd
cmp rdi, rcx
jb 0x140006d89
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
lea r9, [0x140439830]
call fcn.140003331
mov rdi, rdx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
jmp 0x140006921
lea rax, [rsp + 0x36]
lea rcx, [rsp + 0xf8]
mov qword [rcx], rax
lea rax, [0x14008bbc0]
mov qword [rcx + 8], rax
lea rax, reloc.WS2_32.dll_bind
lea rdx, [rsp + 0x50]
mov qword [rdx], rax
mov eax, 1
mov qword [rdx + 8], rax
lea rbp, str.Extra_data_header_ID__requires_crate_feature__unreserved_
mov qword [rdx + 0x10], rbp
mov qword [rdx + 0x18], 2
mov qword [rdx + 0x20], rcx
mov qword [rdx + 0x28], rax
lea rsi, [rsp + 0xc0]
mov rcx, rsi
call fcn.14007b280
mov rcx, rsi
call fcn.1401c040b
xor ecx, ecx
mov qword [r14], rcx
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rdx
jmp 0x140006ce6
cmp byte [r12 + 0xc2], 0
je 0x140006d9d
and word [r12 + 0xc1], 0
lea r15, [r12 + 0x20]
lea rsi, [rsp + 0x50]
mov rcx, rsi
mov rdx, r15
xor r8d, r8d
xor r9d, r9d
call fcn.140005a70
mov rax, qword [rsi]
cmp rax, 4
jne 0x140006b87
lea rax, [rsp + 0x50]
mov ecx, recvfrom
mov rdi, rax
mov rsi, r15
rep movsq qword [rdi], qword [rsi]
and qword [r12 + 0x20], 0
cmp dword [rax], 1
jne 0x140006f96
lea rdi, [rsp + 0x58]
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x140006bf5
mov qword [rsp + 0x38], rax
mov eax, dword [r12 + 0xc]
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xe0], xmm2
movaps xmmword [rsp + 0xc0], xmm0
mov r8, qword [rsp + 0xd8]
cmp r8, 0xb
jbe 0x140006f7d
shr eax, 0x18
mov r13, qword [rsp + 0xd0]
mov byte [r13 + 0xb], al
mov edx, dword [rsp + 0xe8]
mov edi, dword [rsp + 0xe0]
mov eax, dword [rsp + 0xe4]
xor ecx, ecx
lea r9, [0x14043986c]
mov r10d, 0xff
cmp r8, rcx
je 0x140006b99
mov r11b, byte [r13 + rcx]
mov ebx, edx
or ebx, 3
mov ebp, ebx
and ebp, 0xfffffffe
mov esi, edi
shr esi, 8
xor dil, r11b
movzx edi, dil
xor esi, dword [r9 + rdi*4]
imul ebp, ebx
mov edi, esi
and esi, r10d
add esi, eax
imul eax, esi, 0x8088405
inc eax
mov esi, eax
shr esi, 0x18
mov ebx, edx
and edx, r10d
xor edx, esi
shr ebp, 8
shr ebx, 8
xor ebx, dword [r9 + rdx*4]
xor bpl, r11b
mov byte [r13 + rcx], bpl
inc rcx
mov edx, ebx
jmp 0x140006b2c
movups xmm0, xmmword [rsp + 0x58]
movups xmmword [r14 + 8], xmm0
mov qword [r14], rax
jmp 0x140006ce6
lea rcx, [rsp + 0xc0]
mov dword [rcx + 0x28], edx
mov dword [rcx + 0x20], edi
mov dword [rcx + 0x24], eax
mov rdx, r13
call fcn.1401bfd6c
test rax, rax
je 0x140006c21
mov rsi, rax
lea rcx, [rsp + 0xc0]
call fcn.14000be2e
mov qword [r14 + 8], rsi
and qword [r14], 0
cmp dword [rsp + 0x50], 1
lea rcx, [rsp + 0x58]
jne 0x140006c78
cmp qword [rsp + 0x68], 0
jne 0x140006ce6
call fcn.14000ba3f
jmp 0x140006ce6
lea rsi, [r12 + 0x28]
mov rcx, r15
call fcn.14000bb30
mov qword [r15], 1
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmm2, xmmword [rdi + 0x20]
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
jmp 0x140006c8e
mov rsi, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
mov rdx, r13
call fcn.14007ab60
mov rcx, r15
call fcn.14000bb30
mov qword [r12 + 0x20], 1
mov qword [r12 + 0x28], rsi
and qword [r12 + 0x38], 0
cmp dword [rsp + 0x50], 1
jne 0x140006c84
cmp qword [rsp + 0x38], 0
je 0x140006c8e
cmp qword [rsp + 0x68], 0
jne 0x140006c8e
lea rcx, [rsp + 0x58]
call fcn.14000ba3f
jmp 0x140006c8e
lea rcx, [rsp + 0x50]
call fcn.14000bb30
jmp 0x140006ce6
lea rcx, [rsp + 0x50]
call fcn.14000bb30
mov rcx, r15
call fcn.140005a17
cmp byte [r12 + 0xc3], 0
je 0x140006cb5
xor eax, eax
mov byte [r12 + 0xc0], al
mov byte [r12 + 0xc3], al
jmp 0x140006cdf
mov rbx, rax
mov rax, qword [r12 + 0xa0]
lea rcx, [rax - 1]
imul rcx, rcx, 0xb0
add rcx, qword [r12 + 0x98]
xor esi, esi
cmp rax, 1
cmovae rsi, rcx
jae 0x140006cfa
mov qword [r14], 4
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [r12 + 0xc]
mov dword [rsi + 0x98], eax
mov rax, qword [r12 + 0x18]
mov qword [rsi + 0x10], rax
mov rdx, qword [rbx]
lea rdi, [rsp + 0x50]
mov rcx, rdi
call fcn.140004ad6
cmp qword [rdi], 0
jne 0x140006d59
lea rdi, [rsp + 0x50]
mov r15, qword [rdi + 8]
mov rax, r15
sub rax, qword [r12 + 0x10]
mov qword [rsi + 8], rax
mov r9, qword [rsi + 0x18]
add r9, 0xe
mov rdx, qword [rbx]
mov rcx, rdi
xor r8d, r8d
call fcn.140154ba0
cmp qword [rdi], 0
je 0x140006e15
mov rax, qword [rsp + 0x58]
mov qword [r14 + 8], rax
and qword [r14], 0
jmp 0x140006ce6
lea rdx, [0x1404396a1]
mov r8d, 0x1c
jmp 0x140006d96
lea rdx, str.No_custom_ZIP64_extra_data_allowed
mov r8d, 0x22
jmp 0x140006d96
lea rdx, str.Extra_data_size_exceeds_extra_field
mov r8d, 0x23
mov cl, 0x27
jmp 0x140006906
lea r15, [r12 + 0x20]
mov rcx, r15
call fcn.140005a17
mov rdi, rax
mov rdx, qword [rsi + 0x68]
mov r8, qword [rsi + 0x70]
mov rcx, rax
call fcn.1401bfd6c
test rax, rax
jne 0x140006a33
mov rbx, qword [rsi + 0x70]
add rbx, qword [rsi + 0x28]
mov qword [r12 + 0x10], rbx
mov qword [rsi + 0x28], rbx
mov al, byte [rsi + 0xaa]
mov byte [rsp + 0x38], al
mov rbp, qword [rsi + 0x70]
mov r9, qword [rsi + 0x18]
add r9, 0x1c
mov rdx, qword [rdi]
lea r13, [rsp + 0x50]
mov rcx, r13
xor r8d, r8d
call fcn.140154ba0
cmp qword [r13], 0
je 0x140006e8c
mov rax, qword [rsp + 0x58]
jmp 0x140006a33
mov edx, dword [rsi + 0x98]
mov rcx, rbx
call fcn.14003c2ac
test rax, rax
jne 0x140006d5e
cmp byte [rsi + 0xaa], 0
je 0x140006f0d
mov rax, qword [rsi + 0x18]
mov rcx, qword [rsi + 0x40]
lea r9, [rax + rcx]
add r9, 0x22
mov rdx, qword [rbx]
lea rdi, [rsp + 0x50]
mov rcx, rdi
xor r8d, r8d
call fcn.140154ba0
cmp qword [rdi], 0
jne 0x140006d59
mov rdx, qword [rsi + 0x10]
mov rcx, rbx
call fcn.14003c2eb
test rax, rax
jne 0x140006d5e
mov rdx, qword [rsi + 8]
mov rcx, rbx
call fcn.14003c2eb
jmp 0x140006f4f
lea edx, [rbp + 0x14]
cmp byte [rsp + 0x38], 0
cmove edx, ebp
mov rcx, rdi
call fcn.14003c26c
test rax, rax
jne 0x140006a33
mov rdx, qword [rdi]
lea rdi, [rsp + 0x50]
mov rcx, rdi
xor r8d, r8d
mov r9, rbx
call fcn.140154ba0
cmp qword [rdi], 0
jne 0x140006e0b
movzx r8d, word [rsi + 0xa0]
mov r9d, dword [rsi + 0x90]
mov eax, dword [rsi + 0x94]
mov dword [rsp + 0x20], eax
lea rsi, [rsp + 0x50]
mov rcx, rsi
mov rdx, r15
call fcn.140005a70
mov rcx, qword [rsi]
cmp rcx, 4
je 0x140006a54
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
jmp 0x140006a35
mov rdx, qword [rsi + 8]
mov rax, rdx
shr rax, 0x20
je 0x140006f33
lea rdx, [0x14033c1a3]
mov r8d, 0x22
mov cl, 0x27
call fcn.1400e600e
jmp 0x140006d5e
mov rcx, rbx
call fcn.14003c2ac
test rax, rax
jne 0x140006d5e
mov edx, dword [rsi + 0x10]
mov rcx, rbx
call fcn.14003c2ac
test rax, rax
jne 0x140006d5e
mov rdx, qword [rbx]
lea rsi, [rsp + 0x50]
mov rcx, rsi
xor r8d, r8d
mov r9, r15
call fcn.140154ba0
cmp qword [rsi], 0
jne 0x140006d59
jmp 0x140006ca1
lea rax, str.C:Users_root.cargo_registry_srcgithub.com_1ecc6299db9ec823zip_0.6.6_srczipcrypto.rs
mov ecx, ntohs
mov rdx, r8
mov r8, rax
call fcn.140332c70
ud2
lea rcx, [0x1404122e4]
lea r8, [0x14033c430]
mov edx, 0x28
call fcn.140332d10
ud2