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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 0x10], rdx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r8d, dword [rcx + 8]
mov rbp, rdx
mov edi, r8d
mov rbx, rcx
shr r8, 2
shl edi, 3
add rdi, qword [rcx]
mov eax, dword [rcx + r8*4 + 0x20]
shl eax, 8
bts eax, 7
mov dword [rcx + r8*4 + 0x20], eax
inc dword [rcx + 8]
mov eax, dword [rcx + 8]
cmp eax, 0x40
jne 0x1400306f3
call fcn.140030a68
mov eax, dword [rbx + 8]
xor esi, esi
cmp eax, 0x38
je 0x140030897
shr rax, 2
shl dword [rbx + rax*4 + 0x20], 8
inc dword [rbx + 8]
mov eax, dword [rbx + 8]
cmp eax, 0x40
jne 0x140030889
lea rcx, [rbx + 0x28]
mov edx, eax
mov eax, dword [rcx + 0x2c]
xor eax, dword [rcx + 0x18]
xor eax, dword [rcx - 8]
xor eax, dword [rcx]
lea rcx, [rcx + 4]
rol eax, 1
mov dword [rcx + 0x34], eax
sub rdx, 1
jne 0x14003071c
mov r12d, dword [rbx + 0xc]
lea r14, [rbx + 0x20]
mov r13d, dword [rbx + 0x10]
lea ebp, [rdx + 0x14]
mov r8d, dword [rbx + 0x14]
mov r11d, r12d
mov r10d, dword [rbx + 0x18]
mov r9d, r13d
mov r15d, dword [rbx + 0x1c]
mov eax, r8d
mov edx, r9d
and eax, r9d
not edx
and edx, r10d
mov ecx, r11d
rol ecx, 5
or edx, eax
add ecx, r15d
mov r15d, r10d
add ecx, edx
mov r10d, r8d
add ecx, dword [r14]
mov r8d, r9d
ror r8d, 2
lea r14, [r14 + 4]
mov r9d, r11d
lea r11d, [rcx + 0x5a827999]
sub rbp, 1
jne 0x140030757
lea r14d, [rbp + 0x14]
mov ebp, r14d
lea rdx, [rbx + 0x70]
mov eax, r10d
mov ecx, r11d
xor eax, r8d
rol ecx, 5
xor eax, r9d
add eax, ecx
add eax, dword [rdx]
lea rdx, [rdx + 4]
add eax, r15d
mov r15d, r10d
mov r10d, r8d
mov r8d, r9d
ror r8d, 2
mov r9d, r11d
lea r11d, [rax + 0x6ed9eba1]
sub rbp, 1
jne 0x1400307a1
lea rbp, [rbx + 0xc0]
mov edx, r11d
mov ecx, r8d
or ecx, r9d
rol edx, 5
and ecx, r10d
mov eax, r8d
and eax, r9d
or ecx, eax
add ecx, dword [rbp]
lea eax, [r15 + rdx]
add eax, 0x8f1bbcdc
lea rbp, [rbp + 4]
add eax, ecx
mov r15d, r10d
mov r10d, r8d
mov r8d, r9d
ror r8d, 2
mov r9d, r11d
mov r11d, eax
sub r14, 1
jne 0x1400307df
lea rdx, [rbx + 0x110]
lea ebp, [r14 + 0x14]
mov eax, r10d
mov ecx, r11d
xor eax, r8d
rol ecx, 5
xor eax, r9d
add ecx, r15d
add eax, 0xca62c1d6
mov r15d, r10d
add eax, dword [rdx]
mov r10d, r8d
mov r8d, r9d
lea rdx, [rdx + 4]
add eax, ecx
ror r8d, 2
mov r9d, r11d
mov r11d, eax
sub rbp, 1
jne 0x14003082c
add dword [rbx + 0x14], r8d
add eax, r12d
add dword [rbx + 0x18], r10d
add dword [rbx + 0x1c], r15d
add qword [rbx], 0x200
mov dword [rbx + 0xc], eax
lea eax, [r9 + r13]
mov dword [rbx + 0x10], eax
mov dword [rbx + 8], esi
mov eax, esi
cmp eax, 0x38
jne 0x1400306fe
mov rbp, qword [rsp + 0x58]
mov edx, eax
mov rcx, rdi
shr rdx, 2
shr rcx, 0x38
mov eax, dword [rbx + rdx*4 + 0x20]
shl eax, 8
or ecx, eax
mov dword [rbx + rdx*4 + 0x20], ecx
inc dword [rbx + 8]
mov eax, dword [rbx + 8]
cmp eax, 0x40
jne 0x1400308c7
mov rcx, rbx
call fcn.140030a68
mov eax, dword [rbx + 8]
mov edx, eax
mov rax, rdi
shr rax, 0x30
movzx ecx, al
shr rdx, 2
mov eax, dword [rbx + rdx*4 + 0x20]
shl eax, 8
or ecx, eax
mov dword [rbx + rdx*4 + 0x20], ecx
inc dword [rbx + 8]
mov eax, dword [rbx + 8]
cmp eax, 0x40
jne 0x1400308fa
mov rcx, rbx
call fcn.140030a68
mov eax, dword [rbx + 8]
mov edx, eax
mov rax, rdi
shr rax, 0x28
movzx ecx, al
shr rdx, 2
mov eax, dword [rbx + rdx*4 + 0x20]
shl eax, 8
or ecx, eax
mov dword [rbx + rdx*4 + 0x20], ecx
inc dword [rbx + 8]
mov eax, dword [rbx + 8]
cmp eax, 0x40
jne 0x14003092d
mov rcx, rbx
call fcn.140030a68
mov eax, dword [rbx + 8]
mov edx, eax
mov rax, rdi
shr rax, 0x20
movzx ecx, al
shr rdx, 2
mov eax, dword [rbx + rdx*4 + 0x20]
shl eax, 8
or ecx, eax
mov dword [rbx + rdx*4 + 0x20], ecx
inc dword [rbx + 8]
mov eax, dword [rbx + 8]
cmp eax, 0x40
jne 0x140030960
mov rcx, rbx
call fcn.140030a68
mov eax, dword [rbx + 8]
mov edx, eax
mov rax, rdi
shr rax, 0x18
movzx ecx, al
shr rdx, 2
mov eax, dword [rbx + rdx*4 + 0x20]
shl eax, 8
or ecx, eax
mov dword [rbx + rdx*4 + 0x20], ecx
inc dword [rbx + 8]
mov eax, dword [rbx + 8]
cmp eax, 0x40
jne 0x140030993
mov rcx, rbx
call fcn.140030a68
mov eax, dword [rbx + 8]
mov edx, eax
mov rax, rdi
shr rax, 0x10
movzx ecx, al
shr rdx, 2
mov eax, dword [rbx + rdx*4 + 0x20]
shl eax, 8
or ecx, eax
mov dword [rbx + rdx*4 + 0x20], ecx
inc dword [rbx + 8]
mov eax, dword [rbx + 8]
cmp eax, 0x40
jne 0x1400309c6
mov rcx, rbx
call fcn.140030a68
mov eax, dword [rbx + 8]
mov edx, eax
mov rax, rdi
shr rax, 8
movzx ecx, al
shr rdx, 2
mov eax, dword [rbx + rdx*4 + 0x20]
shl eax, 8
or ecx, eax
mov dword [rbx + rdx*4 + 0x20], ecx
inc dword [rbx + 8]
mov eax, dword [rbx + 8]
cmp eax, 0x40
jne 0x1400309f9
mov rcx, rbx
call fcn.140030a68
mov eax, dword [rbx + 8]
mov edx, eax
shr rdx, 2
movzx eax, dil
mov ecx, dword [rbx + rdx*4 + 0x20]
shl ecx, 8
or ecx, eax
mov dword [rbx + rdx*4 + 0x20], ecx
inc dword [rbx + 8]
cmp dword [rbx + 8], 0x40
jne 0x140030a21
mov rcx, rbx
call fcn.140030a68
mov edx, InitCommonControls
mov rcx, rsi
shr rcx, 2
mov al, byte [rbx + rcx*4 + 0xf]
mov byte [rsi + rbp], al
inc rsi
shl dword [rbx + rcx*4 + 0xc], 8
sub rdx, 1
jne 0x140030a26
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret