Function at 0x4187fa
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x300
mov eax, 0x41e58c
call fcn.0041dbd5
mov edi, ecx
sub esp, 0xc
mov byte [edi + 0xa6], 1
lea esi, [edi + 0x98]
mov ecx, esi
call fcn.004185db
xor ebx, ebx
mov ecx, esi
push ebx
call fcn.00417950
lea eax, [ebp - 0x30c]
mov ecx, esi
push eax
call fcn.00418500
mov ecx, edi
mov dword [ebp - 4], ebx
call fcn.0041a0fa
push 0x401490
push 8
call fcn.0041db24
pop ecx
mov esi, eax
pop ecx
mov dword [ebp - 0x2e8], esi
mov byte [ebp - 4], 1
test esi, esi
je 0x418870
mov dword [esi], ebx
mov dword [esi + 4], ebx
call fcn.0041ac4d
mov dword [esi], eax
jmp 0x418872
mov esi, ebx
mov byte [ebp - 4], bl
mov dword [edi + 0x8c], esi
test esi, esi
jne 0x41888e
mov esi, 0x8007000e
mov edx, 0xdd
jmp 0x418a01
push 0x401490
push 4
call fcn.0041db24
pop ecx
pop ecx
test eax, eax
je 0x4188a4
mov dword [eax], ebx
jmp 0x4188a6
mov eax, ebx
mov dword [edi + 0x90], eax
test eax, eax
jne 0x4188bf
mov esi, 0x8007000e
mov edx, 0xe0
jmp 0x418a01
push 0x402884
lea ecx, [ebp - 0x248]
call fcn.00416cdb
mov edx, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x230]
call fcn.0041ad65
push eax
lea ecx, [edi + 0x18]
call fcn.0041a6cc
push ebx
push 1
lea ecx, [ebp - 0x230]
call fcn.00416d02
push ebx
push 1
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], bl
call fcn.00416d02
push 0x402860
lea ecx, [ebp - 0x278]
call fcn.00416cdb
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x260]
call fcn.0041ad65
push eax
lea ecx, [edi + 0x30]
call fcn.0041a6cc
push ebx
push 1
lea ecx, [ebp - 0x260]
call fcn.00416d02
push ebx
push 1
lea ecx, [ebp - 0x278]
mov byte [ebp - 4], bl
call fcn.00416d02
push 0x402838
lea ecx, [ebp - 0x2a8]
call fcn.00416cdb
mov edx, eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x290]
call fcn.0041ad65
push eax
lea ecx, [edi + 0x48]
call fcn.0041a6cc
push ebx
push 1
lea ecx, [ebp - 0x290]
call fcn.00416d02
push ebx
push 1
lea ecx, [ebp - 0x2a8]
mov byte [ebp - 4], bl
call fcn.00416d02
push 0x4027d8
lea ecx, [ebp - 0x2d8]
call fcn.00416cdb
mov edx, eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2c0]
call fcn.0041ad65
lea ebx, [edi + 0x60]
push eax
mov ecx, ebx
call fcn.0041a6cc
push 0
push 1
lea ecx, [ebp - 0x2c0]
call fcn.00416d02
push 0
push 1
lea ecx, [ebp - 0x2d8]
mov byte [ebp - 4], 0
call fcn.00416d02
mov ecx, edi
mov dword [edi + 0x78], SysReAllocString
call fcn.00419d7b
mov esi, eax
test esi, esi
jns 0x418a14
mov edx, 0xe8
mov ecx, dword [ebp + 4]
push esi
push 0x40a7ec
call fcn.0040e960
jmp 0x418b0a
and dword [ebp - 0x2dc], 0
mov byte [ebp - 4], 6
cmp dword [ebx + 0x14], 8
jb 0x418a27
mov ebx, dword [ebx]
push 0
lea ecx, [ebp - 0x2dc]
call fcn.0041a6a0
push eax
xor eax, eax
push eax
push 0xf003f
push eax
push eax
push eax
push ebx
push dword [edi + 0x78]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCreateKeyExW]
mov esi, eax
test esi, esi
je 0x418a62
jle 0x418a5b
movzx esi, si
or esi, 0x80070000
xor ebx, ebx
jmp 0x418af2
mov esi, 0x208
lea eax, [ebp - 0x218]
push esi
xor ebx, ebx
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x2e0], esi
lea eax, [ebp - 0x2e0]
push eax
lea eax, [ebp - 0x218]
push eax
push ebx
push 2
push 0x40a82c
push ebx
push dword [ebp - 0x2dc]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegGetValueW]
mov dword [edi + 0x1d0], 1
test eax, eax
jne 0x418ad3
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x418aba
sub ecx, edx
sar ecx, 1
je 0x418ad3
lea eax, [ebp - 0x218]
jmp 0x418ae8
mov ecx, edi
call fcn.00419edc
test eax, eax
mov eax, 0x40a840
jne 0x418ae8
mov eax, 0x40a888
push eax
mov ecx, edi
call fcn.00416d49
mov esi, ebx
mov byte [ebp - 4], bl
cmp dword [ebp - 0x2dc], 0
je 0x418b0a
push dword [ebp - 0x2dc]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
lea ecx, [ebp - 0x30c]
call fcn.004176f9
mov eax, esi
call fcn.0041db84
ret 0x10