Function at 0x140037240
Capabilities:
Encode data using base64
Encode data using xor
Hash data using sha1

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x278
movdqa xmmword [rsp + 0x260], xmm12
movdqa xmmword [rsp + 0x250], xmm11
movdqa xmmword [rsp + 0x240], xmm10
movdqa xmmword [rsp + 0x230], xmm9
movdqa xmmword [rsp + 0x220], xmm8
movdqa xmmword [rsp + 0x210], xmm7
movdqa xmmword [rsp + 0x200], xmm6
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xb0], xmm0
movdqa xmmword [rsp + 0xa0], xmm0
movdqa xmmword [rsp + 0x90], xmm0
movdqa xmmword [rsp + 0x80], xmm0
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmmword [rsp + 0x50], xmm0
movdqa xmmword [rsp + 0x40], xmm0
mov eax, 0xffffffff
test rcx, rcx
je 0x14003780a
mov rbx, rdx
test rdx, rdx
je 0x14003780a
mov rdi, r8
mov qword [rsp + 0x30], rcx
lea eax, [r8 + 8]
mov ecx, eax
shr ecx, 6
mov dword [rsp + 0x2c], ecx
and eax, 0xffffffc0
sub eax, edi
lea ecx, [r8*8]
mov byte [rsp + 0x40], 0x80
mov rdx, r8
shr rdx, 0x35
lea r8d, [rax + 0x38]
mov byte [rsp + r8 + 0x40], dl
mov rdx, rdi
shr rdx, 0x2d
lea r8d, [rax + 0x39]
mov byte [rsp + r8 + 0x40], dl
mov rdx, rdi
shr rdx, 0x25
lea r8d, [rax + 0x3a]
mov byte [rsp + r8 + 0x40], dl
mov rdx, rdi
shr rdx, 0x1d
lea r8d, [rax + 0x3b]
mov byte [rsp + r8 + 0x40], dl
mov rdx, rdi
shr rdx, 0x15
lea r8d, [rax + 0x3c]
mov byte [rsp + r8 + 0x40], dl
mov rdx, rdi
shr rdx, 0xd
lea r8d, [rax + 0x3d]
mov byte [rsp + r8 + 0x40], dl
mov rdx, rdi
shr rdx, 5
lea r8d, [rax + 0x3e]
mov byte [rsp + r8 + 0x40], dl
add eax, 0x3f
mov byte [rsp + rax + 0x40], cl
mov r14d, 0xc3d2e1f0
mov esi, 0x10325476
mov ebp, 0x98badcfe
movdqa xmm6, xmmword [0x1400da550]
movdqa xmm7, xmmword [0x1400da560]
pxor xmm8, xmm8
movdqa xmm9, xmmword [0x1400da570]
movdqa xmm10, xmmword [0x1400da580]
xor r12d, r12d
xor eax, eax
mov dword [rsp + 0x28], 0xefcdab89
mov r15d, 0x67452301
jmp 0x140037401
add r15d, r11d
add dword [rsp + 0x28], edx
add ebp, ecx
add esi, r8d
add r14d, eax
mov rcx, qword [rsp + 0x38]
lea eax, [rcx + 1]
cmp ecx, dword [rsp + 0x2c]
je 0x140037784
mov qword [rsp + 0x38], rax
mov r8d, 0x140
lea rcx, [rsp + 0xc0]
xor edx, edx
call fcn.1400175c0
xor eax, eax
jmp 0x140037439
mov dword [rsp + rax*4 + 0xc0], r10d
mov r12d, edx
add rax, 1
cmp rax, 0x10
je 0x140037640
mov edx, r12d
mov ecx, 0x18
cmp rdx, rdi
jae 0x1400374c3
movzx edx, byte [rbx + rdx]
shl edx, 0x18
add edx, dword [rsp + rax*4 + 0xc0]
lea r9d, [r12 + 1]
mov ecx, 0x10
mov r8b, 1
cmp r9, rdi
jae 0x1400374b0
movzx ecx, byte [rbx + r9]
shl ecx, 0x10
add edx, ecx
lea r9d, [r12 + 2]
mov ecx, 8
cmp r9, rdi
jae 0x1400374b0
movzx ecx, byte [rbx + r9]
shl ecx, 8
add edx, ecx
lea r9d, [r12 + 3]
xor ecx, ecx
cmp r9, rdi
jae 0x1400374b0
movzx ecx, byte [rbx + r9]
add edx, ecx
add r12d, 4
mov ecx, 0xfffffff8
xor r8d, r8d
mov r9d, r12d
nop dword [rax + rax]
mov dword [rsp + rax*4 + 0xc0], edx
mov r12d, r9d
test r8b, r8b
je 0x14003742b
mov r10d, dword [rsp + rax*4 + 0xc0]
cmp ecx, 0x58
jae 0x1400374e0
mov edx, r12d
jmp 0x140037610
mov r8d, ecx
shr r8d, 3
mov edx, r12d
add edx, r8d
jae 0x1400374f7
mov edx, r12d
jmp 0x140037610
add r8d, 1
mov r9d, r8d
and r9d, 0xfffffff8
lea r11d, [r9*8]
lea edx, [r12 + r9]
movd xmm0, r10d
movd xmm1, ecx
sub ecx, r11d
pshufd xmm2, xmm1, 0
paddd xmm2, xmm6
pxor xmm1, xmm1
mov r10d, r9d
nop word [rax + rax]
movdqa xmm3, xmm2
paddd xmm3, xmm7
mov r11d, r12d
sub r11, rdi
movd xmm5, dword [rsp + r11 + 0x40]
movd xmm4, dword [rsp + r11 + 0x44]
punpcklbw xmm5, xmm8
punpcklwd xmm5, xmm8
punpcklbw xmm4, xmm8
punpcklwd xmm4, xmm8
movdqa xmm11, xmm2
pslld xmm11, 0x17
paddd xmm11, xmm9
cvttps2dq xmm11, xmm11
pshufd xmm12, xmm5, 0xf5
pmuludq xmm5, xmm11
pshufd xmm5, xmm5, 0xe8
pshufd xmm11, xmm11, 0xf5
pmuludq xmm11, xmm12
pshufd xmm11, xmm11, 0xe8
punpckldq xmm5, xmm11
paddd xmm0, xmm5
pslld xmm3, 0x17
paddd xmm3, xmm9
cvttps2dq xmm3, xmm3
pshufd xmm5, xmm4, 0xf5
pmuludq xmm4, xmm3
pshufd xmm4, xmm4, 0xe8
pshufd xmm3, xmm3, 0xf5
pmuludq xmm3, xmm5
pshufd xmm3, xmm3, 0xe8
punpckldq xmm4, xmm3
paddd xmm1, xmm4
paddd xmm2, xmm10
add r12d, 8
add r10d, 0xfffffff8
jne 0x140037530
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd r10d, xmm1
cmp r8d, r9d
je 0x140037420
nop dword [rax + rax]
mov r8d, edx
sub r8, rdi
movzx r8d, byte [rsp + r8 + 0x40]
shl r8d, cl
add r10d, r8d
add edx, 1
lea r8d, [rcx - 8]
cmp ecx, 7
mov ecx, r8d
ja 0x140037610
jmp 0x140037420
mov rax, 0xfffffffffffffff0
nop word [rax + rax]
mov ecx, dword [rsp + rax*4 + 0x120]
xor ecx, dword [rsp + rax*4 + 0x134]
xor ecx, dword [rsp + rax*4 + 0x108]
xor ecx, dword [rsp + rax*4 + 0x100]
rol ecx, 1
mov dword [rsp + rax*4 + 0x140], ecx
inc rax
jne 0x140037650
xor eax, eax
nop dword [rax]
mov rcx, qword [rsp + rax*4 + 0x100]
xor rcx, qword [rsp + rax*4 + 0x128]
xor rcx, qword [rsp + rax*4 + 0xd0]
xor rcx, qword [rsp + rax*4 + 0xc0]
movq xmm0, rcx
movdqa xmm1, xmm0
psrld xmm1, 0x1e
pslld xmm0, 2
por xmm0, xmm1
movq qword [rsp + rax*4 + 0x140], xmm0
add rax, 2
cmp rax, 0x30
jne 0x140037680
xor r9d, r9d
mov r11d, r15d
mov edx, dword [rsp + 0x28]
mov ecx, ebp
mov r10d, r14d
mov r8d, esi
jmp 0x14003771e
mov r11d, r8d
xor r11d, eax
and r11d, ecx
xor r11d, eax
mov r13d, 0x5a827999
add r10d, r11d
mov r11d, edx
rol r11d, 5
add r11d, r13d
add r11d, r10d
add r11d, dword [rsp + r9*4 + 0xc0]
rol ecx, 0x1e
add r9, 1
mov r10d, eax
cmp r9, 0x50
je 0x1400373e0
mov eax, r8d
mov r8d, ecx
mov ecx, edx
mov edx, r11d
cmp r9, 0x13
jbe 0x1400376e0
cmp r9, 0x27
ja 0x140037750
mov r11d, r8d
xor r11d, eax
xor r11d, ecx
mov r13d, 0x6ed9eba1
jmp 0x1400376f2
cmp r9, 0x3b
ja 0x140037770
mov r13d, r8d
or r13d, eax
and r13d, ecx
mov r11d, r8d
and r11d, eax
or r11d, r13d
mov r13d, 0x8f1bbcdc
jmp 0x1400376f2
mov r11d, r8d
xor r11d, eax
xor r11d, ecx
mov r13d, 0xca62c1d6
jmp 0x1400376f2
mov ecx, r15d
mov eax, r15d
shr eax, 0x18
mov rdx, qword [rsp + 0x30]
mov byte [rdx], al
mov eax, r15d
shr eax, 0x10
mov byte [rdx + 1], al
mov byte [rdx + 2], ch
mov byte [rdx + 3], cl
mov ecx, dword [rsp + 0x28]
mov eax, ecx
shr eax, 0x18
mov byte [rdx + 4], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 5], al
mov byte [rdx + 6], ch
mov byte [rdx + 7], cl
mov ecx, ebp
mov eax, ebp
shr eax, 0x18
mov byte [rdx + 8], al
mov eax, ebp
shr eax, 0x10
mov byte [rdx + 9], al
mov byte [rdx + 0xa], ch
mov byte [rdx + 0xb], cl
mov ecx, esi
mov eax, esi
shr eax, 0x18
mov byte [rdx + 0xc], al
mov eax, esi
shr eax, 0x10
mov byte [rdx + 0xd], al
mov byte [rdx + 0xe], ch
mov byte [rdx + 0xf], cl
mov ecx, r14d
mov eax, r14d
shr eax, 0x18
mov byte [rdx + 0x10], al
mov eax, r14d
shr eax, 0x10
mov byte [rdx + 0x11], al
mov byte [rdx + 0x12], ch
mov byte [rdx + 0x13], cl
xor eax, eax
movaps xmm6, xmmword [rsp + 0x200]
movaps xmm7, xmmword [rsp + 0x210]
movaps xmm8, xmmword [rsp + 0x220]
movaps xmm9, xmmword [rsp + 0x230]
movaps xmm10, xmmword [rsp + 0x240]
movaps xmm11, xmmword [rsp + 0x250]
movaps xmm12, xmmword [rsp + 0x260]
add rsp, 0x278
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret