Function at 0x4ba4c6
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
lea eax, [ebp - 0x1c]
push eax
xor bl, bl
call dword [0x401248]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
add esp, 4
test ecx, ecx
jg 0x4ba52c
jl 0x4ba4ec
test eax, eax
jae 0x4ba4fe
cmp dword [ebp + 8], 0
je 0x4ba4fe
mov eax, 0x80004005
pop ebx
mov esp, ebp
pop ebp
ret 8
test ecx, ecx
jg 0x4ba52c
jl 0x4ba50b
cmp eax, 0x15180
jae 0x4ba52c
cmp dword [ebp + 8], 0
jne 0x4ba52c
add eax, 0x15180
adc ecx, 0
js 0x4ba511
jg 0x4ba524
cmp eax, 0x15180
jb 0x4ba511
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov bl, 1
push esi
lea ecx, [ebp - 0x1c]
push edi
push ecx
call dword [0x40124c]
mov ecx, 9
mov esi, eax
lea edi, [ebp - 0x40]
rep movsd dword es:[edi], dword [esi]
mov esi, 0x64
add esp, 4
cmp dword [ebp - 0x2c], esi
jge 0x4ba55c
cmp dword [ebp + 8], 0
jne 0x4ba55c
mov dword [ebp - 0x2c], esi
mov bl, 1
mov edi, dword [0x401130]
lea edx, [ebp - 0x40]
push edx
call edi
mov dword [ebp - 0x1c], eax
and eax, edx
add esp, 4
cmp eax, 0xffffffff
mov dword [ebp - 0x18], edx
jne 0x4ba586
pop edi
pop esi
mov eax, 0x80004005
pop ebx
mov esp, ebp
pop ebp
ret 8
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 8]
push eax
push 1
push 0
push 0x4ba74c
push 0x80000001
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x20], 0xffffffff
call dword [sym.imp.vsansi.dll_RegOpenKeyExW]
test eax, eax
jne 0x4ba62b
lea ecx, [ebp - 0xc]
push ecx
mov ecx, dword [ebp - 8]
lea edx, [ebp - 4]
push edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x10]
push eax
push 0
push 0x4ba728
mov esi, 4
push ecx
mov dword [ebp - 0xc], esi
call dword [sym.imp.vsansi.dll_RegQueryValueExW]
test eax, eax
jne 0x4ba621
cmp dword [ebp - 0x10], esi
jne 0x4ba621
mov eax, dword [ebp - 4]
test eax, eax
je 0x4ba621
mov ecx, eax
mov edx, eax
shr ecx, 8
shr edx, 0x10
and ecx, 0xf
and eax, 0x1f
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 8]
push edx
call dword [fcn.0040127c]
lea eax, [ebp - 0x40]
push eax
call edi
fild qword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
fild qword [ebp - 0x14]
add esp, 4
fsubp st(1)
fst qword [ebp - 0x1c]
fldz
fcomp st(1)
fnstsw ax
fld qword [0x4ba720]
test ah, 0x41
jne 0x4ba66e
cmp dword [ebp + 8], 0
je 0x4ba6ad
pop edi
fstp st(0)
pop esi
fstp st(0)
mov eax, 0x80004005
pop ebx
mov esp, ebp
pop ebp
ret 8
mov esi, dword [ebp + 8]
test esi, esi
je 0x4ba6ad
fdivp st(1)
sub esp, 8
fstp qword [esp]
call fcn.00442f16
fnstcw word [ebp + 0xa]
add esp, 8
movzx eax, word [ebp + 0xa]
or eax, 0xc00
mov dword [ebp - 0x10], eax
fldcw word [ebp - 0x10]
fistp dword [ebp - 0x10]
mov cx, word [ebp - 0x10]
mov word [esi], cx
fldcw word [ebp + 0xa]
fld qword [ebp - 0x1c]
fld qword [0x4ba720]
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x4ba70d
fldz
fcomp st(2)
fnstsw ax
test ah, 0x41
jne 0x4ba6ce
call fcn.004e5384
fld qword [0x4ba720]
fadd st(1), st(0)
mov bl, 1
call fcn.004e5384
fmul qword [0x442e28]
fnstcw word [ebp + 0xa]
pop edi
movzx eax, word [ebp + 0xa]
or eax, 0xc00
mov dword [ebp + 0xc], eax
neg bl
fldcw word [ebp + 0xc]
fistp dword [ebp + 0xc]
sbb ebx, ebx
mov dx, word [ebp + 0xc]
and ebx, 0x80004005
mov word [esi], dx
fldcw word [ebp + 0xa]
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 8
pop edi
fstp st(0)
pop esi
fstp st(0)
mov eax, 0x80070057
pop ebx
mov esp, ebp
pop ebp
ret 8