Function at 0x43ebd0
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4da5d2
mov eax, dword fs:[0]
push eax
sub esp, 0x850
mov eax, dword [0x540c80]
xor eax, esp
mov dword [esp + 0x848], eax
push ebx
push esi
push edi
mov eax, dword [0x540c80]
xor eax, esp
push eax
lea eax, [esp + 0x860]
mov dword fs:[0], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x868], 0
mov edx, ecx
push 0
lea ecx, [esp + 0x14]
call fcn.0043cec0
add esp, 4
mov byte [esp + 0x868], 1
push 0x2001f
push dword [eax]
lea ecx, [esp + 0x1c]
push dword [0x54231c]
call fcn.00419460
test eax, eax
setne bl
mov byte [esp + 0x868], 0
mov edx, dword [esp + 0x10]
add edx, 0xfffffff0
or eax, 0xffffffff
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43ec90
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [esp + 0x14]
test bl, bl
je 0x43eca5
xor bl, bl
jmp 0x43ee83
movsd xmm0, qword [0x528e10]
movsd xmm1, qword [0x528e38]
movsd xmm5, qword [0x528e08]
xor ebx, ebx
xorps xmm2, xmm2
lea esi, [ebx + 0x15]
movsd qword [esp + 0x3c], xmm0
movsd qword [esp + 0x44], xmm2
movsd qword [esp + 0x24], xmm1
movsd qword [esp + 0x34], xmm5
lea ecx, [ecx]
mov ecx, dword [0x545d90]
lea eax, [ecx + 1]
imul eax, ecx
cdq
idiv esi
cmp edx, 0x12
jne 0x43ed36
movd xmm4, ecx
movapd xmm3, xmm0
cvtdq2pd xmm4, xmm4
addsd xmm2, xmm3
movapd xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm0, xmm4
jbe 0x43ed1a
subsd xmm2, xmm3
divsd xmm3, xmm1
movapd xmm1, xmm2
mulsd xmm1, xmm2
movapd xmm0, xmm4
subsd xmm0, xmm1
movsd xmm1, qword [esp + 0x24]
comisd xmm0, xmm5
ja 0x43ed00
xor eax, eax
push 0x7fe
push eax
mov word [esp + 0x5c], ax
lea eax, [esp + 0x5e]
push eax
call fcn.004b4a90
add esp, 0xc
lea eax, [esp + 0x4c]
push eax
push 0
push 0
push 0
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x68]
push eax
push ebx
push edi
mov dword [esp + 0x50], 0x400
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
inc ebx
test eax, eax
jne 0x43ee66
mov eax, dword [0x5406d8]
mov ecx, 0x5406d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
mov byte [esp + 0x868], 3
lea eax, [esp + 0x54]
test eax, 0xffff0000
jne 0x43ee3c
movzx esi, ax
mov ecx, esi
call fcn.00401b90
test eax, eax
je 0x43edc2
push esi
push eax
lea ecx, [esp + 0x18]
call fcn.00402a00
mov esi, 0x15
mov byte [esp + 0x868], 4
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push eax
call fcn.0041aa70
mov byte [esp + 0x868], 0
mov edx, dword [esp + 0x10]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
movsd xmm5, qword [esp + 0x34]
movsd xmm1, qword [esp + 0x24]
movsd xmm0, qword [esp + 0x3c]
movsd xmm2, qword [esp + 0x44]
test ecx, ecx
jg 0x43ece0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
movsd xmm5, qword [esp + 0x34]
movsd xmm1, qword [esp + 0x24]
movsd xmm0, qword [esp + 0x3c]
movsd xmm2, qword [esp + 0x44]
jmp 0x43ece0
lea ecx, [esp + 0x54]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43ee43
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x18]
call fcn.00402790
jmp 0x43edc7
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x43ee79
push edi
call esi
xor edi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0
mov bl, 1
mov dword [esp + 0x868], 0xffffffff
test edi, edi
je 0x43ee9d
push edi
call esi
mov dword [esp + 0x14], 0
mov al, bl
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x860]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x848]
xor ecx, esp
call fcn.004af5ba
mov esp, ebp
pop ebp
ret