Function at 0x1400015d0
Capabilities:
Encrypt data using blowfish

Disassembly:
push rbp
push rbx
push rdi
push r13
push r15
lea rbp, [rsp - 0xff0]
mov eax, 0x10f0
call fcn.1401a39d0
sub rsp, rax
mov rax, qword [0x1401ec840]
xor rax, rsp
mov qword [rbp + 0xfd8], rax
cmp byte [r8 + 1], 0x32
lea rbx, [r8 + 1]
movups xmm0, xmmword [str.OrpheanBeholderScryDoubt]
movzx eax, byte [0x1401b7ce0]
mov rdi, r9
mov r13, rdx
mov byte [rbp + 0xfc0], al
movups xmmword [rbp + 0xfa8], xmm0
mov r15, rcx
movsd xmm0, qword [0x1401b7cd8]
movsd qword [rbp + 0xfb8], xmm0
jle 0x140001663
lea rax, [0x1401b7cb8]
sub rdi, rax
nop word [rax + rax]
movzx ecx, byte [rax]
mov byte [rdi + rax], cl
lea rax, [rax + 1]
test cl, cl
jne 0x140001650
jmp 0x140001786
mov qword [rsp + 0x10e8], r12
movsx r12d, byte [rbx + 1]
cmp r12b, 0x24
je 0x1400016a8
mov ecx, r12d
sub ecx, 0x61
je 0x1400016a3
cmp ecx, 1
je 0x1400016a3
lea rax, [0x1401b7cb8]
sub rdi, rax
nop dword [rax]
movzx ecx, byte [rax]
mov byte [rdi + rax], cl
lea rax, [rax + 1]
test cl, cl
jne 0x140001690
jmp 0x14000177e
inc rbx
jmp 0x1400016ab
xor r12b, r12b
cmp byte [rbx + 4], 0x24
je 0x1400016d3
lea rax, [0x1401b7cb8]
sub rdi, rax
nop dword [rax + rax]
movzx ecx, byte [rax]
mov byte [rdi + rax], cl
lea rax, [rax + 1]
test cl, cl
jne 0x1400016c0
jmp 0x14000177e
lea rcx, [rbx + 2]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
cmp eax, 0x1f
ja 0x140001c53
mov qword [rsp + 0x1120], rsi
mov esi, 1
movzx ecx, al
shl esi, cl
mov dword [rsp + 0x30], ecx
cmp esi, 0x10
jae 0x140001720
lea rax, [0x1401b7cb8]
sub rdi, rax
nop dword [rax + rax]
movzx ecx, byte [rax]
mov byte [rdi + rax], cl
lea rax, [rax + 1]
test cl, cl
jne 0x140001710
jmp 0x140001776
mov qword [rsp + 0x10e0], r14
mov r14, 0xffffffffffffffff
mov rax, r14
cmp byte [rbx + rax + 6], 0
lea rax, [rax + 1]
jne 0x140001732
lea rax, [rax + rax*2]
and rax, 0xfffffffffffffffc
cmp rax, 0x40
jae 0x1400017a4
lea rax, [0x1401b7cb8]
sub rdi, rax
nop word [rax + rax]
movzx ecx, byte [rax]
mov byte [rdi + rax], cl
lea rax, [rax + 1]
test cl, cl
jne 0x140001760
mov r14, qword [rsp + 0x10e0]
mov rsi, qword [rsp + 0x1120]
mov r12, qword [rsp + 0x10e8]
mov rcx, qword [rbp + 0xfd8]
xor rcx, rsp
call fcn.1401a2f30
add rsp, 0x10f0
pop r15
pop r13
pop rdi
pop rbx
pop rbp
ret
lea rcx, [rbp + 0xfc8]
lea r9, [rbx + 7]
lea r10, [0x1401b7cf0]
nop word [rax + rax]
movzx eax, byte [r9 - 2]
mov dl, 0xff
cmp al, 0x7f
ja 0x1400017d0
movzx edx, byte [rax + r10]
movzx eax, byte [r9 - 1]
mov r8b, 0xff
cmp al, 0x7f
ja 0x1400017e1
movzx r8d, byte [rax + r10]
cmp dl, 0xff
je 0x140001878
cmp r8b, 0xff
je 0x140001878
movzx eax, r8b
shl dl, 2
shr al, 4
and al, 3
or al, dl
mov byte [rcx], al
inc rcx
lea rax, [rbp + 0xfd8]
cmp rcx, rax
jae 0x140001878
movzx eax, byte [r9]
cmp al, 0x7f
ja 0x140001878
movzx edx, byte [rax + r10]
cmp dl, 0xff
je 0x140001878
movzx eax, dl
shl r8b, 4
shr al, 2
and al, 0xf
or al, r8b
mov byte [rcx], al
inc rcx
lea rax, [rbp + 0xfd8]
cmp rcx, rax
jae 0x140001878
movzx eax, byte [r9 + 1]
cmp al, 0x7f
ja 0x140001878
movzx r8d, byte [rax + r10]
cmp r8b, 0xff
je 0x140001878
shl dl, 6
lea rax, [rbp + 0xfd8]
or dl, r8b
add r9, 4
mov byte [rcx], dl
inc rcx
cmp rcx, rax
jb 0x1400017c0
cmp r12b, 0x61
ja 0x140001889
setae al
add al, r13b
movzx ebx, al
jmp 0x140001899
mov ebx, 0x48
cmp r13, rbx
cmovbe bx, r13w
inc bx
mov r8d, 0x1048
lea rdx, [0x1401c2fb0]
lea rcx, [rsp + 0x40]
call sub.VCRUNTIME140.dll_memcpy
mov r9, r15
mov word [rsp + 0x20], bx
lea rdx, [rbp + 0xfc8]
lea rcx, [rsp + 0x40]
call fcn.140002890
nop dword [rax]
movzx r8d, bx
lea rcx, [rsp + 0x40]
mov rdx, r15
call fcn.140002770
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0xfc8]
lea rcx, [rsp + 0x40]
call fcn.140002770
sub rsi, 1
jne 0x1400018d0
xor r9d, r9d
mov r8d, 4
mov edx, r9d
movzx ecx, r9w
nop
cmp cx, 0x18
mov eax, r9d
cmovb ax, cx
shl edx, 8
movzx ecx, ax
movzx eax, byte [rbp + rcx + 0xfa8]
inc cx
or eax, edx
mov edx, eax
sub r8, 1
jne 0x140001910
mov dword [rbp + 0xf90], eax
mov edx, r9d
mov r8d, 4
nop word [rax + rax]
cmp cx, 0x18
mov eax, r9d
cmovb ax, cx
shl edx, 8
movzx ecx, ax
movzx eax, byte [rbp + rcx + 0xfa8]
inc cx
or eax, edx
mov edx, eax
sub r8, 1
jne 0x140001950
mov dword [rbp + 0xf94], eax
mov edx, r9d
mov r8d, 4
nop word [rax + rax]
cmp cx, 0x18
mov eax, r9d
cmovb ax, cx
shl edx, 8
movzx ecx, ax
movzx eax, byte [rbp + rcx + 0xfa8]
inc cx
or eax, edx
mov edx, eax
sub r8, 1
jne 0x140001990
mov dword [rbp + 0xf98], eax
mov edx, r9d
mov r8d, 4
nop word [rax + rax]
cmp cx, 0x18
mov eax, r9d
cmovb ax, cx
shl edx, 8
movzx ecx, ax
movzx eax, byte [rbp + rcx + 0xfa8]
inc cx
or eax, edx
mov edx, eax
sub r8, 1
jne 0x1400019d0
mov dword [rbp + 0xf9c], eax
mov edx, r9d
mov r8d, 4
nop word [rax + rax]
cmp cx, 0x18
mov eax, r9d
cmovb ax, cx
shl edx, 8
movzx ecx, ax
movzx eax, byte [rbp + rcx + 0xfa8]
inc cx
or eax, edx
mov edx, eax
sub r8, 1
jne 0x140001a10
mov dword [rbp + 0xfa0], eax
mov edx, r9d
mov r8d, 4
nop word [rax + rax]
cmp cx, 0x18
mov eax, r9d
cmovb ax, cx
shl edx, 8
movzx ecx, ax
movzx eax, byte [rbp + rcx + 0xfa8]
inc cx
or eax, edx
mov edx, eax
sub r8, 1
jne 0x140001a50
mov dword [rbp + 0xfa4], eax
mov r15d, 0x40
nop dword [rax]
nop word [rax + rax]
lea rbx, [rbp + 0xf90]
mov esi, 3
nop dword [rax]
lea r8, [rbx + 4]
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.1400022c0
add rbx, 8
sub rsi, 1
jne 0x140001aa0
sub r15, 1
jne 0x140001a90
movzx eax, byte [rbp + 0xf90]
mov ecx, 2
mov byte [rbp + 0xfab], al
mov eax, dword [rbp + 0xf90]
shr eax, 8
mov byte [rbp + 0xfaa], al
shr eax, 8
mov byte [rbp + 0xfa9], al
shr eax, 8
mov byte [rbp + 0xfa8], al
movzx eax, byte [rbp + 0xf94]
mov byte [rbp + 0xfaf], al
mov eax, dword [rbp + 0xf94]
shr eax, 8
mov byte [rbp + 0xfae], al
shr eax, 8
mov byte [rbp + 0xfad], al
shr eax, 8
mov byte [rbp + 0xfac], al
movzx eax, byte [rbp + 0xf98]
mov byte [rbp + 0xfb3], al
mov eax, dword [rbp + 0xf98]
shr eax, 8
mov byte [rbp + 0xfb2], al
shr eax, 8
mov byte [rbp + 0xfb1], al
shr eax, 8
mov byte [rbp + 0xfb0], al
movzx eax, byte [rbp + 0xf9c]
mov byte [rbp + 0xfb7], al
mov eax, dword [rbp + 0xf9c]
shr eax, 8
mov byte [rbp + 0xfb6], al
shr eax, 8
mov byte [rbp + 0xfb5], al
shr eax, 8
mov byte [rbp + 0xfb4], al
movzx eax, byte [rbp + 0xfa0]
mov byte [rbp + 0xfbb], al
mov eax, dword [rbp + 0xfa0]
shr eax, 8
mov byte [rbp + 0xfba], al
shr eax, 8
mov byte [rbp + 0xfb9], al
shr eax, 8
mov byte [rbp + 0xfb8], al
movzx eax, byte [rbp + 0xfa4]
mov byte [rbp + 0xfbf], al
mov eax, dword [rbp + 0xfa4]
shr eax, 8
mov byte [rbp + 0xfbe], al
shr eax, 8
mov byte [rbp + 0xfbd], al
shr eax, 8
mov byte [rbp + 0xfbc], al
mov word [rdi], 0x3224
test r12b, r12b
je 0x140001bed
mov byte [rdi + 2], r12b
mov ecx, 3
mov r9d, dword [rsp + 0x30]
lea ebx, [rcx + 1]
mov eax, ecx
lea r8, str._2.2u_
add rbx, rdi
and r9d, 0x1f
mov rcx, rbx
mov edx, 4
mov byte [rax + rdi], 0x24
call fcn.1400013b0
mov r8d, reloc.WS2_32.dll_recv
lea rcx, [rbx + 3]
lea rdx, [rbp + 0xfc8]
call fcn.140001c80
mov r8d, reloc.WS2_32.dll_socket
cmp byte [rdi + r14 + 1], 0
lea r14, [r14 + 1]
jne 0x140001c32
lea rcx, [rdi + r14]
lea rdx, [rbp + 0xfa8]
call fcn.140001c80
jmp 0x14000176e
lea rax, [0x1401b7cb8]
sub rdi, rax
nop dword [rax]
movzx ecx, byte [rax]
mov byte [rdi + rax], cl
lea rax, [rax + 1]
test cl, cl
jne 0x140001c60
jmp 0x14000177e