Function at 0x10143c39
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x244
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 8]
lea ebx, [ebp - 0x1c]
mov dword [ebx - 8], esp
mov dword [ebx + 0xc], 0xffffffff
mov dword [ebx + 8], 0x10190f20
mov dword [ebx + 4], 0x1014bc18
mov ecx, dword fs:[0]
mov dword [ebx], ecx
mov dword fs:[0], ebx
mov dword [ebp - 0x38], eax
mov esi, 0x104
xor edi, edi
lea eax, [ebp - 0x14c]
push esi
push edi
push eax
call fcn.1014ca80
add esp, 0xc
lea eax, [ebp - 0x250]
push esi
push edi
push eax
call fcn.1014ca80
add esp, 0xc
push 0x10183174
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x101836b8
push eax
call edi
mov dword [ebp - 0x2c], eax
push str.RegOpenKeyExA
push esi
call edi
mov dword [ebp - 0x30], eax
push str.RegEnumValueA
push esi
call edi
push str.RegEnumKeyExA
push esi
call edi
push 0x10182f85
mov dword [ebp - 0x40], esi
push esi
call edi
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x38]
xor edx, edx
mov dword [ebx + 0xc], edx
lea ecx, [ebp - 0x28]
push ecx
push 0x20019
push edx
push dword [ebp + 0xc]
push eax
call dword [ebp - 0x30]
test eax, eax
je 0x10143d0e
xor esi, esi
dec esi
jmp 0x10143d16
xor esi, esi
cmp dword [ebp + 0x24], 0
je 0x10143d48
mov dword [ebp - 0x10], 0xffffffff
mov ecx, ebp
call fcn.10143edb
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x10143d32
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 0x1c]
mov dword fs:[0], eax
mov eax, esi
add esp, 0x244
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x3c]
cmp ecx, 4
jge 0x10143d98
cmp ecx, 3
jne 0x10143deb
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
lea esi, [ebp - 0x34]
mov dword [esi], ecx
lea ecx, [ebp + 0x14]
push esi
push edx
push ecx
push 0
push eax
push dword [ebp - 0x28]
call dword [ebp - 0x2c]
test eax, eax
mov esi, 0
jne 0x10143d16
push dword [ebp + 0x14]
push str._08X
push dword [ebp + 0x18]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x10143ec0
cmp ecx, 7
jge 0x10143e33
cmp ecx, 4
jne 0x10143d16
lea ecx, [ebp - 0x34]
mov dword [ecx], 4
lea edx, [ebp - 0x48]
lea esi, [ebp + 0x14]
push ecx
push edx
push esi
push 0
push eax
push dword [ebp - 0x28]
call dword [ebp - 0x2c]
test eax, eax
mov esi, 0
jne 0x10143d16
push dword [ebp - 0x48]
push 0x10183634
push dword [ebp + 0x18]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x10143ec0
test ecx, ecx
jle 0x10143d16
lea ecx, [ebp - 0x34]
mov dword [ecx], 0x104
lea esi, [ebp - 0x14c]
lea edx, [ebp + 0x14]
push ecx
push esi
push edx
push 0
push eax
push dword [ebp - 0x28]
call dword [ebp - 0x2c]
test eax, eax
mov esi, 0
jne 0x10143d16
lea eax, [ebp - 0x14c]
push eax
push dword [ebp + 0x18]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x10143ec0
jne 0x10143d16
lea ecx, [ebp - 0x34]
mov dword [ecx], 0x104
lea edx, [ebp + 0x14]
push ecx
lea ecx, [ebp - 0x14c]
push ecx
push edx
push 0
push eax
push dword [ebp - 0x28]
call dword [ebp - 0x2c]
test eax, eax
mov esi, 0
jne 0x10143d16
lea eax, [ebp - 0x14c]
cmp byte [eax], 0
je 0x10143eb0
push 0x104
mov dword [ebp - 0x30], eax
push eax
lea eax, [ebp - 0x250]
push eax
call fcn.1013f591
add esp, 0xc
push 0x104
push str._0f87369f_a4e5_4cfc_bd3e_73e6154572dd
lea eax, [ebp - 0x250]
push eax
call fcn.1013f591
add esp, 0xc
push 0
push dword [ebp - 0x30]
call fcn.101413fd
add esp, 8
inc eax
jmp 0x10143e6a
lea eax, [ebp - 0x250]
push eax
push dword [ebp + 0x18]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor esi, esi
inc esi
jmp 0x10143d16