Function at 0x180024d80
Capabilities:
Encrypt or decrypt data via bcrypt

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x180243280]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov qword [rsp + 0x58], r9
mov r15, r8
mov r14, rdx
mov qword [rbp - 0x70], rdx
xor esi, esi
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], rsi
mov rdi, qword [r8 + 0x10]
mov qword [rsp + 0x50], rdi
mov dword [rbp], esi
lea r9, [rbp + 0x6d]
mov r8, rdi
movabs r10, 0xcccccccccccccccd
dec r9
mov rax, r10
mul r8
shr rdx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8, rdx
test rdx, rdx
jne 0x180024de0
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x70], xmm1
lea rax, [rbp + 0x6d]
cmp r9, rax
jne 0x180024e39
movdqa xmm0, xmmword [0x180210d40]
movdqu xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x60], sil
jmp 0x180024e4e
lea r8, [rbp + 0x6d]
sub r8, r9
mov rdx, r9
lea rcx, [rsp + 0x60]
call fcn.180005800
nop
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
sub rax, r8
mov r13d, 7
lea r12, str.Size_:
cmp rax, r13
jb 0x180024ef6
lea rax, [r8 + 7]
mov qword [rsp + 0x70], rax
lea rbx, [rsp + 0x60]
cmp rcx, 0xf
cmova rbx, qword [rsp + 0x60]
lea rax, [0x1802041a7]
cmp rax, rbx
jbe 0x180024eb3
lea rax, [rbx + r8]
cmp r12, rax
ja 0x180024eb3
cmp rbx, r12
ja 0x180024eab
mov rdi, rsi
jmp 0x180024eb6
mov rdi, rbx
sub rdi, r12
jmp 0x180024eb6
mov rdi, r13
lea rcx, [rbx + 7]
inc r8
mov rdx, rbx
call fcn.1801da970
mov r8, rdi
mov rdx, r12
mov rcx, rbx
call fcn.1801da970
lea rcx, [rbx + rdi]
sub r13, rdi
lea rdx, [r12 + 7]
add rdx, rdi
mov r8, r13
call fcn.1801da970
lea rax, [rsp + 0x60]
mov rdi, qword [rsp + 0x50]
jmp 0x180024f13
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
mov rdx, r13
lea rcx, [rsp + 0x60]
call fcn.1800503b0
xorps xmm0, xmm0
movups xmmword [rbp + 8], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x18], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x18], xmm1
mov qword [rax + 0x10], rsi
mov r13d, reloc.WS2_32.dll_ntohs
mov qword [rax + 0x18], r13
mov byte [rax], 0
lea rcx, [rbp + 8]
call fcn.18001ff50
nop
lea rcx, [rbp + 8]
call fcn.180004420
nop
lea rcx, [rsp + 0x60]
call fcn.180004420
xorps xmm1, xmm1
cmp rdi, 0x14
ja 0x180024fc3
xorps xmm0, xmm0
movups xmmword [rbp + 8], xmm0
movdqu xmmword [rbp + 0x18], xmm1
lea r8d, [r13 + 0x12]
lea rdx, str.Encrypted_blob_size_is_too_small.
lea rcx, [rbp + 8]
call fcn.180005800
nop
lea rcx, [rbp + 8]
call fcn.18001ff50
nop
lea rcx, [rbp + 8]
call fcn.180004420
xorps xmm0, xmm0
movups xmmword [r14], xmm0
mov qword [r14 + 0x10], rsi
mov qword [r14 + 0x18], rsi
xor r8d, r8d
lea rdx, [0x1801ff6b9]
mov rcx, r14
call fcn.180005800
jmp 0x180025157
movdqu xmmword [rbp + 0x40], xmm1
mov qword [rbp + 0x50], rsi
mov rdx, rdi
lea rcx, [rbp + 0x40]
call fcn.180042be0
mov r8, rdi
xor edx, edx
mov rbx, qword [rbp + 0x40]
mov rcx, rbx
call fcn.1801db010
lea rax, [rbx + rdi]
mov qword [rbp + 0x48], rax
xorps xmm1, xmm1
movdqu xmmword [rbp + 8], xmm1
mov r12, rsi
mov qword [rbp + 0x18], rsi
movdqu xmmword [rbp + 0x28], xmm1
mov qword [rbp + 0x38], rsi
mov edx, recv
lea rcx, [rbp + 0x28]
call fcn.180042be0
xor eax, eax
mov rdi, qword [rbp + 0x28]
mov qword [rdi], rax
mov dword [rdi + 8], eax
lea rax, [rdi + 0xc]
mov qword [rbp + 0x30], rax
cmp qword [r15 + 0x18], 0xf
jbe 0x18002503e
mov rax, qword [r15]
lea r8, [rax + 0xf]
mov rdx, rax
jmp 0x180025045
lea r8, [r15 + 0xf]
mov rdx, r15
add rdx, 3
sub r8, rdx
mov rcx, rdi
call fcn.1801da970
mov r8, qword [rsp + 0x50]
cmp qword [r15 + 0x18], 0xf
jbe 0x180025068
add r8, qword [r15]
mov r15, qword [r15]
jmp 0x18002506b
add r8, r15
lea rdx, [r15 + 0xf]
sub r8, rdx
mov rcx, rbx
call fcn.1801da970
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x1802041d0]
lea rcx, [rbp - 0x78]
call qword [sym.imp.bcrypt.dll_BCryptOpenAlgorithmProvider]
mov r15d, eax
test eax, eax
je 0x180025181
lea rdx, str.BCryptOpenAlgorithmProvider_failed_with_status:
lea rcx, [0x1802525f0]
call fcn.180005310
mov edx, r15d
mov rcx, rax
call fcn.18002e790
mov rcx, rax
call fcn.18003be10
xorps xmm0, xmm0
movups xmmword [r14], xmm0
mov qword [r14 + 0x10], rsi
mov qword [r14 + 0x18], rsi
xor r8d, r8d
lea rdx, [0x1801ff6b9]
mov rcx, r14
call fcn.180005800
nop
test rdi, rdi
je 0x18002511e
mov rdx, qword [rbp + 0x38]
sub rdx, rdi
cmp rdx, 0x1000
mov rax, rdi
jb 0x180025115
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800255f0
mov rcx, rdi
call fcn.18017b2e0
nop
test rbx, rbx
je 0x180025157
mov rdx, qword [rbp + 0x50]
sub rdx, rbx
mov rax, rbx
cmp rdx, 0x1000
jb 0x18002514f
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800255de
mov rcx, rbx
call fcn.18017b2e0
mov rax, r14
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.18017ae80
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov dword [rsp + 0x20], esi
mov r9d, 0x20
lea r8, str.ChainingModeGCM
lea rdx, str.ChainingMode
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.bcrypt.dll_BCryptSetProperty]
mov r15d, eax
test eax, eax
je 0x1800251e1
lea rdx, str.BCryptSetProperty_failed_with_status:
lea rcx, [0x1802525f0]
call fcn.180005310
mov edx, r15d
mov rcx, rax
call fcn.18002e790
mov rcx, rax
call fcn.18003be10
xor edx, edx
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
jmp 0x1800250c2
mov dword [rsp + 0x30], esi
mov rcx, qword [rsp + 0x58]
mov eax, dword [rcx]
mov dword [rsp + 0x28], eax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x70]
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.bcrypt.dll_BCryptGenerateSymmetricKey]
mov r15d, eax
test eax, eax
je 0x18002521d
lea rdx, str.BCryptGenerateSymmetricKey_failed_with_status:
jmp 0x1800251b1
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], rax
mov dword [rbp - 0x60], 0x58
mov dword [rbp - 0x5c], 1
mov rcx, qword [rsp + 0x50]
add rcx, 0xffffffffffffffe1
mov qword [rsp + 0x58], rcx
mov qword [rbp - 0x58], rdi
mov dword [rbp - 0x50], recv
lea rax, [rbx + rcx]
mov qword [rbp - 0x38], rax
mov dword [rbp - 0x30], reloc.WS2_32.dll_recv
mov dword [rsp + 0x48], esi
lea rax, [rbp]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], esi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x60]
mov r8d, ecx
mov rdx, rbx
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.bcrypt.dll_BCryptDecrypt]
mov r15d, eax
test eax, eax
je 0x1800252eb
lea rdx, str.BCryptDecrypt__1__failed_with_status:
lea rcx, [0x1802525f0]
call fcn.180005310
mov edx, r15d
mov rcx, rax
call fcn.18002e790
mov rcx, rax
call fcn.18003be10
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.bcrypt.dll_BCryptDestroyKey]
xor edx, edx
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
jmp 0x1800250c2
mov eax, dword [rbp]
mov edx, eax
test eax, eax
je 0x180025304
lea rcx, [rbp + 8]
call fcn.18004b3d0
mov eax, dword [rbp]
mov r12, qword [rbp + 0x18]
mov dword [rsp + 0x48], esi
lea rcx, [rbp]
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], eax
mov r15, qword [rbp + 8]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x60]
mov r8d, dword [rsp + 0x58]
mov rdx, rbx
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.bcrypt.dll_BCryptDecrypt]
mov dword [rsp + 0x50], eax
test eax, eax
je 0x180025423
lea rdx, str.BCryptDecrypt__2__failed_with_status:
lea rcx, [0x1802525f0]
call fcn.180005310
mov edx, dword [rsp + 0x50]
mov rcx, rax
call fcn.18002e790
mov rcx, rax
call fcn.18003be10
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.bcrypt.dll_BCryptDestroyKey]
xor edx, edx
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
xorps xmm0, xmm0
movups xmmword [r14], xmm0
mov qword [r14 + 0x10], rsi
mov qword [r14 + 0x18], rsi
xor r8d, r8d
lea rdx, [0x1801ff6b9]
mov rcx, r14
call fcn.180005800
nop
test rdi, rdi
je 0x1800253e2
mov rdx, qword [rbp + 0x38]
sub rdx, rdi
mov rax, rdi
cmp rdx, 0x1000
jb 0x1800253d9
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800255f0
mov rcx, rdi
call fcn.18017b2e0
nop
test r15, r15
je 0x18002511e
sub r12, r15
mov rax, r15
cmp r12, 0x1000
jb 0x180025413
add r12, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800255d2
mov rdx, r12
mov rcx, r15
call fcn.18017b2e0
jmp 0x18002511e
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x180025432
call qword [sym.imp.bcrypt.dll_BCryptDestroyKey]
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x180025443
xor edx, edx
call qword [sym.imp.bcrypt.dll_BCryptCloseAlgorithmProvider]
xorps xmm0, xmm0
movups xmmword [r14], xmm0
mov qword [r14 + 0x10], rsi
mov qword [r14 + 0x18], r13
mov rax, qword [rbp + 0x10]
cmp r15, rax
jne 0x180025464
mov byte [r14], 0
jmp 0x180025529
sub rax, r15
mov qword [rsp + 0x50], rax
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
ja 0x1800255e4
cmp rax, 0xf
jbe 0x180025502
mov r13, rax
or r13, 0xf
cmp r13, rcx
jbe 0x1800254c1
mov r13, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.18017b314
test rax, rax
je 0x1800255ea
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x1800254f6
mov ecx, reloc.WS2_32.dll_shutdown
cmp r13, rcx
cmovb r13, rcx
lea rcx, [r13 + 1]
cmp rcx, 0x1000
jb 0x1800254e9
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1800255d8
jmp 0x1800254a2
test rcx, rcx
je 0x1800254fb
call fcn.18017b314
mov rsi, rax
mov rax, qword [rsp + 0x50]
mov qword [r14], rsi
mov qword [r14 + 0x18], r13
mov rsi, r14
cmp r13, 0xf
jbe 0x18002550e
mov rsi, qword [r14]
mov r8, rax
mov rdx, r15
mov rcx, rsi
call fcn.1801da970
mov rax, qword [rsp + 0x50]
mov qword [r14 + 0x10], rax
mov byte [rsi + rax], 0
test rdi, rdi
je 0x180025563
mov rdx, qword [rbp + 0x38]
sub rdx, rdi
mov rax, rdi
cmp rdx, 0x1000
jb 0x18002555a
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800255f0
mov rcx, rdi
call fcn.18017b2e0
nop
test r15, r15
je 0x180025598
sub r12, r15
mov rax, r15
cmp r12, 0x1000
jb 0x18002558c
add r12, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800255d2
mov rdx, r12
mov rcx, r15
call fcn.18017b2e0
nop
test rbx, rbx
je 0x180025157
mov rdx, qword [rbp + 0x50]
sub rdx, rbx
mov rax, rbx
cmp rdx, 0x1000
jb 0x18002514f
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800255de
jmp 0x18002514f
call fcn.1801b2a94
nop
call fcn.180001e90
nop
call fcn.1801b2a94
nop
call fcn.1800020a0
int3
call fcn.1801b2a94
nop
call fcn.1801b2a94
int3