Function at 0x408273
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x101c
call fcn.00417f80
mov eax, dword [0x42e0b4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 2
mov edi, ecx
mov dword [ebp - 0x101c], 0x80000002
lea ebx, [ebp - 0x101c]
mov dword [ebp - 0x1018], 0x80000001
pop esi
mov byte [0x436755], 1
sub ebx, edi
mov dword [ebp - 0x1014], esi
lea eax, [ebp - 0x1010]
push eax
push 0x2000000
push 0
push 0x4021b0
push dword [ebx + edi]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegOpenKeyExW]
test eax, eax
jne 0x408540
and dword [ebp - 0x1008], eax
lea eax, [ebp - 0x100c]
push eax
lea eax, [ebp - 0x1004]
mov dword [ebp - 0x100c], 0x1000
push eax
lea eax, [ebp - 0x1008]
push eax
push 0
push 0x4020d4
push dword [ebp - 0x1010]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExW]
test eax, eax
je 0x41b0f1
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0x1000
push eax
lea eax, [ebp - 0x1004]
push eax
lea eax, [ebp - 0x1008]
push eax
push 0
push 0x4020f4
push dword [ebp - 0x1010]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExW]
test eax, eax
jne 0x408371
cmp dword [ebp - 0x1008], 4
jne 0x41b139
cmp dword [ebp - 0x1004], eax
setne byte [0x436755]
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0x1000
push eax
lea eax, [ebp - 0x1004]
push eax
lea eax, [ebp - 0x1008]
push eax
push 0
push 0x402118
push dword [ebp - 0x1010]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExW]
test eax, eax
je 0x41b165
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0x1000
push eax
lea eax, [ebp - 0x1004]
push eax
lea eax, [ebp - 0x1008]
push eax
push 0
push 0x40213c
push dword [ebp - 0x1010]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExW]
test eax, eax
jne 0x4083fb
cmp dword [ebp - 0x1008], 4
jne 0x41b1ad
mov ax, word [ebp - 0x1004]
mov word [0x436764], ax
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0x1000
push eax
lea eax, [ebp - 0x1004]
push eax
lea eax, [ebp - 0x1008]
push eax
push 0
push 0x402158
push dword [ebp - 0x1010]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExW]
test eax, eax
jne 0x40846c
cmp dword [ebp - 0x1008], 4
jne 0x41b1d3
mov ax, word [ebp - 0x1004]
mov word [0x42e0d0], ax
test ax, ax
je 0x41b200
push 0xd
pop ecx
push 0x20
cmp ax, cx
pop ecx
je 0x41b203
cmp ax, cx
ja 0x41b203
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0x1000
push eax
lea eax, [ebp - 0x1004]
push eax
lea eax, [ebp - 0x1008]
push eax
push 0
push 0x402178
push dword [ebp - 0x1010]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExW]
test eax, eax
jne 0x41b24c
cmp dword [ebp - 0x1008], 4
jne 0x41b20f
mov ax, word [ebp - 0x1004]
mov word [0x42e0cc], ax
test ax, ax
je 0x41b23c
push 0xd
pop ecx
push 0x20
pop edx
cmp ax, cx
je 0x41b23f
cmp ax, dx
ja 0x41b23f
mov cx, word [0x42e0d0]
cmp cx, dx
je 0x41b25a
cmp ax, dx
je 0x41b26e
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0x1000
push eax
lea eax, [ebp - 0x1004]
push eax
lea eax, [ebp - 0x1008]
push eax
push 0
push 0x4021a0
push dword [ebp - 0x1010]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExW]
test eax, eax
je 0x41b283
push dword [ebp - 0x1010]
call dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
add edi, 4
sub esi, 1
mov dword [ebp - 0x1014], esi
jne 0x4082bd
push 0
call dword [sym.imp.msvcrt.dll_time]
push eax
call dword [sym.imp.msvcrt.dll_srand]
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00416b30
leave
ret
clc
call ecx
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
xor edx, edx
div ecx
add edx, dword [ebp + 0xc]
mov eax, edx
pop ebp
ret
mov bh, 0x48
adc al, 0x8b
push ebp
clc
or al, 0x8b
inc ebp
or al, 0x89
adc byte [ebx + 0x4d], ch
cld
sub byte [ebx + 0x28b0c55], cl
add byte [eax], al
add bl, ch
pop es
jmp 0x41b20c
mov dword [ebp - 8], 0
mov cl, byte [ebp - 8]
mov byte [ebp - 1], cl
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [edx + 0x34]
jb 0x41b231
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
cmp edx, dword [ecx + 0x38]
ja 0x41b231
mov dword [ebp - 0xc], 1
jmp 0x41b238
mov dword [ebp - 0xc], 0
mov al, byte [ebp - 0xc]
mov byte [ebp - 2], al
movzx ecx, byte [ebp - 1]
test ecx, ecx
jne 0x41b257
inc ebp
dec byte [edi]
mov dh, 0x4d
inc dword [ebp + 0xf1175c9]
mov dh, 0x55
inc byte [ebp - 0x38f68a2e]
inc ebp
lock add byte [eax], al
add byte [eax], al
movzx edx, byte [ebp - 2]
test edx, edx
jne 0x41b257
mov dword [ebp - 0x10], 0
jmp 0x41b25e
mov dword [ebp - 0x10], 1
add dword [eax], eax
add byte [eax], al
mov al, byte [ebp - 0x10]
mov esp, ebp
pop ebp
ret
int3
or al, 0x3b
inc edx
add al, 0x77
or edi, eax
inc ebp
cld
add dword [eax], eax
add byte [eax], al
jmp 0x41b299
mov al, byte [ebp - 4]
mov esp, ebp
pop ebp
ret