Function at 0x14003c2b0
Capabilities:
Terminate thread

Disassembly:
push rbx
push rbp
push r12
push r13
push r14
push r15
mov eax, 0x108
call fcn.14005d7e0
sub rsp, rax
mov rax, qword [0x1400ac2c8]
xor rax, rsp
mov qword [rsp + 0xc0], rax
test edx, edx
mov dword [rsp + 0x38], edx
lea rax, [0x140088420]
mov qword [rsp + 0x78], r8
mov r15, rcx
lea rbx, [rsp + 0x38]
cmove rbx, rax
lea rdx, str.multiblock_input_buffer
mov eax, 5
mov qword [rsp + 0x40], rbx
mov r14d, 1
cmove r14d, eax
movsxd rcx, dword [rbx + r14*4 - 4]
call fcn.14004ece0
mov ecx, dword [rbx + r14*4 - 4]
lea rdx, str.multiblock_output_buffer
add ecx, 0x400
mov r13, rax
movsxd rcx, ecx
call fcn.14004ece0
mov r12, rax
call sub.libcrypto_3_x64.dll_EVP_CIPHER_CTX_new
mov qword [rsp + 0x50], rax
mov rbp, rax
test rax, rax
jne 0x14003c35b
lea rcx, str.failed_to_allocate_cipher_context_n
call fcn.14004e060
lea rax, [rsp + 0x90]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, r15
mov rcx, rbp
call sub.libcrypto_3_x64.dll_EVP_EncryptInit_ex
test eax, eax
jne 0x14003c389
lea rcx, str.failed_to_initialise_cipher_context_n
call fcn.14004e060
mov rcx, rbp
call sub.libcrypto_3_x64.dll_EVP_CIPHER_CTX_get_key_length
test eax, eax
jns 0x14003c3b0
mov rcx, qword [0x1400ac6a8]
lea rdx, str.Impossible_negative_key_length:__d_n
mov r8d, eax
call sub.libcrypto_3_x64.dll_BIO_printf
jmp 0x14003c8ea
mov qword [rsp + 0x158], rsi
lea rdx, str.evp_cipher_key
movsxd rsi, eax
mov rcx, rsi
mov qword [rsp + 0x100], rdi
movaps xmmword [rsp + 0xf0], xmm6
call fcn.14004ece0
mov rdx, rax
mov rcx, rbp
mov rbx, rax
call sub.libcrypto_3_x64.dll_EVP_CIPHER_CTX_rand_key
test eax, eax
jg 0x14003c3f8
lea rcx, str.failed_to_generate_random_cipher_key_n
call fcn.14004e060
xor edi, edi
mov r9, rbx
xor r8d, r8d
mov qword [rsp + 0x20], rdi
xor edx, edx
mov rcx, rbp
call sub.libcrypto_3_x64.dll_EVP_EncryptInit_ex
test eax, eax
jne 0x14003c41f
lea rcx, str.failed_to_set_cipher_key_n
call fcn.14004e060
mov r9d, 0xe7d
lea r8, str.apps_speed.c
mov rdx, rsi
mov rcx, rbx
call sub.libcrypto_3_x64.dll_CRYPTO_clear_free
mov edx, 0x17
lea r9, [rsp + 0xa0]
mov rcx, rbp
lea r8d, [rdx + 9]
call sub.libcrypto_3_x64.dll_EVP_CIPHER_CTX_ctrl
test eax, eax
jg 0x14003c460
lea rcx, str.failed_to_set_AEAD_key_n
call fcn.14004e060
mov rcx, r15
call sub.libcrypto_3_x64.dll_EVP_CIPHER_get0_name
mov qword [rsp + 0x30], rax
mov rcx, rax
test rax, rax
jne 0x14003c486
lea rcx, str.failed_to_get_cipher_name_n
call fcn.14004e060
mov rcx, qword [rsp + 0x30]
mov r15, qword [rsp + 0x40]
lea r8, str.DT:_s:_d:_d_n
mov qword [rsp + 0x48], rdi
nop word [rax + rax]
mov rax, qword [rsp + 0x78]
lea rdx, str.Doing__s_for__ds_on__d_size_blocks:
cmp dword [0x1400ac8d4], edi
cmovne rdx, r8
mov r8, rcx
mov ebx, dword [rax]
mov r9d, ebx
mov eax, dword [r15]
mov rcx, qword [0x1400ac6a8]
mov dword [rsp + 0x20], eax
call sub.libcrypto_3_x64.dll_BIO_printf
mov rcx, qword [0x1400ac6a8]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xb]
call sub.libcrypto_3_x64.dll_BIO_ctrl
imul eax, ebx, 0x3e8
xor ecx, ecx
mov dword [0x1400ac8d0], 1
mov dword [0x1400ac8dc], eax
call fcn.14003bb50
mov eax, dword [0x1400ac8d0]
mov esi, edi
test eax, eax
je 0x14003c600
cmp esi, 0x7fffffff
jge 0x14003c600
movsxd rbx, dword [r15]
lea r9, [rsp + 0x58]
xor eax, eax
mov dword [rsp + 0x88], 0x20317
mov edx, 0x19
mov qword [rsp + 0x80], rax
mov byte [rsp + 0x8c], al
mov rcx, rbp
lea rax, [rsp + 0x80]
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rax
lea r8d, [rdx + 7]
mov qword [rsp + 0x68], rbx
mov dword [rsp + 0x70], 8
call sub.libcrypto_3_x64.dll_EVP_CIPHER_CTX_ctrl
test eax, eax
jle 0x14003c59f
mov edx, 0x1a
mov qword [rsp + 0x58], r12
lea r9, [rsp + 0x58]
mov qword [rsp + 0x60], r13
mov rcx, rbp
mov qword [rsp + 0x68], rbx
lea r8d, [rdx + 6]
call sub.libcrypto_3_x64.dll_EVP_CIPHER_CTX_ctrl
jmp 0x14003c5f0
mov edx, reloc.WS2_32.dll_recv
mov rcx, r12
call sub.libcrypto_3_x64.dll_RAND_bytes
mov edx, reloc.WS2_32.dll_shutdown
lea r9, [rsp + 0x80]
add rbx, 0x10
mov rcx, rbp
mov rax, rbx
mov byte [rsp + 0x8c], bl
shr rax, 8
lea r8d, [rdx - 9]
mov byte [rsp + 0x8b], al
call sub.libcrypto_3_x64.dll_EVP_CIPHER_CTX_ctrl
mov r8, r13
mov rdx, r12
mov rcx, rbp
lea r9d, [rax + rbx]
call sub.libcrypto_3_x64.dll_EVP_Cipher
mov eax, dword [0x1400ac8d0]
inc esi
test eax, eax
jne 0x14003c514
mov edx, dword [0x1400aaf0c]
mov ecx, 1
call fcn.14004f170
mov eax, dword [0x1400ac8d0]
movaps xmm6, xmm0
test eax, eax
je 0x14003c62c
mov rcx, qword [0x1400ac8e8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateThread]
mov rcx, qword [0x1400ac8e8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x1400ac8d4], edi
lea rax, str.R:_d:_s:_f_n
mov rcx, qword [0x1400ac6a8]
lea rdx, str._d__ss_in__.2fs_n
cmovne rdx, rax
movsd qword [rsp + 0x20], xmm6
lea r9, [0x140089434]
mov r8d, esi
call sub.libcrypto_3_x64.dll_BIO_printf
mov rax, qword [rsp + 0x48]
lea r8, str.DT:_s:_d:_d_n
movd xmm0, dword [r15]
add r15, 4
mov rcx, qword [rsp + 0x30]
movd xmm1, esi
lea rsi, [0x1400ac8f0]
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm6
mulsd xmm1, xmm0
movsd qword [rsi + rax*8 + 0x4b0], xmm1
inc rax
mov qword [rsp + 0x48], rax
cmp rax, r14
jl 0x14003c4a0
cmp dword [0x1400ac8d4], edi
mov ecx, 1
je 0x14003c795
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, [0x14008a8b0]
call fcn.14003bc80
mov rbp, qword [rsp + 0x40]
mov rbx, rdi
nop word [rax + rax]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8d, dword [rbp + rbx*4]
lea rdx, [0x14008a908]
mov rcx, rax
call fcn.14003bc80
inc rbx
cmp rbx, r14
jl 0x14003c6f0
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, [0x140062640]
call fcn.14003bc80
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, qword [rsp + 0x30]
lea rdx, str.F:_d:_s
mov rcx, rax
mov r8d, 0x19
call fcn.14003bc80
mov rbp, qword [rsp + 0x50]
nop dword [rax + rax]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
movsd xmm2, qword [rsi + rdi*8 + 0x4b0]
lea rdx, str.:_.2f
movq r8, xmm2
mov rcx, rax
call fcn.14003bc80
inc rdi
cmp rdi, r14
jl 0x14003c760
jmp 0x14003c8b8
movaps xmmword [rsp + 0xe0], xmm7
movaps xmmword [rsp + 0xd0], xmm8
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, str.The_numbers_are_in_1000s_of_bytes_per_second_processed._n
call fcn.14003bc80
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, str.type
call fcn.14003bc80
mov rbp, qword [rsp + 0x40]
mov rbx, rdi
nop dword [rax]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8d, dword [rbp + rbx*4]
lea rdx, str._7d_bytes
mov rcx, rax
call fcn.14003bc80
inc rbx
cmp rbx, r14
jl 0x14003c7e0
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, [0x140062640]
call fcn.14003bc80
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, qword [rsp + 0x30]
lea rdx, str.__24s
mov rcx, rax
call fcn.14003bc80
movsd xmm7, qword [0x14008adf8]
movsd xmm8, qword [0x14008adf0]
mov rbp, qword [rsp + 0x50]
nop word [rax + rax]
movsd xmm6, qword [rsi + rdi*8 + 0x4b0]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
comisd xmm6, xmm7
jbe 0x14003c888
lea rdx, str.__11.2fk
divsd xmm6, xmm8
jmp 0x14003c88f
lea rdx, str.__11.2f
movaps xmm2, xmm6
movq r8, xmm6
mov rcx, rax
call fcn.14003bc80
inc rdi
cmp rdi, r14
jl 0x14003c860
movaps xmm8, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xe0]
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, [0x140062640]
call fcn.14003bc80
mov rdi, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x158]
movaps xmm6, xmmword [rsp + 0xf0]
mov r8d, 0xed1
lea rdx, str.apps_speed.c
mov rcx, r13
call sub.libcrypto_3_x64.dll_CRYPTO_free
mov r8d, 0xed2
lea rdx, str.apps_speed.c
mov rcx, r12
call sub.libcrypto_3_x64.dll_CRYPTO_free
mov rcx, rbp
call sub.libcrypto_3_x64.dll_EVP_CIPHER_CTX_free
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.14005d840
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rbp
pop rbx
ret