Function at 0x43d120
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d7362
mov eax, dword fs:[0]
push eax
mov eax, 0x8020
call fcn.004b17e0
mov eax, dword [0x539c80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x802c], edx
mov dword [ebp - 0x8024], 0
mov dword [ebp - 0x8020], 0
mov dword [ebp - 0x801c], 0
mov dword [ebp - 4], 0
mov edx, ecx
push 0
lea ecx, [ebp - 0x8018]
call fcn.0043b260
add esp, 4
mov byte [ebp - 4], 1
push 0x2001f
push dword [eax]
lea ecx, [ebp - 0x8024]
push dword [0x53b31c]
call fcn.00418a70
test eax, eax
setne bl
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x8018]
add edx, 0xfffffff0
or eax, 0xffffffff
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x43d1d4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
je 0x43d1e5
mov esi, dword [ebp - 0x8024]
xor bl, bl
jmp 0x43d406
mov esi, dword [0x53ed90]
mov eax, esi
imul eax, esi
cdq
mov ecx, 0x11
idiv ecx
mov dword [ebp - 0x8028], 0x4000
cmp edx, 3
jne 0x43d23f
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x63]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004abd49
push eax
call fcn.004acddb
add esp, 8
xor eax, eax
push 0x7ffe
push eax
mov word [ebp - 0x8010], ax
lea eax, [ebp - 0x800e]
push eax
call fcn.004b1a50
mov ebx, dword [ebp - 0x8024]
add esp, 0xc
xor esi, esi
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x8028]
push eax
lea eax, [ebp - 0x8010]
push eax
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov edi, eax
inc esi
mov dword [ebp - 0x8018], esi
test edi, edi
je 0x43d29c
cmp edi, 0x103
jne 0x43d37d
mov eax, dword [0x5396d8]
mov ecx, 0x5396d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x8014], eax
mov byte [ebp - 4], 3
lea eax, [ebp - 0x8010]
test eax, 0xffff0000
jne 0x43d39a
movzx esi, ax
mov ecx, esi
call fcn.00401b90
test eax, eax
je 0x43d2e2
push esi
push eax
lea ecx, [ebp - 0x8014]
call fcn.00402860
mov esi, dword [ebp - 0x8018]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x8014]
cmp dword [eax - 0xc], 0
je 0x43d30a
mov ecx, dword [ebp - 0x802c]
lea eax, [ebp - 0x8014]
push eax
call fcn.0041a200
push 0x8000
lea eax, [ebp - 0x8010]
push 0
push eax
mov dword [ebp - 0x8028], 0x4000
call fcn.004b1a50
mov ecx, dword [0x53ed90]
add esp, 0xc
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x18
idiv ecx
cmp edx, 3
jne 0x43d359
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov ecx, 0x50
div ecx
inc edx
mov dword [0x53ed90], edx
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x8014]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43d37d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test edi, edi
je 0x43d265
test ebx, ebx
je 0x43d3c7
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor esi, esi
mov dword [ebp - 0x8024], esi
jmp 0x43d3cd
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x43d3a0
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x8010]
push eax
lea ecx, [ebp - 0x8014]
call fcn.004025f0
jmp 0x43d2e8
mov esi, dword [ebp - 0x8024]
mov ecx, dword [0x53ed90]
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
mov ecx, 9
idiv ecx
mov dword [ebp - 0x8020], 0
cmp edx, 5
jne 0x43d404
push 4
call fcn.004ace0a
mov ecx, dword [0x53ed90]
add esp, 4
mov dword [eax], ecx
mov bl, 1
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x43d422
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x8024], 0
mov al, bl
mov dword [ebp - 0x8020], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ac57a
mov esp, ebp
pop ebp
ret