Function at 0x43d580
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4da540
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x540c80]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, edx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 4], 0
mov eax, dword [0x5406d8]
mov ecx, 0x5406d8
mov dword [ebp - 0x10], 0x1fffff
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 2
mov eax, dword [ebp + 0x10]
or edi, 0xffffffff
cmp dword [eax - 0xc], 0
je 0x43d621
push 0x525248
lea edx, [ebp + 0x10]
lea ecx, [ebp - 0x28]
call fcn.00418660
add esp, 4
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x20]
call fcn.004026b0
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43d621
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5406d8]
mov ecx, 0x5406d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 6
mov edx, dword [ebp + 8]
push 0
lea ecx, [ebp - 0x30]
call fcn.0043cec0
add esp, 4
mov byte [ebp - 4], 7
push eax
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x2c]
call fcn.0040f160
add esp, 4
mov byte [ebp - 4], 8
mov edx, dword [eax]
mov esi, dword [ebp - 0x14]
lea ecx, [edx - 0x10]
add esi, 0xfffffff0
cmp ecx, esi
je 0x43d6b2
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x43d6a3
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x43d6a3
call fcn.004028c0
mov dword [ebp - 0x28], eax
mov ecx, edi
lock xadd dword [ebx], ecx
dec ecx
test ecx, ecx
jg 0x43d69b
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x28]
add eax, 0x10
mov dword [ebp - 0x14], eax
jmp 0x43d6af
push dword [edx - 0xc]
lea ecx, [ebp - 0x14]
push edx
call fcn.00402790
mov ebx, dword [ebp - 0x18]
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43d6d2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43d6f2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push 0
push dword [ebp - 0x14]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x43d7f7
mov ecx, dword [0x545d90]
mov esi, 0xd
lea eax, [ecx + 1]
imul eax, ecx
cdq
idiv esi
cmp edx, 8
jne 0x43d780
movsd xmm3, qword [0x528e10]
movsd xmm6, qword [0x528e38]
movsd xmm5, qword [0x528e08]
movd xmm4, ecx
xorps xmm2, xmm2
cvtdq2pd xmm4, xmm4
lea ecx, [ecx]
addsd xmm2, xmm3
movapd xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x43d76a
subsd xmm2, xmm3
divsd xmm3, xmm6
movapd xmm1, xmm2
mulsd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm1
comisd xmm0, xmm5
ja 0x43d750
xor bl, bl
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43d7a2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43d7c2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp + 0x10]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x43d7e3
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x10]
push eax
push 0
lea eax, [ebp - 0x24]
push eax
push 0
push dword [ebx]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x1c]
call ebx
xor ecx, ecx
test eax, eax
mov eax, dword [ebp - 0x10]
lea edx, [ecx + 2]
jne 0x43d820
inc eax
mov dword [ebp - 0x10], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004aed89
mov esi, eax
mov eax, dword [ebp - 0x10]
add esp, 4
add eax, eax
push eax
push 0
push esi
call fcn.004b4a90
mov eax, dword [ebp - 0x10]
add esp, 0xc
add eax, eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
push esi
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x18]
push 0
push dword [eax]
push dword [ebp - 0x1c]
call ebx
mov ebx, eax
test ebx, ebx
jne 0x43d899
mov ecx, dword [ebp - 0x10]
mov word [esi + ecx*2], ax
test esi, esi
jne 0x43d877
xor ecx, ecx
jmp 0x43d88f
mov ecx, esi
lea edx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43d880
sub ecx, edx
sar ecx, 1
push ecx
mov ecx, dword [ebp - 0x34]
push esi
call fcn.00402790
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
call fcn.004afe1b
add esp, 4
test ebx, ebx
jne 0x43d780
cmp dword [ebp - 0x24], 1
jne 0x43d780
mov bl, 1
jmp 0x43d782