Function at 0x10006190
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101c3f6d
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push esi
push edi
mov eax, dword [0x10244540]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov eax, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
mov cl, 0xe3
mov dword [ebp - 0x18], eax
mov al, cl
mov byte [ebp - 0x48], cl
xor al, 0x5c
mov dword [ebp - 0x54], 0
xorps xmm0, xmm0
mov dword [ebp - 0x50], 0
xor cl, 0x3f
mov dword [ebp - 0x4c], 0
xor edx, edx
mov dword [ebp - 0x58], 0x101f3f48
movups xmmword [ebp - 0x44], xmm0
mov byte [ebp - 0x20], al
xor esi, esi
movups xmmword [ebp - 0x34], xmm0
mov byte [ebp - 0x1f], al
mov byte [ebp - 0x1e], cl
mov byte [ebp - 0x1d], al
mov byte [ebp - 0x1c], 0
nop dword [eax + eax]
mov eax, esi
add esi, 0x5bd1e995
xor eax, 0xb895047e
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
sar eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
sar eax, 0xf
xor eax, ecx
mov dword [ebp + edx*4 - 0x44], eax
inc edx
cmp edx, 8
jb 0x10006210
push 4
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x58]
call fcn.100046f0
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0
mov ecx, 4
cmp dword [edi + 0x10], ecx
xorps xmm0, xmm0
movups xmmword [ebp - 0x70], xmm0
cmovb ecx, dword [edi + 0x10]
mov eax, edi
cmp dword [edi + 0x14], 0xf
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
jbe 0x1000628e
mov eax, dword [edi]
push ecx
push eax
lea ecx, [ebp - 0x70]
call fcn.100191c0
xor edx, edx
xor esi, esi
nop dword [eax]
mov eax, esi
add esi, 0x5bd1e995
xor eax, 0xb895047e
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
sar eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
sar eax, 0xf
xor eax, ecx
mov dword [ebp + edx*4 - 0x44], eax
inc edx
cmp edx, 8
jb 0x100062a0
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x50]
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], eax
cmp esi, ecx
ja 0x1000633d
push esi
call fcn.101a087d
mov ecx, eax
add esp, 4
mov dword [ebp - 0x54], ecx
test ecx, ecx
je 0x1000633d
mov eax, dword [ebp - 0x24]
add esi, 0xfffffff8
push esi
add eax, 8
push eax
push ecx
call fcn.10190960
mov ecx, dword [ebp - 0x54]
lea eax, [ebp - 0x44]
push eax
push 0
mov edx, esi
call fcn.10004600
mov edx, dword [ebp - 0x54]
add esp, 0x14
test edx, edx
je 0x1000633d
mov al, byte [ebp - 0x48]
xor byte [edx], al
xor byte [edx + 1], al
xor byte [edx + 2], al
xor byte [edx + 3], al
mov byte [edx + 4], 0
jmp 0x1000633f
xor edx, edx
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10006344
sub ecx, esi
lea eax, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0xf
mov esi, dword [ebp - 0x70]
push ecx
push edx
push dword [ebp - 0x60]
cmova eax, esi
push eax
call fcn.10019f40
mov byte [ebp - 0xd], al
add esp, 0x10
mov eax, dword [ebp - 0x5c]
cmp eax, 0xf
jbe 0x1000639e
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x10006394
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000641a
push ecx
push esi
call fcn.1018eb3e
add esp, 8
cmp byte [ebp - 0xd], 0
mov dword [ebp - 4], 0xffffffff
je 0x100063fd
mov esi, dword [ebp - 0x14]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov eax, dword [edi + 0x10]
cmp eax, 4
jb 0x1000641f
add eax, 0xfffffffc
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovb ecx, eax
cmp dword [edi + 0x14], 0xf
jbe 0x100063de
mov edi, dword [edi]
push ecx
lea ecx, [edi + 4]
push ecx
mov ecx, esi
call fcn.100191c0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x14]
push edi
call fcn.100175c0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.1019b181
call fcn.10018190
int3