Function at 0x4160b0
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push 0x7c
mov eax, 0x51d981
call fcn.004ac5bf
mov dword [ebp - 0x78], edx
mov edi, ecx
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
mov dword [ebp - 4], ebx
test edi, edi
je 0x4161a4
push edi
lea ecx, [ebp - 0x58]
call fcn.004075b0
lea edx, [ebp - 0x58]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x70]
call fcn.00414c63
push str..MD5
push eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 2
push eax
call fcn.004082d0
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x70]
call fcn.004049c9
push 5
pop ebx
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], bl
call fcn.00409ad0
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x40]
call fcn.00423543
test al, al
jne 0x416142
push 3
pop ebx
jmp 0x41614a
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x20
jae 0x41615b
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.004049c9
jmp 0x416366
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
lea edx, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
cmovae edx, dword [ebp - 0x28]
add eax, ecx
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
push fcn.004f2e07
cmovae ecx, dword [ebp - 0x28]
push edx
push eax
push ecx
lea eax, [ebp - 0x7c]
push eax
call fcn.004083c0
add esp, 0x14
lea ecx, [ebp - 0x40]
xor ebx, ebx
mov byte [ebp - 4], bl
push ebx
push 1
call fcn.004049c9
mov eax, dword [ebp - 0x88]
mov ecx, eax
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x84], 3
call fcn.00407590
push 0xf003f
push eax
push reloc.WS2_32.dll_accept
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
call fcn.0042249d
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 6
push eax
push ebx
lea eax, [ebp - 0x84]
push eax
push ebx
push dword [ebp - 0x78]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x80]
call ebx
test eax, eax
jne 0x416288
push eax
push dword [ebp - 0x74]
mov ecx, esi
call fcn.00404b61
cmp dword [esi + 0x14], 0x10
jb 0x41620d
mov eax, dword [esi]
jmp 0x41620f
mov eax, esi
lea ecx, [ebp - 0x74]
push ecx
push eax
lea eax, [ebp - 0x84]
push eax
push 0
push dword [ebp - 0x78]
push dword [ebp - 0x80]
call ebx
cmp dword [esi + 0x14], 0x10
jb 0x41622f
mov edx, dword [esi]
jmp 0x416231
mov edx, esi
push dword [ebp - 0x74]
lea ecx, [ebp - 0x40]
call fcn.0042346d
pop ecx
mov byte [ebp - 4], 7
cmp dword [ebp - 0x18], 0
je 0x416347
cmp dword [ebp - 0x2c], 0x10
lea ecx, [ebp - 0x40]
lea eax, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x40]
cmp dword [ebp - 0x14], 0x10
push ecx
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
jne 0x416347
test edi, edi
je 0x416326
push eax
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 6
call fcn.004049c9
test edi, edi
je 0x416357
push 0
push 0
mov ecx, esi
call fcn.00404b61
push edi
lea ecx, [ebp - 0x58]
call fcn.004075b0
lea edx, [ebp - 0x58]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x70]
call fcn.00414c63
mov edx, esi
mov byte [ebp - 4], 0xb
mov ecx, eax
call fcn.00423543
mov bl, al
lea ecx, [ebp - 0x70]
push 0
neg bl
push 1
sbb bl, bl
call fcn.004049c9
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.00409ad0
add bl, 1
je 0x4162e8
push 2
pop ebx
jmp 0x41635a
push 0x10
pop ebx
cmp dword [esi + 0x14], ebx
jb 0x4162f4
mov edx, dword [esi]
jmp 0x4162f6
mov edx, esi
push dword [esi + 0x10]
lea ecx, [ebp - 0x40]
call fcn.0042346d
pop ecx
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x40]
cmp dword [ebp - 0x2c], ebx
lea eax, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x40]
cmp dword [ebp - 0x14], ebx
push ecx
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
jne 0x41632b
push 4
pop ebx
jmp 0x416349
mov eax, dword [esi + 0x10]
cmp dword [esi + 0x14], ebx
jb 0x416335
mov esi, dword [esi]
push eax
push esi
push 3
push 0
push dword [ebp - 0x78]
push dword [ebp - 0x80]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor ebx, ebx
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.004049c9
jmp 0x41635a
xor ebx, ebx
inc ebx
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x10
call fcn.004225a8
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.004049c9
mov eax, ebx
call fcn.004ac569
ret