Function at 0x581210
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
sub rsp, 0xc0
mov rbp, rsp
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], 0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x98], 0
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x58], rbp
mov qword [rbp + 0xd0], rcx
mov qword [rbp + 0xd8], rdx
mov dword [rbp + 0xe0], r8d
mov qword [rbp + 0xe8], r9
lea rcx, [rbp + 0xd8]
call fcn.0040e7a0
nop
mov eax, dword [rbp + 0xac]
add dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xbc]
cmp eax, dword [rbp + 0xbc]
jle 0x5812ca
lea rcx, [rbp + 0xbc]
lea rdx, [rbp + 0xbc]
lea r8, [rbp + 0xac]
lea r9, [rbp + 0xa8]
lea rax, [rbp + 0xa4]
mov qword [rsp + 0x20], rax
call fcn.005749d0
mov byte [rbp + 0xa3], 0
nop
mov eax, 0x171
sub eax, dword [rbp + 0xb8]
mov dword [rbp + 0xa4], eax
mov eax, 0x175
sub eax, dword [rbp + 0xb8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1ba
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xb4]
imul eax, eax, 0x1de
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb4]
add eax, 0x203
mov dword [rbp + 0xb8], eax
lea rcx, [rbp + 0x70]
call fcn.0040e5d0
mov eax, dword [rbp + 0xbc]
imul eax, eax, 0x2e7
mov dword [rbp + 0xb0], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1ce8]
call fcn.0040fe40
mov eax, dword [rbp + 0xbc]
imul eax, eax, 0x2eb
mov dword [rbp + 0xb0], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1cf8]
call fcn.0040fe40
mov eax, dword [rbp + 0xbc]
imul eax, eax, 0x2af
mov dword [rbp + 0xb0], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1d48]
call fcn.0040fe40
mov eax, dword [rbp + 0xb0]
imul eax, eax, 0x294
mov dword [rbp + 0xb4], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1ce8]
call fcn.0040fe40
mov eax, dword [rbp + 0xb0]
sub eax, 0x258
mov dword [rbp + 0xb4], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1ce0]
call fcn.0040fe40
mov eax, dword [rbp + 0xb0]
sub eax, 0x25c
mov dword [rbp + 0xb4], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1cd0]
call fcn.0040fe40
mov eax, dword [rbp + 0xb4]
add eax, 0x220
mov dword [rbp + 0xb8], eax
lea rcx, [rbp + 0x50]
mov edx, 3
call fcn.0042be80
lea rcx, [rbp + 0x70]
mov rdx, qword [rbp + 0x50]
call fcn.0040fe40
mov eax, dword [rbp + 0xb4]
add eax, 0x224
mov dword [rbp + 0xb8], eax
lea rcx, [rbp + 0x48]
mov edx, 2
call fcn.0042be80
lea rcx, [rbp + 0x70]
mov rdx, qword [rbp + 0x48]
call fcn.0040fe40
mov eax, dword [rbp + 0xb4]
add eax, 0x208
mov dword [rbp + 0xb8], eax
lea rcx, [rbp + 0x70]
lea rdx, [0x00581e70]
call fcn.0040fe40
add dword [rbp + 0xb4], 0x22d
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1cf8]
call fcn.0040fe40
mov eax, dword [rbp + 0xb4]
add eax, 0x1f1
mov dword [rbp + 0xb8], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x194
mov dword [rbp + 0xa4], eax
lea rcx, [rbp + 0x70]
mov rdx, qword [0x005d1d28]
call fcn.0040fe40
mov eax, dword [rbp + 0xbc]
imul eax, eax, 0x2e0
mov dword [rbp + 0xb0], eax
lea rcx, [rbp + 0x40]
mov rdx, qword [rbp + 0xd8]
call fcn.0040fc50
mov cx, 0x5c
mov rdx, qword [rbp + 0x40]
call fcn.00580970
mov dword [rbp + 0x94], eax
cmp dword [rbp + 0x94], 0
jle 0x581d98
lea rcx, [rbp + 0x38]
mov rdx, qword [rbp + 0xd8]
mov r8d, 1
mov r9d, dword [rbp + 0x94]
sub r9d, 1
call fcn.0040f9c0
lea rcx, [rbp + 0x98]
mov rdx, qword [rbp + 0x38]
call fcn.0040fc50
mov eax, dword [rbp + 0xbc]
add dword [rbp + 0xbc], eax
call fcn.00576990
mov eax, dword [rbp + 0xbc]
add dword [rbp + 0xbc], eax
mov eax, 0x58
sub eax, dword [rbp + 0xac]
cmp eax, 0xf1
jge 0x5815a3
lea rcx, [rbp + 0xbc]
lea rdx, [rbp + 0xbc]
lea r8, [rbp + 0xac]
lea r9, [rbp + 0xa8]
call fcn.00573f00
mov eax, dword [rbp + 0xb0]
sub eax, 0x2be
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xb0]
sub eax, 0x2a6
mov dword [rbp + 0xb4], eax
mov rcx, qword [rbp + 0x98]
call fcn.0040fb00
mov rcx, qword [rbp + 0xd0]
mov rdx, rax
xor r8, r8
mov r9d, 0x20019
lea rax, [rbp + 0x88]
mov qword [rsp + 0x20], rax
call sub.advapi32.dll_RegOpenKeyExW_1
mov dword [rbp + 0x78], eax
cmp dword [rbp + 0x78], 0
jne 0x581d98
mov eax, dword [rbp + 0xac]
add dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xbc]
cmp eax, dword [rbp + 0xbc]
jle 0x581640
lea rcx, [rbp + 0xbc]
lea rdx, [rbp + 0xbc]
lea r8, [rbp + 0xac]
lea r9, [rbp + 0xa8]
call fcn.00572a60
mov dword [rbp + 0x6c], 0
cmp qword [rbp + 0xd8], 0
je 0x581661
mov rax, qword [rbp + 0xd8]
mov eax, dword [rax - 4]
shr eax, 1
mov dword [rbp + 0x6c], eax
lea rcx, [rbp + 0x30]
mov rdx, qword [rbp + 0xd8]
mov r8d, dword [rbp + 0x94]
add r8d, 1
mov r9d, dword [rbp + 0x6c]
sub r9d, dword [rbp + 0x94]
call fcn.0040f9c0
lea rcx, [rbp + 0x98]
mov rdx, qword [rbp + 0x30]
call fcn.0040fc50
mov eax, dword [rbp + 0xac]
add dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xac]
add dword [rbp + 0xbc], eax
mov rcx, qword [rbp + 0x98]
call fcn.0040fb00
mov rcx, qword [rbp + 0x88]
mov rdx, rax
xor r8, r8
lea r9, [rbp + 0x90]
mov qword [rsp + 0x20], 0
lea rax, [rbp + 0x7c]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
jne 0x581958
mov ecx, dword [rbp + 0x7c]
call fcn.00409020
mov qword [rbp + 0x80], rax
mov rcx, qword [rbp + 0x98]
call fcn.0040fb00
mov rcx, qword [rbp + 0x88]
mov rdx, rax
xor r8, r8
lea r9, [rbp + 0x90]
mov rax, qword [rbp + 0x80]
mov qword [rsp + 0x20], rax
lea rax, [rbp + 0x7c]
mov qword [rsp + 0x28], rax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
jne 0x58191f
mov eax, dword [rbp + 0xe0]
cmp eax, dword [rbp + 0x90]
jne 0x5818de
mov eax, dword [rbp + 0xbc]
add eax, dword [rbp + 0xbc]
mov dword [rbp + 0xb0], eax
mov rax, qword [rbp + 0xe8]
mov rcx, qword [rbp + 0x80]
mov qword [rax], rcx
mov rax, qword [rbp + 0xf0]
mov ecx, dword [rbp + 0x7c]
mov dword [rax], ecx
mov eax, dword [rbp + 0xbc]
add eax, dword [rbp + 0xac]
mov ecx, dword [rbp + 0xa8]
add ecx, dword [rbp + 0xa4]
cmp eax, ecx
jge 0x5817b6
lea rcx, [rbp + 0xbc]
lea rdx, [rbp + 0xa8]
lea r8, [rbp + 0xa8]
call fcn.005385d0
mov dword [rbp + 0xbc], 0
cmp dword [rbp + 0xbc], 1
jge 0x58183f
add dword [rbp + 0xbc], 1
mov eax, dword [rbp + 0xb8]
add eax, dword [rbp + 0xb4]
cmp eax, dword [rbp + 0xb0]
jle 0x5817f6
mov eax, 0x1d4
sub eax, dword [rbp + 0xb8]
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xac]
sub eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xa4]
sub ecx, dword [rbp + 0xb8]
cmp eax, ecx
jle 0x58181e
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xac], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xac], eax
cmp dword [rbp + 0xbc], 1
jl 0x5817c9
nop
mov dword [rbp + 0xac], 0
mov eax, dword [rbp + 0xb8]
add eax, dword [rbp + 0xb0]
cmp eax, dword [rbp + 0xbc]
jle 0x581870
mov eax, dword [rbp + 0xb4]
add eax, 0x1ed
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb8]
add eax, dword [rbp + 0xb8]
cmp dword [rbp + 0xa8], eax
jne 0x581896
mov eax, dword [rbp + 0xa4]
add eax, 0xd5
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa4]
add eax, 0x38
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa4]
add eax, 0x7d
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
add dword [rbp + 0xac], 1
cmp dword [rbp + 0xac], 2
jne 0x58184a
nop
mov byte [rbp + 0xa3], 1
jmp 0x581958
mov rcx, qword [rbp + 0x80]
call fcn.00409050
mov eax, 0x57
sub eax, dword [rbp + 0xac]
cmp eax, 0xff
jge 0x581911
lea rcx, [rbp + 0xbc]
lea rdx, [rbp + 0xbc]
call fcn.00575f20
mov eax, dword [rbp + 0xbc]
add dword [rbp + 0xbc], eax
jmp 0x581958
mov rcx, qword [rbp + 0x80]
call fcn.00409050
mov eax, dword [rbp + 0xac]
sub dword [rbp + 0xbc], eax
mov eax, dword [rbp + 0xbc]
cmp eax, dword [rbp + 0xac]
jle 0x581958
lea rcx, [rbp + 0xbc]
lea rdx, [rbp + 0xbc]
call fcn.005766b0
mov dword [rbp + 0xac], 0
cmp dword [rbp + 0xac], 1
jge 0x581a04
add dword [rbp + 0xac], 1
mov eax, dword [rbp + 0xb0]
sub eax, 0x297
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xa4]
add eax, dword [rbp + 0xb4]
cmp eax, dword [rbp + 0xb0]
jle 0x5819ae
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x19f
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xac]
sub eax, dword [rbp + 0xa8]
mov ecx, dword [rbp + 0xa4]
sub ecx, dword [rbp + 0xb8]
cmp eax, ecx
jle 0x5819dc
mov eax, dword [rbp + 0xa4]
add eax, 0xa6
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa4]
add eax, 0x6a
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa8]
mov dword [rbp + 0xbc], eax
cmp dword [rbp + 0xac], 1
jl 0x58196f
nop
mov dword [rbp + 0xac], 0
mov eax, dword [rbp + 0xb8]
add eax, dword [rbp + 0xb0]
cmp eax, dword [rbp + 0xbc]
jle 0x581a35
mov eax, dword [rbp + 0xb4]
add eax, 0x1f9
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xa4]
add eax, dword [rbp + 0xb8]
cmp dword [rbp + 0xa8], eax
jne 0x581a5b
mov eax, dword [rbp + 0xa4]
add eax, 0xe0
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa4]
add eax, 0x23
mov dword [rbp + 0xa8], eax
mov eax, dword [rbp + 0xa4]
add eax, 0x48
mov dword [rbp + 0xa8], eax
add dword [rbp + 0xa8], 0x4c
add dword [rbp + 0xac], 1
cmp dword [rbp + 0xac], 3
jne 0x581a0f
nop
mov eax, 0x151
sub eax, dword [rbp + 0xb8]
mov dword [rbp + 0xa4], eax
mov eax, 0x196
sub eax, dword [rbp + 0xb8]
mov dword [rbp + 0xa4], eax
mov eax, dword [rbp + 0xb4]
add eax, 0x1ed
mov dword [rbp + 0xb8], eax
mov eax, dword [rbp + 0xb0]
add eax, 0x252
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xb0]
sub eax, 0x296
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xb0]
imul eax, eax, 0x2bb
mov dword [rbp + 0xb4], eax
mov eax, dword [rbp + 0xbc]
add eax, dword [rbp + 0xbc]
mov dword [rbp + 0xb0], eax
mov rcx, qword [rbp + 0x88]
call sub.advapi32.dll_RegCloseKey_1
mov eax, dword [rbp + 0xbc]
cmp eax, dword [rbp + 0xac]
jle 0x581b4e
lea rcx, [rbp + 0xbc]
lea rdx, [rbp + 0xac]
lea r8, [rbp + 0xac]
lea r9, [rbp + 0xa8]
call fcn.0057b580
mov eax, 0x5a
sub eax, dword [rbp + 0xac]
cmp eax, 0x10a
jge 0x581b67
call fcn.00571190
mov eax, dword [rbp + 0xb8]
imul eax, eax, 0x1b7
mov dword [rbp + 0xb8], eax
jmp 0x581d98
mov eax, dword [rbp + 0xb0]
add eax, 0x255
mov dword [rbp + 0xb4], eax
nop
lea rcx, [rbp + 0x30]
mov edx, 2
call fcn.0040e710
lea rcx, [rbp + 0x40]
mov edx, 3
call fcn.0040e6b0
lea rcx, [rbp + 0x70]
call fcn.0040e5d0
lea rcx, [rbp + 0x98]
call fcn.0040e5d0
lea rcx, [rbp + 0xd8]
call fcn.0040e670
movzx rax, byte [rbp + 0xa3]
lea rsp, [rbp + 0xc0]
pop rbp
ret