Function at 0x1000ca40
Capabilities:
Encode data using xor
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1ac
mov eax, dword [0x1003a008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x198]
mov dword [ebp - 0x1ac], ecx
push eax
push 0x20019
push 0
push 0
push 0x80000003
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
movsd xmm0, qword [0x10037db8]
lea eax, [ebp - 0x19c]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push eax
movsd qword [0x1003a920], xmm0
movsd xmm0, qword [0x10037dd8]
push 0
movsd qword [0x1003a910], xmm0
movsd xmm0, qword [0x10037dc0]
push 0
push 0
push dword [ebp - 0x198]
movsd qword [0x1003a928], xmm0
movsd xmm0, qword [0x10037db0]
movsd qword [0x1003a918], xmm0
mov dword [ebp - 0x19c], 0
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
movsd xmm2, qword [0x1003a920]
xor eax, eax
movsd xmm6, qword [0x10037da8]
movaps xmm0, xmm2
movsd xmm1, qword [0x1003a918]
addsd xmm0, xmm6
movsd xmm4, qword [0x1003a910]
xor esi, esi
movsd xmm3, qword [0x1003a928]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
divsd xmm1, xmm0
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x1a8], 4
movaps xmm0, xmm4
addsd xmm0, xmm6
addsd xmm1, xmm4
divsd xmm2, xmm0
movaps xmm0, xmm3
addsd xmm0, xmm6
addsd xmm2, xmm3
divsd xmm4, xmm0
movaps xmm0, xmm1
addsd xmm0, xmm6
addsd xmm4, xmm1
divsd xmm3, xmm0
movaps xmm0, xmm2
movaps xmm5, xmm4
addsd xmm3, xmm2
mulsd xmm0, xmm1
mulsd xmm5, xmm2
subsd xmm0, xmm4
mulsd xmm3, xmm1
subsd xmm3, xmm2
movsd qword [0x1003a918], xmm0
subsd xmm5, xmm3
mulsd xmm4, xmm3
movsd qword [0x1003a928], xmm3
subsd xmm4, xmm0
movsd qword [0x1003a920], xmm5
movsd qword [0x1003a910], xmm4
cmp dword [ebp - 0x19c], eax
jbe 0x1000cec1
nop dword [eax + eax]
push 0x40
lea eax, [ebp - 0x44]
mov dword [ebp - 0x1a4], 0x40
push 0
push eax
call fcn.1001fb10
add esp, 0xc
lea eax, [ebp - 0x1a4]
push 0
push 0
push 0
push 0
push eax
lea eax, [ebp - 0x44]
push eax
push esi
push dword [ebp - 0x198]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
movsd xmm3, qword [0x1003a928]
lea eax, [ebp - 0x144]
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
push 0x100
mulsd xmm2, xmm3
push 0
push eax
addsd xmm4, qword [0x1003a920]
addsd xmm2, qword [0x1003a910]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
call fcn.1001fb10
movaps xmm0, xmmword [0x10037e90]
add esp, 0xc
movups xmmword [ebp - 0x190], xmm0
xor ecx, ecx
mov dword [ebp - 0x160], 0xd0dac1d7
movaps xmm0, xmmword [0x10037e80]
movups xmmword [ebp - 0x180], xmm0
mov dword [ebp - 0x15c], 0xdceb97c2
movaps xmm0, xmmword [0x10037e70]
movups xmmword [ebp - 0x170], xmm0
mov dword [ebp - 0x158], 0xd3d5cfce
mov word [ebp - 0x154], 0xccd9
mov byte [ebp - 0x152], 0
nop
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x190], al
inc ecx
cmp ecx, 0x3e
jb 0x1000cce0
lea eax, [ebp - 0x44]
mov byte [ebp - 0x152], 0
push eax
lea eax, [ebp - 0x190]
push eax
lea eax, [ebp - 0x144]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
movsd xmm3, qword [0x1003a918]
lea eax, [ebp - 0x194]
movsd xmm6, qword [0x10037da8]
movaps xmm1, xmm3
movsd xmm5, qword [0x1003a928]
addsd xmm1, xmm6
movaps xmm0, xmm5
movsd xmm4, qword [0x1003a910]
movsd xmm2, qword [0x1003a920]
add esp, 0xc
divsd xmm0, xmm1
push eax
lea eax, [ebp - 0x144]
push 0x20019
push 0
push eax
push 0x80000003
movaps xmm1, xmm3
subsd xmm4, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a910], xmm4
divsd xmm1, xmm0
movaps xmm0, xmm4
subsd xmm5, xmm1
movaps xmm1, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm5
addsd xmm5, xmm6
divsd xmm1, xmm0
divsd xmm4, xmm5
subsd xmm3, xmm1
subsd xmm2, xmm4
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a920], xmm2
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
movsd xmm3, qword [0x1003a918]
xor ecx, ecx
movsd xmm1, qword [0x1003a910]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a928]
movaps xmm0, xmm1
mov dword [ebp - 0x150], 0xfdebf1d2
movsd xmm2, qword [0x1003a920]
mulsd xmm0, xmm2
mov dword [ebp - 0x14c], 0xe8e6c2ff
subsd xmm4, xmm2
mulsd xmm3, xmm2
mov dword [ebp - 0x148], 0xe9e7e8
subsd xmm0, xmm4
movsd qword [0x1003a928], xmm4
subsd xmm3, xmm1
mulsd xmm4, xmm1
movsd qword [0x1003a920], xmm0
subsd xmm4, xmm3
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a910], xmm4
nop
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x150], al
inc ecx
cmp ecx, 0xb
jb 0x1000ce40
lea eax, [ebp - 0x1a8]
mov byte [ebp - 0x145], 0
push eax
lea eax, [ebp - 0x1a0]
push eax
push 0
push 0
lea eax, [ebp - 0x150]
push eax
push dword [ebp - 0x194]
call ebx
test eax, eax
jne 0x1000ce86
mov eax, dword [ebp - 0x1a0]
test eax, eax
jne 0x1000cea1
push dword [ebp - 0x194]
call edi
inc esi
cmp esi, dword [ebp - 0x19c]
jb 0x1000cbd0
mov eax, dword [ebp - 0x1a0]
movsd xmm6, qword [0x10037da8]
movsd xmm3, qword [0x1003a928]
movsd xmm4, qword [0x1003a910]
movsd xmm5, qword [0x1003a920]
movsd xmm2, qword [0x1003a918]
movaps xmm0, xmm5
addsd xmm0, xmm6
divsd xmm2, xmm0
movaps xmm0, xmm4
addsd xmm0, xmm6
addsd xmm2, xmm4
divsd xmm5, xmm0
movsd qword [0x1003a918], xmm2
movaps xmm0, xmm3
addsd xmm0, xmm6
movaps xmm1, xmm2
addsd xmm5, xmm3
addsd xmm1, xmm6
divsd xmm4, xmm0
movsd qword [0x1003a920], xmm5
movaps xmm0, xmm2
addsd xmm0, xmm6
addsd xmm4, xmm2
divsd xmm3, xmm0
movsd qword [0x1003a910], xmm4
addsd xmm3, xmm5
movsd qword [0x1003a928], xmm3
test eax, eax
je 0x1000d081
mov dword [ebp - 0x1a4], 0x100
xor ecx, ecx
mov dword [ebp - 0x150], 0xfdebf1d2
mov dword [ebp - 0x14c], 0xfbedd4ff
mov dword [ebp - 0x148], 0xfeeefc
nop
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x150], al
inc ecx
cmp ecx, 0xb
jb 0x1000cf60
lea eax, [ebp - 0x1a4]
mov byte [ebp - 0x145], 0
push eax
push dword [ebp - 0x1ac]
lea eax, [ebp - 0x150]
push 0
push 0
push eax
push dword [ebp - 0x194]
call ebx
movsd xmm3, qword [0x1003a918]
movsd xmm1, qword [0x1003a910]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a928]
movaps xmm0, xmm1
movsd xmm2, qword [0x1003a920]
push dword [ebp - 0x194]
mulsd xmm0, xmm2
subsd xmm4, xmm2
mulsd xmm3, xmm2
subsd xmm0, xmm4
movsd qword [0x1003a928], xmm4
subsd xmm3, xmm1
mulsd xmm4, xmm1
movsd qword [0x1003a920], xmm0
subsd xmm4, xmm3
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a910], xmm4
call edi
push dword [ebp - 0x198]
call edi
movsd xmm3, qword [0x1003a928]
mov al, 1
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
pop edi
mulsd xmm2, xmm3
pop esi
pop ebx
addsd xmm4, qword [0x1003a920]
addsd xmm2, qword [0x1003a910]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret
movaps xmm0, xmm3
divsd xmm0, xmm1
movaps xmm1, xmm2
subsd xmm4, xmm0
movaps xmm0, xmm5
addsd xmm0, xmm6
push dword [ebp - 0x198]
movsd qword [0x1003a910], xmm4
divsd xmm1, xmm0
movaps xmm0, xmm4
subsd xmm3, xmm1
movaps xmm1, xmm5
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm3
addsd xmm3, xmm6
divsd xmm1, xmm0
divsd xmm4, xmm3
subsd xmm2, xmm1
subsd xmm5, xmm4
movsd qword [0x1003a918], xmm2
movsd qword [0x1003a920], xmm5
call edi
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001e319
mov esp, ebp
pop ebp
ret