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

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x158
mov eax, dword [rcx]
mov rdx, rcx
mov dword [rsp + 8], eax
mov dword [rsp + 4], eax
mov eax, dword [rcx + 4]
mov dword [rsp], eax
mov eax, dword [rcx + 8]
mov dword [rsp + reloc.OLEAUT32.dll_VarUI8FromDec], eax
mov eax, dword [rcx + 0xc]
movzx r12d, byte [rdx + 0x1c]
mov dword [rsp + 0x1a8], eax
mov eax, dword [rcx + 0x10]
movzx ecx, byte [rcx + 0x15]
mov dword [rsp + 0x1b0], eax
movzx eax, byte [rdx + 0x16]
shl eax, 8
shl ecx, 0x10
add ecx, eax
shl r12d, 0x18
movzx eax, byte [rdx + 0x14]
shl eax, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x17]
add ecx, eax
movzx eax, byte [rdx + 0x1a]
shl eax, 8
mov dword [rsp + 0x10], ecx
movzx ecx, byte [rdx + 0x19]
shl ecx, 0x10
add ecx, eax
movzx eax, byte [rdx + 0x18]
shl eax, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x1b]
add ecx, eax
movzx eax, byte [rdx + 0x1d]
shl eax, 0x10
add r12d, eax
mov dword [rsp + 0x14], ecx
movzx eax, byte [rdx + 0x1e]
movzx ecx, byte [rdx + 0x20]
shl eax, 8
add r12d, eax
shl ecx, 0x18
movzx eax, byte [rdx + 0x1f]
add r12d, eax
movzx eax, byte [rdx + 0x21]
shl eax, 0x10
add ecx, eax
mov dword [rsp + 0x18], r12d
movzx eax, byte [rdx + 0x22]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x23]
add ecx, eax
movzx eax, byte [rdx + 0x25]
mov dword [rsp + 0x1c], ecx
movzx ecx, byte [rdx + 0x24]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x26]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x27]
add ecx, eax
movzx eax, byte [rdx + 0x29]
mov dword [rsp + 0x20], ecx
movzx ecx, byte [rdx + 0x28]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x2a]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x2b]
add ecx, eax
movzx eax, byte [rdx + 0x2d]
mov dword [rsp + 0x24], ecx
movzx ecx, byte [rdx + 0x2c]
shl ecx, 0x18
shl eax, 0x10
add ecx, eax
movzx eax, byte [rdx + 0x2e]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x2f]
add ecx, eax
movzx eax, byte [rdx + 0x31]
mov dword [rsp + 0x28], ecx
movzx ecx, byte [rdx + 0x30]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x32]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x33]
add ecx, eax
movzx eax, byte [rdx + 0x35]
mov dword [rsp + 0x2c], ecx
movzx ecx, byte [rdx + 0x34]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x36]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x37]
add ecx, eax
movzx eax, byte [rdx + 0x39]
mov dword [rsp + 0x30], ecx
movzx ecx, byte [rdx + 0x38]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x3a]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x3b]
add ecx, eax
movzx eax, byte [rdx + 0x3d]
mov dword [rsp + 0x34], ecx
movzx ecx, byte [rdx + 0x3c]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x3e]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x3f]
add ecx, eax
movzx eax, byte [rdx + 0x41]
mov dword [rsp + 0x38], ecx
movzx ecx, byte [rdx + 0x40]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x42]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x43]
add ecx, eax
movzx eax, byte [rdx + 0x45]
mov dword [rsp + 0x3c], ecx
movzx ecx, byte [rdx + 0x44]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x46]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x47]
add ecx, eax
movzx eax, byte [rdx + 0x49]
mov dword [rsp + 0x40], ecx
movzx ecx, byte [rdx + 0x48]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x4a]
shl eax, 8
add ecx, eax
lea r15, [rsp + 0x18]
movzx eax, byte [rdx + 0x4b]
mov r13d, 8
add ecx, eax
movzx eax, byte [rdx + 0x4d]
mov dword [rsp + 0x44], ecx
movzx ecx, byte [rdx + 0x4c]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x4e]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x4f]
add ecx, eax
movzx eax, byte [rdx + 0x51]
mov dword [rsp + 0x48], ecx
movzx ecx, byte [rdx + 0x50]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rdx + 0x52]
shl eax, 8
add ecx, eax
movzx eax, byte [rdx + 0x53]
add ecx, eax
mov dword [rsp + 0x4c], ecx
nop word [rax + rax]
mov r14d, r12d
mov edi, r12d
xor r14d, dword [r15 - 8]
xor r14d, dword [r15 + 0x2c]
xor r14d, dword [r15 + 0x18]
lea r15, [r15 + 0x20]
rol r14d, 1
mov dword [r15 + 0x18], r14d
mov esi, dword [r15 - 4]
xor esi, dword [r15 - 0x24]
xor esi, dword [r15 + 0x10]
xor esi, dword [r15 - 0x1c]
rol esi, 1
mov dword [r15 + 0x1c], esi
xor edi, dword [r15 + 0x14]
xor edi, dword [r15 - 0x18]
mov r12d, dword [r15]
xor edi, r12d
rol edi, 1
mov dword [r15 + 0x20], edi
xor r14d, dword [r15 + 4]
xor r14d, dword [r15 - 0x14]
xor r14d, dword [r15 - 0x1c]
rol r14d, 1
mov dword [r15 + 0x24], r14d
xor esi, dword [r15 + 8]
xor esi, dword [r15 - 0x10]
xor esi, dword [r15 - 0x18]
rol esi, 1
mov dword [r15 + 0x28], esi
xor edi, dword [r15 - 0xc]
xor edi, dword [r15 - 0x14]
xor edi, dword [r15 + 0xc]
rol edi, 1
mov dword [r15 + 0x2c], edi
xor r14d, dword [r15 + 0x10]
xor r14d, dword [r15 - 0x10]
xor r14d, dword [r15 - 8]
rol r14d, 1
mov dword [r15 + 0x30], r14d
xor esi, dword [r15 + 0x14]
xor esi, dword [r15 - 4]
xor esi, dword [r15 - 0xc]
rol esi, 1
mov dword [r15 + 0x34], esi
sub r13, 1
jne 0x140020420
mov r12d, dword [rsp + reloc.OLEAUT32.dll_VarUI8FromDec]
xor edx, edx
mov r13d, dword [rsp]
mov eax, dword [rsp + 0x1a8]
mov r10d, dword [rsp + 4]
cmp rdx, 0x14
jae 0x14002050d
mov r8d, dword [rsp + 0x1a8]
mov eax, r13d
not eax
mov ecx, r12d
and eax, r8d
and ecx, r13d
or eax, ecx
mov r9d, 0x5a827999
jmp 0x140020556
cmp rdx, 0x28
jae 0x14002051b
mov r9d, 0x6ed9eba1
jmp 0x140020548
cmp rdx, 0x3c
jae 0x140020542
mov r8d, dword [rsp + 0x1a8]
mov eax, r12d
or eax, r13d
mov ecx, r12d
and eax, r8d
and ecx, r13d
or eax, ecx
mov r9d, 0x8f1bbcdc
jmp 0x140020556
mov r9d, 0xca62c1d6
mov r8d, dword [rsp + 0x1a8]
xor eax, r12d
xor eax, r13d
mov ecx, r10d
rol ecx, 5
add ecx, dword [rsp + rdx*4 + 0x10]
inc rdx
add ecx, eax
mov eax, r12d
add ecx, r9d
mov dword [rsp + 0x1a8], eax
add ecx, dword [rsp + 0x1b0]
mov r12d, r13d
ror r12d, 2
mov r13d, r10d
mov dword [rsp + 0x1b0], r8d
mov r9d, r8d
mov r10d, ecx
cmp rdx, 0x50
jl 0x1400204e7
mov eax, dword [rsp + 8]
mov r8d, dword [rsp + 0x1a8]
add eax, ecx
mov rcx, qword [rsp + 0x1a0]
add dword [rcx + 4], r13d
add dword [rcx + 8], r12d
add dword [rcx + 0xc], r8d
add dword [rcx + 0x10], r9d
mov dword [rcx], eax
mov dword [rcx + 0x54], 0
add rsp, 0x158
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret