Function at 0x53a02b
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1698
call fcn.0054c740
push edi
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x53a059
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and eax, 0x10
test eax, eax
je 0x53a060
xor eax, eax
jmp 0x53a383
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0xc], 0
mov edx, dword [0x5ccbec]
mov dword [ebp - 0x214], edx
mov dword [ebp - 0x210], 0
mov eax, dword [0x5ccbf0]
mov dword [ebp - 0x314], eax
mov cl, byte [0x5ccbf4]
mov byte [ebp - 0x310], cl
mov ecx, 0x3e
xor eax, eax
lea edi, [ebp - 0x30f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edx, dword [ebp + 8]
push edx
push 0x200
lea eax, [ebp - 0x514]
push eax
push 0x685938
push str.MapCount
push 0x5ccc04
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 8]
push ecx
push 0x5ccc10
lea edx, [ebp - 0x514]
push edx
call fcn.0054d536
add esp, 0xc
mov ecx, 0x10
xor eax, eax
lea edi, [ebp - 0x554]
rep stosd dword es:[edi], eax
push str.DeviceMap
lea eax, [ebp - 0x554]
push eax
call fcn.0054c6e3
add esp, 8
mov ecx, 0x10
xor eax, eax
lea edi, [ebp - 0x1594]
rep stosd dword es:[edi], eax
mov ecx, 0x400
xor eax, eax
lea edi, [ebp - 0x1554]
rep stosd dword es:[edi], eax
mov ecx, 0x41
xor eax, eax
lea edi, [ebp - 0x1698]
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x1698]
push ecx
call fcn.00529440
add esp, 4
push str.UFD_MPusbhub.cfg
lea edx, [ebp - 0x1698]
push edx
call fcn.0054bea0
add esp, 8
mov dword [ebp - 4], 0
jmp 0x53a176
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 8]
jge 0x53a37e
mov ecx, 0x80
xor eax, eax
lea edi, [ebp - 0x514]
rep stosd dword es:[edi], eax
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x314]
rep stosd dword es:[edi], eax
mov ecx, 0x10
xor eax, eax
lea edi, [ebp - 0x1594]
rep stosd dword es:[edi], eax
mov edx, dword [ebp - 4]
push edx
push 0x5ccc34
lea eax, [ebp - 0x1594]
push eax
call fcn.0054c6e3
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
push 0x200
lea edx, [ebp - 0x514]
push edx
push 0x68593c
lea eax, [ebp - 0x1594]
push eax
lea ecx, [ebp - 0x554]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edi, [ebp - 0x514]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xffffffff
test ecx, ecx
jne 0x53a20b
jmp 0x53a16d
lea edx, [ebp - 0x214]
push edx
lea eax, [ebp - 0x514]
push eax
call fcn.0054f304
add esp, 8
mov dword [ebp - 0x210], eax
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0x210], 0
je 0x53a281
mov ecx, dword [ebp - 4]
shl ecx, 6
lea edx, [ebp + ecx - 0x1554]
mov eax, dword [ebp - 0xc]
lea ecx, [edx + eax*4]
push ecx
push 0x5ccc38
mov edx, dword [ebp - 0x210]
push edx
call fcn.0054d536
add esp, 0xc
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
lea ecx, [ebp - 0x214]
push ecx
push 0
call fcn.0054f304
add esp, 8
mov dword [ebp - 0x210], eax
jmp 0x53a22e
mov edx, dword [ebp - 0xc]
sub edx, 2
push edx
lea eax, [ebp - 0x314]
push eax
mov ecx, dword [ebp - 4]
shl ecx, 6
lea edx, [ebp + ecx - 0x1554]
push edx
call fcn.00540355
add esp, 0xc
test eax, eax
je 0x53a379
mov ecx, 0x80
xor eax, eax
lea edi, [ebp - 0x514]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 4]
add eax, 1
push eax
push str.HubName_d
lea ecx, [ebp - 0x514]
push ecx
call fcn.0054c6e3
add esp, 0xc
lea edx, [ebp - 0x1698]
push edx
lea eax, [ebp - 0x314]
push eax
lea ecx, [ebp - 0x514]
push ecx
push 0x5ccc48
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, 0x80
xor eax, eax
lea edi, [ebp - 0x514]
rep stosd dword es:[edi], eax
mov edx, dword [ebp - 4]
add edx, 1
push edx
push str.PortIndex_d
lea eax, [ebp - 0x514]
push eax
call fcn.0054c6e3
add esp, 0xc
mov ecx, 0x80
xor eax, eax
lea edi, [ebp - 0x20c]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 4]
shl ecx, 6
lea edx, [ebp + ecx - 0x1554]
mov eax, dword [ebp - 0xc]
mov ecx, dword [edx + eax*4 - 4]
push ecx
push 0x5ccc5c
lea edx, [ebp - 0x20c]
push edx
call fcn.0054c6e3
add esp, 0xc
lea eax, [ebp - 0x1698]
push eax
lea ecx, [ebp - 0x20c]
push ecx
lea edx, [ebp - 0x514]
push edx
push str.TEST
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x53a16d
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret