Function at 0x5aa360
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d0c50
mov eax, dword fs:[0]
push eax
sub esp, 0x100
mov eax, dword [0x692c00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xf8], ecx
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0x24]
mov edi, dword [ebp + 0x20]
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp + 0x10]
push str.bcryptPbkdf
mov dword [ebp - 0xec], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0xf4], ecx
push ecx
lea ecx, [ebp - 0xdc]
mov dword [ebp - 0x10c], edi
mov dword [ebp - 0xfc], eax
movq qword [ebp - 0xdc], xmm0
mov dword [ebp - 0xd4], 0
call fcn.004481f0
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.00436dd0
cmp dword [ebp + 0x18], 1
jb 0x5aa650
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x5aa650
test esi, esi
je 0x5aa650
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x5aa650
cmp eax, 0x400
ja 0x5aa650
cmp esi, 0x100000
ja 0x5aa650
lea eax, [esi + 4]
push eax
mov dword [ebp - 0x104], eax
call fcn.0040dfe0
add esp, 4
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x5aa650
push dword [ebp + 0x1c]
call fcn.0040dfe0
add esp, 4
mov dword [ebp - 0x100], eax
test eax, eax
je 0x5aa650
mov eax, dword [ebp + 0x1c]
xor edx, edx
push esi
push dword [ebp - 0xec]
lea ecx, [eax + 0x1f]
dec eax
shr ecx, 5
add eax, ecx
mov dword [ebp - 0x108], ecx
div ecx
push dword [ebp - 0xe8]
mov dword [ebp - 0xf0], eax
call sub.VCRUNTIME140.dll_memcpy
lea eax, [ebp - 0xd0]
push eax
push edi
push dword [ebp - 0xe4]
call fcn.004d5110
mov edx, dword [ebp - 0xe8]
mov ecx, 1
add esp, 0x18
mov dword [ebp - 0xe4], ecx
lea eax, [esi + edx]
mov esi, dword [ebp - 0xf0]
mov dword [ebp - 0xec], eax
mov edi, dword [ebp - 0xec]
mov eax, ecx
shr eax, 0x18
mov byte [edi], al
mov eax, ecx
shr eax, 0x10
mov byte [edi + 1], al
mov eax, ecx
shr eax, 8
mov byte [edi + 2], al
mov eax, edi
mov byte [eax + 3], cl
lea eax, [ebp - 0x90]
push eax
push dword [ebp - 0x104]
push edx
call fcn.004d5110
mov ecx, dword [ebp - 0xf8]
lea eax, [ebp - 0x30]
add esp, 0xc
push dword [ebp - 0xf4]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.005aa150
movups xmm0, xmmword [ebp - 0x30]
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 0x1c]
movups xmmword [ebp - 0x50], xmm0
movups xmm0, xmmword [ebp - 0x20]
movups xmmword [ebp - 0x40], xmm0
cmp eax, 1
jbe 0x5aa5b9
mov edi, dword [ebp - 0xf4]
lea esi, [eax - 1]
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x30]
push 0x20
push eax
call fcn.004d5110
mov ecx, dword [ebp - 0xf8]
lea eax, [ebp - 0x30]
add esp, 0xc
push edi
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.005aa150
xor eax, eax
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x50]
movups xmm1, xmmword [ebp + eax - 0x30]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 0x50], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x5aa590
sub esi, 1
jne 0x5aa552
mov esi, dword [ebp - 0xf0]
mov edi, dword [ebp + 0x1c]
cmp esi, edi
mov eax, edi
cmovb eax, esi
xor edx, edx
mov esi, eax
mov dword [ebp - 0xf0], esi
test esi, esi
je 0x5aa5fd
mov ecx, dword [ebp - 0xe4]
mov edi, dword [ebp - 0x100]
dec ecx
nop dword [eax + eax]
cmp ecx, dword [ebp - 0xfc]
jae 0x5aa5fa
mov al, byte [ebp + edx - 0x50]
inc edx
mov byte [ecx + edi], al
add ecx, dword [ebp - 0x108]
cmp edx, esi
jb 0x5aa5e0
mov edi, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0xe4]
sub edi, edx
mov edx, dword [ebp - 0xe8]
inc ecx
mov dword [ebp + 0x1c], edi
mov dword [ebp - 0xe4], ecx
test edi, edi
jne 0x5aa4d3
push edx
call fcn.005b34d6
mov esi, dword [ebp - 0x100]
add esp, 4
mov ecx, dword [ebp - 0x10c]
push dword [ebp - 0xfc]
push esi
call fcn.004354f0
push esi
call fcn.005b34d6
add esp, 4
mov byte [ebp - 0xdd], 1
jmp 0x5aa657
mov byte [ebp - 0xdd], 0
lea ecx, [ebp - 0xdc]
call fcn.004482f0
mov al, byte [ebp - 0xdd]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005b34c8
mov esp, ebp
pop ebp
ret 0x20