Function at 0x4016e1
Capabilities:
Get common file path
Get disk information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x874
push ebx
push esi
push edi
mov dword [esp + 0xc], 0xbfe6be3
mov dword [esp + 0x5c], 0x13fbf6e2
mov dword [esp + 0x30], 0x7444b741
mov dword [esp + 0x28], 0x50768084
mov dword [esp + 0x20], 0xfb55cdd
mov dword [esp + 0x34], 0x34c7ccbd
mov dword [esp + 0x68], 0x50a3f05e
mov dword [esp + 0x18], 0x5af64271
mov dword [esp + 0x10], 0x7ee3fcfc
mov dword [esp + 0x50], 0x71a2fa54
mov dword [esp + 0x14], 0x33d85033
mov dword [esp + 0x58], 0x6d7c2cc5
mov dword [esp + 0x40], 0x76e89209
mov dword [esp + 0x6c], 0x7f957cd2
mov dword [esp + 0x1c], 0x4f6f6d09
mov dword [esp + 0x4c], 0x605b7b53
mov dword [esp + 0x78], 0x4e3c54ed
mov dword [esp + 0x38], 0x18364783
mov dword [esp + 0x2c], 0x24313bec
mov dword [esp + 0x70], 0x327cf9b9
mov dword [esp + 0x44], 0x42b990c
mov dword [esp + 0x64], 0x7689e58d
mov dword [esp + 0x54], 0x6dc74b96
mov dword [esp + 0x74], 0x2542de69
mov dword [esp + 0x48], 0x1e0ac424
mov dword [esp + 0x60], 0x48bf5e33
mov dword [esp + 0x24], 0x610e07b5
mov dword [esp + 0x3c], 0x5b91060f
sub dword [esp + 0xc], 0x8303063
add dword [esp + 0xc], 0x27e2b3cd
sub dword [esp + 0xc], 0x17267b68
sub dword [esp + 0x5c], 0x6da05628
add dword [esp + 0x30], 0x43a38353
sub dword [esp + 0x28], 0x262cfbe4
sub dword [esp + 0x30], 0x435b286c
add dword [esp + 0x34], 0x3192ce2b
add dword [esp + 0x18], 0xc27ab6
add dword [esp + 0x68], 0x52f51008
sub dword [esp + 0xc], 0xda10415
add dword [esp + 0x18], 0x575b9e6a
add dword [esp + 0x20], 0x87d6aa
add dword [esp + 0xc], 0x210a2730
add dword [esp + 0x20], 0x22bc0704
add dword [esp + 0x58], 0x7c9a4811
add dword [esp + 0xc], 0xf757e2d
sub dword [esp + 0x5c], 0x466de0d
add dword [esp + 0x68], 0x7e003ac9
add dword [esp + 0x5c], 0x77b5288d
add dword [esp + 0x5c], 0x795f7b24
sub dword [esp + 0x30], 0x7a70fa79
sub dword [esp + 0x58], 0x850550e
add dword [esp + 0x5c], 0x5dddaf82
add dword [esp + 0x20], 0x7c31eaae
add dword [esp + 0x28], 0x7dc07122
add dword [esp + 0x10], 0x2f5d6678
sub dword [esp + 0x30], 0x5ef8a2ea
add dword [esp + 0x30], 0x2f883e50
add dword [esp + 0x5c], 0x4323d819
sub dword [esp + 0x34], 0x165f172c
add dword [esp + 0x30], 0x6e26f375
sub dword [esp + 0xc], 0x62c410e2
sub dword [esp + 0x20], 0x28ab4c2
add dword [esp + 0x50], 0x31c971b2
sub dword [esp + 0xc], 0xeadd774
add dword [esp + 0x40], 0x21828603
add dword [esp + 0x28], 0x61bab459
sub dword [esp + 0x50], 0x31d26b2e
add dword [esp + 0x50], 0x69f26d4d
add dword [esp + 0x40], 0x657ad3d1
sub dword [esp + 0x18], 0x3bcae5f1
sub dword [esp + 0x18], 0x4fc49f0a
sub dword [esp + 0x5c], 0x364f474c
add dword [esp + 0x20], 0x29d1fe66
sub dword [esp + 0x40], 0x340c42ea
add dword [esp + 0x34], 0x230e27a6
add dword [esp + 0x30], 0x6ab58283
sub dword [esp + 0x38], 0x4b0fb679
add dword [esp + 0x14], 0x4349e655
add dword [esp + 0x58], 0x5a54d295
add dword [esp + 0x40], 0x225d669a
sub dword [esp + 0x1c], 0x5e18aea9
add dword [esp + 0x10], 0x16617a0e
sub dword [esp + 0x78], 0x59e71406
add dword [esp + 0x18], 0x46d3157d
add dword [esp + 0x18], 0x1cd917c5
sub dword [esp + 0x40], 0x6248f068
sub dword [esp + 0x2c], 0x7349e348
add dword [esp + 0x2c], 0x1e96a161
sub dword [esp + 0x70], 0x61b561e4
sub dword [esp + 0x38], 0x716b090c
sub dword [esp + 0x68], 0x5fb08480
sub dword [esp + 0x14], 0x7c2e4a0a
add dword [esp + 0x1c], 0x76457481
add dword [esp + 0x4c], 0x5f0cafa6
sub dword [esp + 0xc], 0x78258852
add dword [esp + 0x18], 0x70c76e0b
add dword [esp + 0x68], 0x4a2f73a8
add dword [esp + 0x64], 0x290b52cc
sub dword [esp + 0x20], 0x2a5325cd
add dword [esp + 0x58], 0x1c29a5b2
sub dword [esp + 0x58], 0x6a1de806
sub dword [esp + 0x54], 0x440ed662
add dword [esp + 0x50], 0x57f49635
sub dword [esp + 0x54], 0x72770368
sub dword [esp + 0x1c], 0x37e26f59
sub dword [esp + 0x50], 0x47a7f77e
add dword [esp + 0x78], 0x703cd024
add dword [esp + 0x34], 0x414a9541
sub dword [esp + 0x1c], 0x75ecb811
add dword [esp + 0x4c], 0x359fc60
sub dword [esp + 0x4c], 0x787f3a3
add dword [esp + 0x34], 0x91a606f
sub dword [esp + 0x58], 0x3a150f1e
sub dword [esp + 0x6c], 0x3d2616fd
sub dword [esp + 0x50], 0x6a9497fe
add dword [esp + 0x68], 0xcca0fa7
sub dword [esp + 0x1c], 0x5b5e66c5
add dword [esp + 0x70], 0x3b4fdd31
add dword [esp + 0x58], 0x6580d23a
add dword [esp + 0x40], 0x7cb42143
add dword [esp + 0x4c], 0x723bbe96
add dword [esp + 0x20], 0x6e5d53e
sub dword [esp + 0x60], 0x246e0d14
add dword [esp + 0x1c], 0x1b2ec1b2
add dword [esp + 0x74], 0x79eda9b0
add dword [esp + 0x24], 0x34672f01
sub dword [esp + 0x40], 0x1a337aba
add dword [esp + 0x64], 0x2c1952ef
sub dword [esp + 0x3c], 0x2f611e94
sub dword [esp + 0x48], 0x79b43b94
sub dword [esp + 0x48], 0x224e7e11
add dword [esp + 0x44], 0x27006136
add dword [esp + 0x28], 0x534af1d6
sub dword [esp + 0x2c], 0x14356e1f
add dword [esp + 0x38], 0x2d401d56
add dword [esp + 0x68], 0x2e916cb2
add dword [esp + 0x50], 0x4eb9d7ee
xor esi, esi
cmp dword [0x24582e4], 0x400
jne 0x401bd6
push esi
push esi
call dword [sym.imp.KERNEL32.dll__lcreat]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll__hread]
push esi
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetCalendarInfoW]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push esi
lea eax, [esp + 0x84]
push eax
push 0x43da88
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
push esi
call fcn.00402ddd
pop ecx
push esi
push esi
call fcn.0040314a
fldz
fst qword [esp]
push ecx
push ecx
fstp qword [esp]
call fcn.00402800
fstp st(0)
add esp, 8
fldz
fstp qword [esp]
call fcn.00403030
fstp st(0)
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], esi
call fcn.00402fb0
fstp st(0)
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], esi
call fcn.00402cc0
fstp st(0)
add esp, 8
mov edi, dword [sym.imp.GDI32.dll_GetCharWidthI]
xor ebx, ebx
cmp ebx, 0x16d22
jge 0x401bff
push esi
lea eax, [esp + 0x80]
push eax
push esi
push esi
push esi
call dword [sym.imp.GDI32.dll_GetCharABCWidthsI]
push esi
push esi
push esi
push esi
push esi
call edi
push esi
push esi
push dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp ebx, 0x12e8a06
jg 0x401c23
inc ebx
cmp ebx, 0x30375
jl 0x401bde
xor ebx, ebx
cmp ebx, 0xa16
jge 0x401c34
push esi
push esi
push esi
push esi
push esi
call edi
cmp ebx, 0x166c480
jg 0x401c45
inc ebx
cmp ebx, 0x37e3fd1
jl 0x401c25
mov eax, dword [0x442b6c]
mov dword [0x24582e4], eax
call fcn.0040144a
mov edi, 0x2ec37
cmp dword [0x24582e4], 0x51f
jne 0x401c74
lea eax, [esp + 0x80]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
dec edi
jne 0x401c59
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10