Function at 0x4015bc
Capabilities:
Encrypt data using blowfish
Encrypt data using rc4 prga

Disassembly:
push rbp
mov rbp, rsp
add rsp, 0xffffffffffffff80
mov qword [rbp + 0x10], rcx
mov dword [rbp + 0x18], edx
mov dword [rbp + 0x20], r8d
mov qword [rbp + 0x28], r9
cmp dword [rbp + 0x18], 7
jle 0x4015df
cmp dword [rbp + 0x18], 0x38
jle 0x4015e9
mov eax, 1
jmp 0x4019d7
cmp dword [rbp + 0x20], 0
je 0x4015ff
cmp dword [rbp + 0x20], 0x10
je 0x4015ff
mov eax, 1
jmp 0x4019d7
mov dword [rbp - 8], 0
mov eax, dword [rbp - 8]
mov dword [rbp - 4], eax
mov eax, dword [rbp - 4]
mov dword [rbp - 0xc], eax
jmp 0x40168b
mov eax, dword [rbp - 0xc]
shl eax, 8
mov ecx, eax
mov eax, dword [rbp - 4]
lea edx, [rax + 1]
mov dword [rbp - 4], edx
mov edx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx eax, byte [rax]
movzx eax, al
or eax, ecx
mov dword [rbp - 0xc], eax
mov eax, dword [rbp - 4]
and eax, 3
test eax, eax
jne 0x40168b
mov eax, dword [rbp - 0xc]
shr eax, 0x18
mov edx, eax
mov eax, dword [rbp - 0xc]
shl eax, 0x18
or edx, eax
mov eax, dword [rbp - 0xc]
shr eax, 8
and eax, 0xff00
or edx, eax
mov r8d, edx
mov eax, dword [rbp - 0xc]
shl eax, 8
and eax, 0xff0000
mov ecx, eax
mov eax, dword [rbp - 8]
lea edx, [rax + 1]
mov dword [rbp - 8], edx
mov edx, r8d
or edx, ecx
mov eax, eax
mov dword [rbp + rax*4 - 0x50], edx
mov dword [rbp - 0xc], 0
mov eax, dword [rbp + 0x18]
cmp dword [rbp - 4], eax
jb 0x401614
mov eax, dword [rbp + 0x18]
and eax, 3
test eax, eax
je 0x4016e2
mov eax, dword [rbp + 0x18]
not eax
and eax, 3
shl eax, 3
mov ecx, eax
shl dword [rbp - 0xc], cl
mov eax, dword [rbp - 0xc]
shr eax, 0x18
mov edx, eax
mov eax, dword [rbp - 0xc]
shl eax, 0x18
or edx, eax
mov eax, dword [rbp - 0xc]
shr eax, 8
and eax, 0xff00
or edx, eax
mov eax, dword [rbp - 0xc]
shl eax, 8
and eax, 0xff0000
or edx, eax
mov eax, dword [rbp - 8]
mov dword [rbp + rax*4 - 0x50], edx
add dword [rbp - 8], 1
mov dword [rbp - 4], 0
jmp 0x40172a
mov eax, dword [rbp - 4]
lea rdx, [rax*4]
lea rax, section..rdata
mov ecx, dword [rdx + rax]
mov eax, dword [rbp - 4]
mov edx, 0
div dword [rbp - 8]
mov eax, edx
mov eax, eax
mov eax, dword [rbp + rax*4 - 0x50]
xor ecx, eax
mov rax, qword [rbp + 0x28]
mov edx, dword [rbp - 4]
add rdx, 0x400
mov dword [rax + rdx*4], ecx
add dword [rbp - 4], 1
cmp dword [rbp - 4], 0x11
jbe 0x4016eb
mov dword [rbp - 4], 0
jmp 0x401787
mov dword [rbp - 8], 0
jmp 0x40177a
mov eax, dword [rbp - 8]
mov edx, dword [rbp - 4]
shl rdx, 8
add rax, rdx
lea rdx, [rax*4]
lea rax, [0x00406060]
mov ecx, dword [rdx + rax]
mov rax, qword [rbp + 0x28]
mov edx, dword [rbp - 8]
mov r8d, dword [rbp - 4]
shl r8, 8
add rdx, r8
mov dword [rax + rdx*4], ecx
add dword [rbp - 8], 1
cmp dword [rbp - 8], 0xff
jbe 0x401742
add dword [rbp - 4], 1
cmp dword [rbp - 4], 3
jbe 0x401739
lea rax, [rbp - 0x58]
mov r8d, 8
mov edx, 0
mov rcx, rax
call sym.memset
mov dword [rbp - 4], 0
jmp 0x401888
mov rcx, qword [rbp + 0x28]
lea rdx, [rbp - 0x58]
lea rax, [rbp - 0x58]
mov r8, rcx
mov rcx, rax
call sym.blowfish_ecb_encrypt
lea rax, [rbp - 0x58]
add rax, 3
movzx eax, byte [rax]
movzx eax, al
shl eax, 0x18
mov edx, eax
lea rax, [rbp - 0x58]
add rax, 2
movzx eax, byte [rax]
movzx eax, al
shl eax, 0x10
or edx, eax
lea rax, [rbp - 0x58]
add rax, 1
movzx eax, byte [rax]
movzx eax, al
shl eax, 8
or edx, eax
movzx eax, byte [rbp - 0x58]
movzx eax, al
mov ecx, edx
or ecx, eax
mov rax, qword [rbp + 0x28]
mov edx, dword [rbp - 4]
add rdx, 0x400
mov dword [rax + rdx*4], ecx
lea rax, [rbp - 0x58]
add rax, 4
add rax, 3
movzx eax, byte [rax]
movzx eax, al
shl eax, 0x18
mov edx, eax
lea rax, [rbp - 0x58]
add rax, 4
add rax, 2
movzx eax, byte [rax]
movzx eax, al
shl eax, 0x10
or edx, eax
lea rax, [rbp - 0x58]
add rax, 4
add rax, 1
movzx eax, byte [rax]
movzx eax, al
shl eax, 8
or edx, eax
movzx eax, byte [rbp - 0x54]
movzx eax, al
mov ecx, dword [rbp - 4]
lea r8d, [rcx + 1]
mov ecx, edx
or ecx, eax
mov rax, qword [rbp + 0x28]
mov edx, r8d
add rdx, 0x400
mov dword [rax + rdx*4], ecx
add dword [rbp - 4], 2
cmp dword [rbp - 4], 0x11
jbe 0x4017b0
mov dword [rbp - 4], 0
jmp 0x40199a
mov dword [rbp - 8], 0
jmp 0x401989
mov rcx, qword [rbp + 0x28]
lea rdx, [rbp - 0x58]
lea rax, [rbp - 0x58]
mov r8, rcx
mov rcx, rax
call sym.blowfish_ecb_encrypt
lea rax, [rbp - 0x58]
add rax, 3
movzx eax, byte [rax]
movzx eax, al
shl eax, 0x18
mov edx, eax
lea rax, [rbp - 0x58]
add rax, 2
movzx eax, byte [rax]
movzx eax, al
shl eax, 0x10
or edx, eax
lea rax, [rbp - 0x58]
add rax, 1
movzx eax, byte [rax]
movzx eax, al
shl eax, 8
or edx, eax
movzx eax, byte [rbp - 0x58]
movzx eax, al
mov ecx, edx
or ecx, eax
mov rax, qword [rbp + 0x28]
mov edx, dword [rbp - 8]
mov r8d, dword [rbp - 4]
shl r8, 8
add rdx, r8
mov dword [rax + rdx*4], ecx
lea rax, [rbp - 0x58]
add rax, 4
add rax, 3
movzx eax, byte [rax]
movzx eax, al
shl eax, 0x18
mov edx, eax
lea rax, [rbp - 0x58]
add rax, 4
add rax, 2
movzx eax, byte [rax]
movzx eax, al
shl eax, 0x10
or edx, eax
lea rax, [rbp - 0x58]
add rax, 4
add rax, 1
movzx eax, byte [rax]
movzx eax, al
shl eax, 8
or edx, eax
movzx eax, byte [rbp - 0x54]
movzx eax, al
mov ecx, dword [rbp - 8]
lea r8d, [rcx + 1]
mov ecx, edx
or ecx, eax
mov rax, qword [rbp + 0x28]
mov r8d, r8d
mov edx, dword [rbp - 4]
shl rdx, 8
add rdx, r8
mov dword [rax + rdx*4], ecx
add dword [rbp - 8], 2
cmp dword [rbp - 8], 0xff
jbe 0x4018aa
add dword [rbp - 4], 1
cmp dword [rbp - 4], 3
jbe 0x40189e
lea rax, [rbp - 0x58]
mov r8d, 8
mov edx, 0
mov rcx, rax
call sym.memset
lea rax, [rbp - 0x50]
mov r8d, 0x38
mov edx, 0
mov rcx, rax
call sym.memset
mov eax, 0
sub rsp, 0xffffffffffffff80
pop rbp
ret