Function at 0x10176740
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1032200d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x68
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x1060c1d4]
cmp eax, dword [0x1060c1d8]
jne 0x101769b4
xor esi, esi
mov dword [ebp - 0x6c], esi
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [0x1060b330]
test ecx, ecx
jne 0x10176912
cmp byte [0x104b1a30], cl
jne 0x1017681e
mov byte [0x104b1a30], 1
xor edi, edi
nop
xor edx, edx
mov eax, edi
xor eax, dword [0x104b1a40]
xor edx, dword [0x104b1a44]
xor eax, 0x1de26cd5
xor edx, 0xd28f2c5
mov dword [ebp - 0x64], eax
mov esi, dword [ebp - 0x64]
mov ecx, edx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
shr ecx, 7
xor esi, eax
xor edx, ecx
mov dword [ebp - 0x64], esi
mov ecx, esi
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [edi + 0x104b1a31]
xor cl, byte [ebp - 0x64]
mov byte [edi + 0x104b1a31], cl
inc edi
cmp edi, 0xb
jb 0x101767c0
push ecx
push 0x104b1a3b
push 0x104b1a31
lea ecx, [ebp - 0x40]
call fcn.1001a620
mov dword [ebp - 4], 0
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 0x10
cmovae eax, dword [ebp - 0x40]
cmp byte [0x104b19f0], 0
mov dword [ebp - 0x68], eax
jne 0x101768be
mov byte [0x104b19f0], 1
xor edi, edi
nop dword [eax + eax]
xor edx, edx
mov eax, edi
xor eax, dword [0x104b1a00]
xor edx, dword [0x104b1a04]
xor eax, 0x1de26cd5
xor edx, 0xd28f2c5
mov dword [ebp - 0x64], eax
mov esi, dword [ebp - 0x64]
mov ecx, edx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
shr ecx, 7
xor esi, eax
xor edx, ecx
mov dword [ebp - 0x64], esi
mov ecx, esi
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [edi + 0x104b19f1]
xor cl, byte [ebp - 0x64]
mov byte [edi + 0x104b19f1], cl
inc edi
cmp edi, 0xc
jb 0x10176860
push ecx
push 0x104b19fc
push 0x104b19f1
lea ecx, [ebp - 0x60]
call fcn.1001a620
cmp dword [ebp - 0x4c], 0x10
lea eax, [ebp - 0x60]
cmovae eax, dword [ebp - 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push dword [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [ebp - 0x60]
mov dword [0x1060b330], eax
call fcn.10019dd0
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
call fcn.10019dd0
mov ecx, dword [0x1060b330]
mov esi, dword [ebp - 0x6c]
lea eax, [esi + 1]
push eax
mov esi, eax
mov dword [ebp - 0x6c], eax
call ecx
movss xmm1, dword [0x1041ef08]
add esp, 4
call fcn.10176570
movaps xmm1, xmm0
xorps xmm0, xmm0
movss xmm0, xmm1
call fcn.10311b70
movaps xmm1, xmm0
movaps xmmword [ebp - 0x60], xmm0
shufps xmm1, xmm0, 1
movups xmmword [ebp - 0x40], xmm1
movss dword [ebp - 0x68], xmm1
movss xmm1, dword [0x1041edc4]
movss dword [ebp - 0x64], xmm0
call fcn.10176570
mov eax, dword [0x1060c1d8]
movaps xmm1, xmm0
movss dword [ebp - 0x70], xmm1
cmp eax, dword [0x1060c1dc]
je 0x10176996
movups xmm0, xmmword [ebp - 0x40]
movss dword [eax + 8], xmm1
movss dword [eax], xmm0
movaps xmm0, xmmword [ebp - 0x60]
movss dword [eax + 4], xmm0
add dword [0x1060c1d8], 0xc
jmp 0x101769a8
lea ecx, [ebp - 0x68]
push ecx
lea ecx, [ebp - 0x64]
push ecx
lea ecx, [ebp - 0x70]
push ecx
push eax
call fcn.1017d1b0
cmp esi, 0xff
jl 0x101767a0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.102bb91c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret