Function at 0x40d7c0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x218
mov eax, dword [0x4aeb00]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x214], ecx
push 0x208
push 0
lea eax, [ebp - 0x210]
push eax
call fcn.0045fc70
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x210]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov dword [ebp - 4], 0
mov dword [ebp - 4], 1
cmp dword [ebp - 4], 0
je 0x40d88b
push str.sqlite3.dll
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x210]
push ecx
call fcn.00436f30
add esp, 4
test eax, eax
jne 0x40d850
xor eax, eax
jmp 0x40da42
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push 0x496568
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x210]
push ecx
call fcn.00436f30
add esp, 4
test eax, eax
jne 0x40d889
xor eax, eax
jmp 0x40da42
jmp 0x40d89d
push 0x49659c
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ecx, dword [ebp - 0x214]
mov dword [ecx + 0x24], eax
mov edx, dword [ebp - 0x214]
cmp dword [edx + 0x24], 0
jne 0x40d8c6
xor eax, eax
jmp 0x40da42
push str.PreInit
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x214]
mov dword [edx], eax
push str.Init
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x214]
mov dword [edx + 4], eax
push str.Finit
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x214]
mov dword [edx + 8], eax
push str.GetInfo
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x214]
mov dword [edx + 0xc], eax
push str.GetInfo2
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x214]
mov dword [edx + 0x10], eax
push str.InitCpuUsage
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x214]
mov dword [edx + 0x18], eax
push str.GetHarddiskSMARTInfo
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x214]
mov dword [edx + 0x14], eax
push str.InitScanType
mov eax, dword [ebp - 0x214]
mov ecx, dword [eax + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 0x214]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0x214]
cmp dword [eax], 0
je 0x40da20
mov ecx, dword [ebp - 0x214]
cmp dword [ecx + 4], 0
je 0x40da20
mov edx, dword [ebp - 0x214]
cmp dword [edx + 8], 0
je 0x40da20
mov eax, dword [ebp - 0x214]
cmp dword [eax + 0xc], 0
je 0x40da20
mov ecx, dword [ebp - 0x214]
cmp dword [ecx + 0x10], 0
je 0x40da20
mov edx, dword [ebp - 0x214]
cmp dword [edx + 0x18], 0
je 0x40da20
mov eax, dword [ebp - 0x214]
cmp dword [eax + 0x14], 0
je 0x40da20
mov ecx, dword [ebp - 0x214]
cmp dword [ecx + 0x1c], 0
je 0x40da20
mov dword [ebp - 0x218], 1
jmp 0x40da2a
mov dword [ebp - 0x218], 0
mov edx, dword [ebp - 0x214]
mov eax, dword [ebp - 0x218]
mov dword [edx + 0x20], eax
mov ecx, dword [ebp - 0x214]
mov eax, dword [ecx + 0x20]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0045fcea
mov esp, ebp
pop ebp
ret