Function at 0x413c80
Capabilities:
Link many functions at runtime
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x858
mov eax, dword [0x41f004]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x844], 0
mov dword [ebp - 0x830], 0
mov dword [ebp - 0x840], 0
mov dword [ebp - 0x83c], 0
mov dword [ebp - 0x834], 0
mov dword [ebp - 0x848], 0
mov dword [ebp - 0x24], 0
push 0x421524
call fcn.00414ae0
add esp, 4
mov dword [ebp - 0x844], eax
cmp dword [ebp - 0x844], 0
je 0x413d6a
push 0x421534
mov eax, dword [ebp - 0x844]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x830], eax
push 0x42154c
mov ecx, dword [ebp - 0x844]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x840], eax
push 0x421568
mov edx, dword [ebp - 0x844]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x83c], eax
push 0x421588
mov eax, dword [ebp - 0x844]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x834], eax
push 0x4215ac
mov ecx, dword [ebp - 0x844]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x848], eax
cmp dword [ebp - 0x844], 0
je 0x413da0
cmp dword [ebp - 0x830], 0
je 0x413da0
cmp dword [ebp - 0x840], 0
je 0x413da0
cmp dword [ebp - 0x83c], 0
je 0x413da0
cmp dword [ebp - 0x834], 0
je 0x413da0
cmp dword [ebp - 0x848], 0
jne 0x413dbd
cmp dword [ebp - 0x844], 0
je 0x413db6
mov edx, dword [ebp - 0x844]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x414013
mov dword [ebp - 0x82c], 0x41d4ec
push 0x12
push 0
push 0
mov eax, dword [ebp - 0x82c]
push eax
call dword [ebp - 0x830]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x838], 0
jmp 0x413df8
mov ecx, dword [ebp - 0x838]
add ecx, 1
mov dword [ebp - 0x838], ecx
cmp dword [ebp - 0x838], 0x100
jae 0x413fe8
mov dword [ebp - 0x20], 0x1c
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 0x838]
push eax
mov ecx, dword [ebp - 0x82c]
push ecx
push 0
mov edx, dword [ebp - 0x24]
push edx
call dword [ebp - 0x840]
test eax, eax
jne 0x413e45
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x103
jne 0x413e43
jmp 0x413fe8
jmp 0x413de9
push 0x20019
push 0
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call dword [ebp - 0x834]
mov dword [ebp - 0x854], eax
cmp dword [ebp - 0x854], 0xffffffff
jne 0x413e6e
jmp 0x413de9
mov dword [ebp - 0x850], 4
lea edx, [ebp - 0x850]
push edx
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x84c]
push ecx
push 0
push str.Port_Number
mov edx, dword [ebp - 0x854]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x858], eax
cmp dword [ebp - 0x858], 0
je 0x413ebf
mov eax, dword [ebp - 0x854]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x413de9
mov dword [ebp - 0x850], 0x800
lea ecx, [ebp - 0x850]
push ecx
lea edx, [ebp - 0x828]
push edx
lea eax, [ebp - 0x84c]
push eax
push 0
push str.VIDPID
mov ecx, dword [ebp - 0x854]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x858], eax
cmp dword [ebp - 0x858], 0
jne 0x413f42
mov edx, dword [ebp - 0x28]
push edx
push 0x4215e4
push 0x800
lea eax, [ebp - 0x828]
push eax
call fcn.004010b0
add esp, 0x10
test eax, eax
jne 0x413f3d
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x828]
push ecx
call fcn.00413000
add esp, 0x10
jmp 0x413fd6
mov dword [ebp - 0x850], 0x800
lea edx, [ebp - 0x850]
push edx
lea eax, [ebp - 0x828]
push eax
lea ecx, [ebp - 0x84c]
push ecx
push 0
push str.Base_Name
mov edx, dword [ebp - 0x854]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x858], eax
cmp dword [ebp - 0x858], 0
jne 0x413fd6
lea eax, [ebp - 0x828]
push eax
push 0x4215f8
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x413fd6
mov ecx, dword [ebp - 0x28]
push ecx
push 0x4215fc
push 0x800
lea edx, [ebp - 0x828]
push edx
call fcn.004010b0
add esp, 0x10
test eax, eax
jne 0x413fd6
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
lea eax, [ebp - 0x828]
push eax
call fcn.00413000
add esp, 0x10
mov ecx, dword [ebp - 0x854]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x413de9
cmp dword [ebp - 0x24], 0
je 0x413ff8
mov edx, dword [ebp - 0x24]
push edx
call dword [ebp - 0x83c]
cmp dword [ebp - 0x844], 0
je 0x41400e
mov eax, dword [ebp - 0x844]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401194
mov esp, ebp
pop ebp
ret