Function at 0x5ac290
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x118
mov dword [ebp - 0x120], ecx
mov eax, dword [0x754040]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx - 4], ecx
lea ecx, [ebp - 0x2c]
mov dword [ecx], eax
lea edx, [ebp - 0x30]
mov dword [edx], eax
lea esi, [ebp - 0x34]
mov dword [esi], eax
lea edi, [ebp - 0x38]
mov dword [edi], eax
lea ebx, [ebp - 0x3c]
mov dword [ebx], eax
mov ecx, dword [ebp + 8]
push eax
push eax
push ebx
mov ebx, ecx
push edi
push esi
push eax
push edx
lea ecx, [ebp - 0x2c]
push ecx
push eax
push eax
push eax
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x5ac506
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
cmp ecx, eax
cmova eax, ecx
inc eax
xor edx, edx
dec edx
lea ecx, [ebp - 0xe8]
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
push eax
call fcn.0058a270
mov eax, dword [ebp - 0x34]
test eax, eax
mov edi, dword [ebp - 0x120]
je 0x5ac428
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
sub edx, ecx
sar edx, 2
imul edx, edx, 0xb6db6db7
cmp edx, eax
jae 0x5ac3c2
cmp eax, 0x924924a
jae 0x5acc31
lea edx, [ebp - 0x10]
mov edi, dword [edx - 8]
sub edi, ecx
lea esi, [ebp - 0xdc]
mov dword [esi + 0x10], edx
lea ecx, [eax + eax*8]
lea ebx, [ecx + ecx*2]
add ebx, eax
push ebx
call fcn.0054fbd9
add esp, 4
mov dword [esi], eax
add edi, eax
mov dword [esi + 8], edi
mov dword [esi + 4], edi
add ebx, eax
mov dword [esi + 0xc], ebx
lea ecx, [ebp - 0x1c]
mov edx, esi
call fcn.005ad1f0
mov edi, dword [esi + 4]
mov esi, dword [esi + 8]
jmp 0x5ac3a5
add esi, 0xffffffe4
je 0x5ac4f3
mov ecx, esi
call fcn.005acc40
cmp esi, edi
jne 0x5ac395
mov eax, dword [ebp - 0xdc]
test eax, eax
mov edi, dword [ebp - 0x120]
je 0x5ac3c2
push eax
call fcn.0054fc10
add esp, 4
lea ecx, [ebp - 0xf4]
xor eax, eax
dec eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x3c]
cmp eax, 1
adc eax, 0
push eax
call fcn.004eec80
mov dword [ebp - 0xfc], 0
cmp dword [ebp - 0x34], 0
je 0x5ac3f9
xor ebx, ebx
jmp 0x5ac999
mov eax, dword [ebp - 0xf4]
test eax, eax
mov ebx, dword [ebp + 8]
je 0x5ac428
mov ecx, dword [ebp - 0xf0]
mov edx, ecx
sub edx, eax
dec ecx
cmp edx, ecx
ja 0x5ac4f3
mov dword [ebp - 0xf0], eax
push eax
call fcn.0054fc10
add esp, 4
cmp dword [ebp - 0x2c], 0
je 0x5ac46c
xor edi, edi
jmp 0x5ac5c9
lea esi, [ebp - 0x118]
xor eax, eax
dec eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov ecx, esi
call fcn.00482ed0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
cmp edi, eax
jne 0x5ac758
lea ecx, [ebp - 0x118]
call fcn.004830c0
mov edi, dword [ebp - 0x120]
mov eax, dword [edi]
mov ecx, dword [ebp - 0x1c]
mov dword [edi], ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0x18]
mov dword [edi + 4], ecx
mov dword [ebp - 0x18], eax
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x14]
mov dword [edi + 8], ecx
mov dword [ebp - 0x14], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x28]
mov dword [edi + 0xc], ecx
mov dword [ebp - 0x28], eax
lea edx, [edi + 0x10]
mov eax, dword [edi + 0x10]
mov esi, dword [ebp - 0x24]
mov dword [edi + 0x10], esi
mov dword [ebp - 0x24], eax
mov ecx, dword [edi + 0x14]
mov ebx, edi
mov edi, dword [ebp - 0x20]
mov dword [ebx + 0x14], edi
mov dword [ebp - 0x20], ecx
test edi, edi
je 0x5ac4c3
mov dword [esi + 8], edx
mov ecx, dword [ebp - 0x20]
jmp 0x5ac4c6
mov dword [ebx + 0xc], edx
test ecx, ecx
je 0x5ac4d2
lea ecx, [ebp - 0x24]
mov dword [eax + 8], ecx
jmp 0x5ac4d8
lea eax, [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov bl, 1
mov eax, dword [ebp - 0xe8]
test eax, eax
je 0x5ac556
mov ecx, dword [ebp - 0xe4]
cmp ecx, eax
je 0x5ac4f5
add ecx, 0xfffffffe
jne 0x5ac4ea
ud2
mov dword [ebp - 0xe4], eax
push eax
call fcn.0054fc10
add esp, 4
jmp 0x5ac556
mov esi, eax
push 2
call fcn.005079c0
add esp, 4
test al, al
je 0x5ac554
lea edi, [ebp - 0xdc]
mov ecx, edi
push 2
push 0x87
push 0x6d968b
call fcn.004904a0
lea eax, [ebp - 0xd4]
push 0x2e
push 0x6d96be
push eax
call fcn.004e58e0
add esp, 0xc
mov ecx, eax
push esi
call fcn.00411270
mov ecx, edi
call fcn.00490980
xor ebx, ebx
lea ecx, [ebp - 0x28]
push dword [ecx + 4]
call fcn.005ad6d0
mov edi, dword [ebp - 0x1c]
test edi, edi
je 0x5ac594
mov esi, dword [ebp - 0x18]
mov eax, edi
cmp esi, edi
je 0x5ac588
add esi, 0xffffffe4
je 0x5ac4f3
mov ecx, esi
call fcn.005acc40
cmp esi, edi
jne 0x5ac571
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], edi
push eax
call fcn.0054fc10
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00550b46
mov eax, ebx
add esp, 0x118
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov eax, dword [ebp - 0xf8]
inc eax
lea ecx, [ebp - 0xe8]
push eax
call fcn.00478170
cmp edi, dword [ebp - 0x2c]
jae 0x5ac435
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xe4]
mov edx, ecx
sub edx, eax
sar edx, 1
mov dword [ebp - 0xf8], edx
cmp ecx, eax
je 0x5ac4f3
mov ecx, dword [ebx]
sub esp, 0x20
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
lea edx, [ebp - 0xf8]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0xea
je 0x5ac5ad
mov esi, eax
cmp eax, 0x103
jne 0x5ac626
mov dword [ebp - 0x2c], edi
jmp 0x5ac5c0
test esi, esi
jne 0x5acb64
xor eax, eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x108]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xe8]
cmp dword [ebp - 0xe4], eax
je 0x5ac4f3
mov dword [ebp - 0xdc], eax
lea ecx, [ebp - 0xd8]
lea eax, [ebp - 0x118]
push eax
call fcn.005ad2f0
lea ecx, [ebp - 0x28]
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.005ad730
lea ecx, [ebp - 0xcc]
push dword [ebp - 0xc8]
call fcn.005ad6d0
mov ebx, dword [ebp - 0xd8]
test ebx, ebx
je 0x5ac6ea
mov esi, dword [ebp - 0xd4]
mov eax, ebx
cmp esi, ebx
je 0x5ac6db
add esi, 0xffffffe4
je 0x5ac4f3
mov ecx, esi
call fcn.005acc40
cmp esi, ebx
jne 0x5ac6c1
mov eax, dword [ebp - 0xd8]
mov dword [ebp - 0xd4], ebx
push eax
call fcn.0054fc10
add esp, 4
lea ecx, [ebp - 0x10c]
push dword [ebp - 0x108]
call fcn.005ad6d0
mov ebx, dword [ebp - 0x118]
test ebx, ebx
je 0x5ac73a
mov esi, dword [ebp - 0x114]
mov eax, ebx
cmp esi, ebx
je 0x5ac72b
add esi, 0xffffffe4
je 0x5ac4f3
mov ecx, esi
call fcn.005acc40
cmp esi, ebx
jne 0x5ac711
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x114], ebx
push eax
call fcn.0054fc10
add esp, 4
inc edi
mov ebx, dword [ebp + 8]
jmp 0x5ac5c0
mov eax, ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x5ac743
mov edi, eax
lea ecx, [ebp - 0x24]
cmp eax, ecx
je 0x5ac45b
lea ecx, [edi + 0x10]
cmp byte [edi + 0x1b], 0
mov eax, ecx
jns 0x5ac765
mov eax, dword [ecx]
mov dword [ebp - 0x11c], ecx
mov ecx, esi
push 0x20009
push eax
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00483020
test eax, eax
jne 0x5acae5
lea ecx, [edi + 0x1c]
push esi
call fcn.005ac290
test al, al
je 0x5acbca
mov ecx, dword [edi + 4]
test ecx, ecx
jne 0x5ac743
mov eax, dword [edi + 8]
cmp dword [eax], edi
mov edi, eax
jne 0x5ac79d
jmp 0x5ac74b
mov ecx, dword [ebp - 0x1c]
sub edi, ecx
sar edi, 2
imul esi, edi, 0xb6db6db7
lea edi, [esi + 1]
cmp edi, 0x924924a
jae 0x5acc31
sub eax, ecx
sar eax, 2
imul eax, eax, 0xb6db6db7
lea ecx, [eax + eax]
cmp ecx, edi
cmova edi, ecx
cmp eax, 0x4924924
mov eax, 0x9249249
cmovae edi, eax
lea eax, [ebp - 0x10]
mov dword [ebp - 0x108], eax
xor eax, eax
test edi, edi
je 0x5ac811
cmp edi, 0x924924a
jae 0x5acc36
lea eax, [edi + edi*8]
lea eax, [eax + eax*2]
add eax, edi
push eax
call fcn.0054fbd9
add esp, 4
mov dword [ebp - 0x118], eax
lea ecx, [esi + esi*8]
lea ecx, [ecx + ecx*2]
add esi, eax
add esi, ecx
mov dword [ebp - 0x110], esi
mov dword [ebp - 0x114], esi
lea ecx, [edi + edi*8]
lea ecx, [ecx + ecx*2]
add eax, edi
add eax, ecx
mov dword [ebp - 0x10c], eax
mov ecx, esi
lea edx, [ebp - 0xdc]
call fcn.005ad290
add dword [ebp - 0x110], 0x1c
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x118]
call fcn.005ad1f0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x11c], eax
mov esi, dword [ebp - 0x114]
mov edi, dword [ebp - 0x110]
jmp 0x5ac886
add edi, 0xffffffe4
je 0x5ac4f3
mov ecx, edi
call fcn.005acc40
cmp edi, esi
jne 0x5ac876
mov eax, dword [ebp - 0x118]
test eax, eax
je 0x5ac89d
push eax
call fcn.0054fc10
add esp, 4
lea esi, [ebp - 0xdc]
mov edi, dword [ebp - 0x11c]
jmp 0x5ac8e4
test esi, esi
jne 0x5aca4f
xorps xmm0, xmm0
movups xmmword [ebp - 0xd0], xmm0
movups xmmword [ebp - 0xdc], xmm0
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
cmp edi, eax
jae 0x5ac7a8
mov ecx, edi
lea esi, [ebp - 0xdc]
mov edx, esi
call fcn.005ad290
add edi, 0x1c
mov dword [ebp - 0x18], edi
mov ecx, esi
call fcn.005acc40
mov esi, dword [ebp - 0x18]
cmp dword [ebp - 0x1c], esi
je 0x5ac4f3
mov edi, dword [ebp - 0xf4]
cmp dword [ebp - 0xf0], edi
je 0x5ac4f3
mov eax, dword [ebp - 0xe8]
cmp dword [ebp - 0xe4], eax
je 0x5ac4f3
mov edx, dword [ebp - 0xf8]
test edx, edx
sete cl
test eax, eax
setne ch
or ch, cl
je 0x5ac4f3
lea ecx, [esi - 0x1c]
mov dword [ebp - 0x124], edi
mov edi, dword [ebp - 0x100]
mov dword [ebp - 0x11c], edi
mov edi, dword [ebp - 0xfc]
push edx
push eax
call fcn.00481040
mov dword [esi - 4], edi
add esi, 0xfffffff0
mov edx, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x124]
lea eax, [edi + edx]
mov ecx, esi
push edx
push eax
push edi
call fcn.0047d0e0
inc ebx
mov edi, dword [ebp - 0x120]
jmp 0x5ac990
mov esi, eax
cmp eax, 0x103
jne 0x5ac8ab
mov dword [ebp - 0x34], ebx
cmp ebx, dword [ebp - 0x34]
jae 0x5ac3f9
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xe4]
mov edx, ecx
sub edx, eax
sar edx, 1
mov dword [ebp - 0xf8], edx
mov edx, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xf0]
sub esi, edx
mov dword [ebp - 0x100], esi
je 0x5ac4f3
cmp ecx, eax
je 0x5ac4f3
lea ecx, [ebp - 0x100]
push ecx
push edx
lea ecx, [ebp - 0xfc]
push ecx
push 0
lea ecx, [ebp - 0xf8]
push ecx
push eax
push ebx
mov eax, dword [ebp + 8]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0xea
jne 0x5ac980
mov eax, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xf0]
sub ecx, dword [ebp - 0xf4]
sub eax, ecx
jbe 0x5aca21
lea ecx, [ebp - 0xf4]
push eax
call fcn.004e8220
mov eax, dword [ebp - 0xf8]
inc eax
mov ecx, dword [ebp - 0xe4]
sub ecx, dword [ebp - 0xe8]
sar ecx, 1
cmp eax, ecx
jbe 0x5ac990
lea ecx, [ebp - 0xe8]
push eax
call fcn.00478170
jmp 0x5ac990
push 2
call fcn.005079c0
add esp, 4
test al, al
je 0x5acab3
lea edi, [ebp - 0xdc]
mov ecx, edi
push 2
push 0xad
push 0x6d968b
call fcn.004904a0
lea eax, [ebp - 0xd4]
push 0x18
push 0x6d96ed
push eax
call fcn.004e58e0
add esp, 0xc
mov ecx, eax
push ebx
call fcn.004114c0
push 0xa
push 0x6d9706
push eax
call fcn.004e58e0
add esp, 0xc
mov ecx, eax
push esi
call fcn.00411270
mov ecx, edi
call fcn.00490980
mov eax, dword [ebp - 0xf4]
test eax, eax
je 0x5acb5d
mov ecx, dword [ebp - 0xf0]
mov edx, ecx
sub edx, eax
dec ecx
cmp edx, ecx
ja 0x5ac4f3
mov dword [ebp - 0xf0], eax
push eax
call fcn.0054fc10
add esp, 4
jmp 0x5acb5d
mov ebx, eax
push 2
call fcn.005079c0
add esp, 4
test al, al
je 0x5acb52
lea edi, [ebp - 0xdc]
mov ecx, edi
push 2
push 0xdd
push 0x6d968b
call fcn.004904a0
lea eax, [ebp - 0xd4]
push 0x17
push 0x6d9746
push eax
call fcn.004e58e0
add esp, 0xc
push dword [ebp - 0x11c]
push eax
call fcn.0048e940
add esp, 8
push 0x16
push 0x6d975e
push eax
call fcn.004e58e0
add esp, 0xc
mov ecx, eax
push ebx
call fcn.00411270
mov ecx, edi
call fcn.00490980
lea ecx, [ebp - 0x118]
call fcn.004830c0
xor ebx, ebx
jmp 0x5ac4da
push 2
call fcn.005079c0
add esp, 4
test al, al
je 0x5acb5d
lea ebx, [ebp - 0xdc]
mov ecx, ebx
push 2
push 0xcd
push 0x6d968b
call fcn.004904a0
lea eax, [ebp - 0xd4]
push 0x1e
push 0x6d9711
push eax
call fcn.004e58e0
add esp, 0xc
mov ecx, eax
push edi
call fcn.004114c0
push 0x15
push 0x6d9730
push eax
call fcn.004e58e0
add esp, 0xc
mov ecx, eax
push esi
call fcn.00411270
mov ecx, ebx
call fcn.00490980
jmp 0x5acb5d
push 2
call fcn.005079c0
add esp, 4
test al, al
je 0x5acb52
lea esi, [ebp - 0xdc]
mov ecx, esi
push 2
push 0xe2
push 0x6d968b
call fcn.004904a0
lea eax, [ebp - 0xd4]
push 0x1a
push 0x6d9775
push eax
call fcn.004e58e0
add esp, 0xc
push dword [ebp - 0x11c]
push eax
call fcn.0048e940
add esp, 8
push 1
push 0x6ce55d
push eax
call fcn.004e58e0
add esp, 0xc
mov ecx, esi
jmp 0x5acb4d
call fcn.00583020
call fcn.005836c0
int3