Function at 0x18013a030
Capabilities:
Encode data using xor
Hash data using sha1

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x150
mov rax, qword [0x18036d060]
xor rax, rsp
mov qword [rsp + 0x140], rax
movzx eax, byte [rcx + 0x91]
mov rbp, rcx
movzx edx, byte [rcx + 0x90]
shl edx, 8
or edx, eax
movzx eax, byte [rcx + 0x92]
shl edx, 8
or edx, eax
movzx eax, byte [rcx + 0x93]
movzx ecx, byte [rcx + 0x94]
shl ecx, 8
shl edx, 8
or edx, eax
movzx eax, byte [rbp + 0x95]
or ecx, eax
mov dword [rsp], edx
shl ecx, 8
movzx eax, byte [rbp + 0x96]
or ecx, eax
movzx eax, byte [rbp + 0x97]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0x99]
mov dword [rsp + 4], ecx
movzx ecx, byte [rbp + 0x98]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0x9a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0x9b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0x9d]
mov dword [rsp + 8], ecx
movzx ecx, byte [rbp + 0x9c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0x9e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0x9f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xa1]
mov dword [rsp + 0xc], ecx
movzx ecx, byte [rbp + 0xa0]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xa2]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xa3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xa5]
mov dword [rsp + 0x10], ecx
movzx ecx, byte [rbp + 0xa4]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xa6]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xa7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xa9]
mov dword [rsp + 0x14], ecx
movzx ecx, byte [rbp + 0xa8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xaa]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xab]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xad]
mov dword [rsp + 0x18], ecx
movzx ecx, byte [rbp + 0xac]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xae]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xaf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xb1]
mov dword [rsp + 0x1c], ecx
movzx ecx, byte [rbp + 0xb0]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xb2]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xb3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xb5]
mov dword [rsp + 0x20], ecx
movzx ecx, byte [rbp + 0xb4]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xb6]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xb7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xb9]
mov dword [rsp + 0x24], ecx
movzx ecx, byte [rbp + 0xb8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xba]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xbb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xbd]
mov dword [rsp + 0x28], ecx
movzx ecx, byte [rbp + 0xbc]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xbe]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xbf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xc1]
mov dword [rsp + 0x2c], ecx
movzx ecx, byte [rbp + 0xc0]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xc2]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xc3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xc5]
mov dword [rsp + 0x30], ecx
movzx ecx, byte [rbp + 0xc4]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xc6]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xc7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xc9]
mov dword [rsp + 0x34], ecx
movzx ecx, byte [rbp + 0xc8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xca]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xcb]
mov esi, 8
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xcd]
mov dword [rsp + 0x38], ecx
movzx ecx, byte [rbp + 0xcc]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xce]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp + 0xcf]
shl ecx, 8
or ecx, eax
lea rax, [rsp + 8]
mov dword [rsp + 0x3c], ecx
nop dword [rax]
mov ebx, dword [rax]
mov ecx, dword [rax - 8]
lea rax, [rax + 0x20]
xor ecx, ebx
xor ecx, dword [rax + 0xc]
xor ecx, dword [rax - 8]
rol ecx, 1
mov dword [rax + 0x18], ecx
mov r9d, dword [rax - 0x24]
xor r9d, dword [rax + 0x10]
xor r9d, dword [rax - 0x1c]
xor r9d, dword [rax - 4]
rol r9d, 1
mov dword [rax + 0x1c], r9d
xor ebx, dword [rax]
xor ebx, dword [rax + 0x14]
xor ebx, dword [rax - 0x18]
rol ebx, 1
mov dword [rax + 0x20], ebx
mov edx, dword [rax + 4]
xor edx, dword [rax - 0x1c]
xor edx, ecx
xor edx, dword [rax - 0x14]
rol edx, 1
mov dword [rax + 0x24], edx
mov r8d, dword [rax + 8]
xor r8d, dword [rax - 0x10]
xor r8d, dword [rax - 0x18]
xor r8d, r9d
rol r8d, 1
mov dword [rax + 0x28], r8d
mov ecx, dword [rax - 0xc]
xor ecx, ebx
xor ecx, dword [rax + 0xc]
xor ecx, dword [rax - 0x14]
rol ecx, 1
mov dword [rax + 0x2c], ecx
mov ecx, dword [rax - 0x10]
xor ecx, dword [rax + 0x10]
xor ecx, edx
xor ecx, dword [rax - 8]
rol ecx, 1
mov dword [rax + 0x30], ecx
mov ecx, dword [rax - 0xc]
xor ecx, dword [rax - 4]
xor ecx, dword [rax + 0x14]
xor ecx, r8d
rol ecx, 1
mov dword [rax + 0x34], ecx
sub rsi, 1
jne 0x18013a360
mov r14d, dword [rbp + 0x14]
mov ebx, r14d
mov r15d, dword [rbp + 0x18]
mov r10d, r15d
mov r12d, dword [rbp + 0x1c]
mov r9d, r12d
mov r13d, dword [rbp + 0x20]
mov r11d, r13d
mov edi, dword [rbp + 0x24]
nop word [rax + rax]
mov eax, r9d
lea r8d, [rdi + 0x5a827999]
and eax, r10d
mov ecx, r10d
not ecx
mov edx, ebx
and ecx, r11d
rol edx, 5
or ecx, eax
mov edi, r11d
add edx, ecx
mov r11d, r9d
add edx, dword [rsp + rsi*4]
mov r9d, r10d
add r8d, edx
ror r9d, 2
inc rsi
mov r10d, ebx
mov ebx, r8d
cmp rsi, 0x14
jl 0x18013a420
mov edx, setsockopt
nop word [rax + rax]
rol r8d, 5
add edi, 0x6ed9eba1
add r8d, dword [rsp + rdx*4]
mov ecx, r11d
xor ecx, r9d
add r8d, edi
xor ecx, r10d
mov edi, r11d
mov r11d, r9d
add r8d, ecx
mov r9d, r10d
inc rdx
ror r9d, 2
mov r10d, ebx
mov ebx, r8d
cmp rdx, 0x28
jl 0x18013a470
mov edx, 0x28
nop
mov ecx, r9d
rol r8d, 5
or ecx, r10d
mov eax, r9d
and ecx, r11d
add edi, 0x8f1bbcdc
and eax, r10d
add r8d, edi
or ecx, eax
mov edi, r11d
add ecx, dword [rsp + rdx*4]
mov r11d, r9d
mov r9d, r10d
add r8d, ecx
ror r9d, 2
inc rdx
mov r10d, ebx
mov ebx, r8d
cmp rdx, 0x3c
jl 0x18013a4b0
mov edx, 0x3c
nop word [rax + rax]
mov eax, dword [rsp + rdx*4]
add edi, 0xca62c1d6
rol r8d, 5
mov ecx, r11d
xor ecx, r9d
add r8d, edi
xor ecx, r10d
mov edi, r11d
mov r11d, r9d
add eax, ecx
mov r9d, r10d
add r8d, eax
ror r9d, 2
inc rdx
mov r10d, ebx
mov ebx, r8d
cmp rdx, 0x50
jl 0x18013a500
add dword [rbp + 0x24], edi
lea eax, [r14 + r8]
mov dword [rbp + 0x14], eax
lea eax, [r15 + r10]
mov dword [rbp + 0x18], eax
lea eax, [r12 + r9]
mov dword [rbp + 0x1c], eax
lea eax, [r11 + r13]
mov dword [rbp + 0x20], eax
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.18007b140
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret