Function at 0x428680
Capabilities:
Get common file path
Get file size
Read .ini file

Disassembly:
sub esp, 0xa4c
mov eax, dword [str.___t]
mov dl, byte [0x44d5a8]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
push edi
lea esi, [ecx + 0x14]
mov dword [esp + 0xc], eax
push esi
lea eax, [esp + 0x958]
push eax
mov dword [esp + 0x28], ecx
mov byte [esp + 0x18], dl
call ebp
push 0
push 0
push 3
push 0
push 3
push SysReAllocString
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4286dd
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4c
ret
push ebx
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebx, 0xffffffff
je 0x428ce5
lea ecx, [ebx + 1]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push esi
mov edi, eax
push ebx
push edi
push str.CAPTFileConfig
mov dword [esp + 0x28], edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionA]
mov esi, eax
test esi, esi
mov dword [esp + 0x1c], esi
je 0x428cde
add ebx, 0xfffffffe
cmp esi, ebx
je 0x428cde
push 0x104
lea edx, [esp + 0x650]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 0x104
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test esi, esi
mov dword [esp + 0x30], edi
jbe 0x428cbb
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x428773
mov edi, dword [esp + 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x754]
mov edi, eax
push edx
inc edi
call ebp
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov al, byte [esp + 0x750]
add edx, edi
sub ecx, edi
cmp al, 0x3b
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
je 0x428caf
mov eax, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x754]
push ecx
mov byte [esp + 0x550], 0
mov byte [esp + 0x44c], 0
mov byte [esp + 0x348], 0
mov byte [esp + 0x244], 0
call fcn.0042e8d8
add esp, 8
push eax
lea edx, [esp + 0x54c]
push edx
call ebp
lea eax, [esp + 0x10]
push eax
push 0
call fcn.0042e8d8
add esp, 8
push 0x44cc68
push eax
call esi
lea ecx, [esp + 0x10]
push ecx
push 0
call fcn.0042e8d8
add esp, 8
push 0x44cc68
push eax
call esi
lea edx, [esp + 0x10]
push edx
push 0
call fcn.0042e8d8
add esp, 8
push 0x44cc68
push eax
call esi
lea eax, [esp + 0x10]
push eax
push 0
call fcn.0042e8d8
add esp, 8
mov edi, eax
push str.W32_2
push edi
call esi
test eax, eax
jne 0x428885
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x448]
push edx
call ebp
push str.SpoolDriversw32x862
lea eax, [esp + 0x448]
push eax
call ebx
jmp 0x42895b
push str.W32_3
push edi
call esi
test eax, eax
jne 0x4288b4
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x448]
push edx
call ebp
push str.SpoolDriversw32x863
lea eax, [esp + 0x448]
push eax
call ebx
jmp 0x42895b
push 0x44d580
push edi
call esi
test eax, eax
jne 0x4288e0
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x448]
push edx
call ebp
push str.SpoolDriversw32x86
lea eax, [esp + 0x448]
push eax
call ebx
jmp 0x42895b
push str.SYS32
push edi
call esi
test eax, eax
je 0x42894c
push 0x44d55c
push edi
call esi
test eax, eax
je 0x42894c
push 0x44be60
push edi
call esi
test eax, eax
jne 0x428924
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x448]
push edx
call ebp
push str.Drivers
lea eax, [esp + 0x448]
push eax
call ebx
jmp 0x42895b
push 0x44d54c
push edi
call esi
test eax, eax
jne 0x428942
lea ecx, [esp + 0x64c]
push ecx
lea edx, [esp + 0x448]
push edx
jmp 0x428959
mov dword [esp + 0x28], 0
jmp 0x42895b
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x448]
push ecx
call ebp
lea edx, [esp + 0x10]
push edx
push 0
call fcn.0042e8d8
add esp, 8
mov edi, eax
push str.W32_2
push edi
call esi
test eax, eax
jne 0x42899b
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x344]
push ecx
call ebp
push str.SpoolDriversw32x862
lea edx, [esp + 0x344]
push edx
call ebx
jmp 0x428a71
push str.W32_3
push edi
call esi
test eax, eax
jne 0x4289ca
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x344]
push ecx
call ebp
push str.SpoolDriversw32x863
lea edx, [esp + 0x344]
push edx
call ebx
jmp 0x428a71
push 0x44d580
push edi
call esi
test eax, eax
jne 0x4289f6
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x344]
push ecx
call ebp
push str.SpoolDriversw32x86
lea edx, [esp + 0x344]
push edx
call ebx
jmp 0x428a71
push str.SYS32
push edi
call esi
test eax, eax
je 0x428a62
push 0x44d55c
push edi
call esi
test eax, eax
je 0x428a62
push 0x44be60
push edi
call esi
test eax, eax
jne 0x428a3a
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x344]
push ecx
call ebp
push str.Drivers
lea edx, [esp + 0x344]
push edx
call ebx
jmp 0x428a71
push 0x44d54c
push edi
call esi
test eax, eax
jne 0x428a58
lea eax, [esp + 0x64c]
push eax
lea ecx, [esp + 0x344]
push ecx
jmp 0x428a6f
mov dword [esp + 0x20], 0
jmp 0x428a71
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x344]
push eax
call ebp
lea ecx, [esp + 0x10]
push ecx
push 0
call fcn.0042e8d8
add esp, 8
mov edi, eax
push str.W32_2
push edi
call esi
test eax, eax
jne 0x428ab1
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x240]
push eax
call ebp
push str.SpoolDriversw32x862
lea ecx, [esp + 0x240]
push ecx
call ebx
jmp 0x428b87
push str.W32_3
push edi
call esi
test eax, eax
jne 0x428ae0
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x240]
push eax
call ebp
push str.SpoolDriversw32x863
lea ecx, [esp + 0x240]
push ecx
call ebx
jmp 0x428b87
push 0x44d580
push edi
call esi
test eax, eax
jne 0x428b0c
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x240]
push eax
call ebp
push str.SpoolDriversw32x86
lea ecx, [esp + 0x240]
push ecx
call ebx
jmp 0x428b87
push str.SYS32
push edi
call esi
test eax, eax
je 0x428b78
push 0x44d55c
push edi
call esi
test eax, eax
je 0x428b78
push 0x44be60
push edi
call esi
test eax, eax
jne 0x428b50
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x240]
push eax
call ebp
push str.Drivers
lea ecx, [esp + 0x240]
push ecx
call ebx
jmp 0x428b87
push 0x44d54c
push edi
call esi
test eax, eax
jne 0x428b6e
lea edx, [esp + 0x64c]
push edx
lea eax, [esp + 0x240]
push eax
jmp 0x428b85
mov dword [esp + 0x2c], 0
jmp 0x428b87
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x240]
push edx
call ebp
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0x16c]
test eax, eax
je 0x428bb0
push str.CNAP1NSK.DLL
lea eax, [esp + 0x54c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x428caf
mov eax, dword [esp + 0x28]
test eax, eax
je 0x428c05
lea ecx, [esp + 0x444]
push ecx
lea edx, [esp + 0x13c]
push edx
call ebp
push 0x44b63c
lea eax, [esp + 0x13c]
push eax
call ebx
lea ecx, [esp + 0x548]
push ecx
lea edx, [esp + 0x13c]
push edx
call ebx
mov edx, dword [edi + 0x124]
lea ecx, [edi + 0x11c]
lea eax, [esp + 0x138]
push eax
push edx
call fcn.0043c149
mov eax, dword [esp + 0x20]
test eax, eax
je 0x428c5a
lea eax, [esp + 0x340]
push eax
lea ecx, [esp + 0x13c]
push ecx
call ebp
push 0x44b63c
lea edx, [esp + 0x13c]
push edx
call ebx
lea eax, [esp + 0x548]
push eax
lea ecx, [esp + 0x13c]
push ecx
call ebx
mov eax, dword [edi + 0x124]
lea ecx, [edi + 0x11c]
lea edx, [esp + 0x138]
push edx
push eax
call fcn.0043c149
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x428caf
lea ecx, [esp + 0x23c]
push ecx
lea edx, [esp + 0x13c]
push edx
call ebp
push 0x44b63c
lea eax, [esp + 0x13c]
push eax
call ebx
lea ecx, [esp + 0x548]
push ecx
lea edx, [esp + 0x13c]
push edx
call ebx
mov edx, dword [edi + 0x124]
lea ecx, [edi + 0x11c]
lea eax, [esp + 0x138]
push eax
push edx
call fcn.0043c149
mov eax, dword [esp + 0x1c]
test eax, eax
ja 0x42876f
mov eax, dword [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov ecx, dword [esp + 0x24]
pop ebx
pop edi
pop esi
mov byte [ecx + 4], 1
mov eax, 1
pop ebp
add esp, 0xa4c
ret
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4c
ret