Function at 0x1005b850
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x10331c40]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [edi], 0x101c0a74
lea eax, [edi + 0x20]
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x18], 0
cmp byte [0x1020af08], 0
je 0x1005b901
cmp byte [0x1020af09], 0
jne 0x1005b945
mov byte [0x1020af09], 1
xor esi, esi
nop
xor edx, edx
mov ebx, esi
xor edx, dword [0x1020af24]
xor ebx, dword [0x1020af20]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x1020af0a], al
inc esi
cmp esi, 0x14
jb 0x1005b8c0
jmp 0x1005b942
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x1020af24]
xor ebx, dword [0x1020af20]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x1020af0a], al
inc esi
cmp esi, 0x14
jb 0x1005b903
lea eax, [edi + 0x20]
lea ecx, [ebp - 0x1d]
push ecx
push 0x1020af1d
push 0x1020af0a
mov ecx, eax
call fcn.10054040
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], 0
mov dword [edi + 0x48], 0
push 0x20
mov dword [edi + 0x50], 0
mov dword [edi + 0x54], 0
call fcn.1015536a
xorps xmm0, xmm0
push 0x40
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [edi + 0x50], eax
movups xmmword [edi + 0x58], xmm0
movq qword [edi + 0x68], xmm0
mov dword [edi + 0x70], 0
mov dword [edi + 0x74], 0
mov dword [edi + 0x78], 0
call fcn.1015536a
add esp, 8
mov ecx, 0x1020aef8
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [edi + 0x74], eax
lea eax, [ebp - 0x1c]
push eax
mov dword [edi + 0x7c], 0
mov byte [edi + 0x80], 0
mov dword [edi + 0x84], 0
mov dword [edi + 0x88], 0
call fcn.1005bd50
cmp dword [ebp - 8], 0xf
lea esi, [ebp - 0x1c]
xorps xmm0, xmm0
cmova esi, dword [ebp - 0x1c]
mov edx, esi
movups xmmword [edi + 0x8c], xmm0
mov dword [edi + 0x9c], 0
mov dword [edi + 0xa0], 0
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x1005ba40
sub edx, ecx
lea ecx, [edi + 0x8c]
push edx
push esi
call fcn.100481b0
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x1005ba8c
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1005ba82
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1005ba82
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1015539a
add esp, 8
push 0xaf0
lea esi, [edi + 0xa4]
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [esi + 0x18]
mov eax, 0x32
nop word [eax + eax]
mov byte [esi], 0
xorps xmm0, xmm0
lea esi, [esi + 0x38]
lea ecx, [ecx + 0x38]
movups xmmword [ecx - 0x4c], xmm0
mov dword [ecx - 0x3c], 0
mov dword [ecx - 0x38], 0xf
mov byte [ecx - 0x4c], 0
movups xmmword [ecx - 0x34], xmm0
mov dword [ecx - 0x24], 0
mov dword [ecx - 0x20], 0xf
mov byte [ecx - 0x34], 0
mov dword [ecx - 0x1c], 0
sub eax, 1
jne 0x1005bab0
mov ecx, dword [ebp - 4]
mov dword [edi + 0xb94], eax
xor ecx, ebp
mov dword [edi + 0xb98], eax
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.101556c2
mov esp, ebp
pop ebp
ret