Function at 0x401856
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8a0
push ebx
push esi
mov dword [esp + 0x14], 0x70b5f13a
mov dword [esp + 0xc], 0x731170d5
mov dword [esp + 0x24], 0x45e16f8c
mov dword [esp + 0x10], 0x22bcff1d
mov dword [esp + 0x28], 0x1b7de369
mov dword [esp + 0x3c], 0x266c48d7
mov dword [esp + 0x4c], 0x501d028a
mov dword [esp + 0x18], 0x1b1e6341
mov dword [esp + 0x50], 0x762b03d2
mov dword [esp + 0x30], 0x797d5eb2
mov dword [esp + 0x48], 0x45a89ece
mov dword [esp + 0x2c], 0x4f283c76
mov dword [esp + 0x58], 0x56971c9b
mov dword [esp + 0x34], 0x338c5020
mov dword [esp + 0x1c], 0x16c0559d
mov dword [esp + 0x78], 0x351c4ebf
mov dword [esp + 0x20], 0x6fb063b9
mov dword [esp + 0x70], 0x7bc3583d
mov dword [esp + 0x60], 0x8d7ed5
mov dword [esp + 0x98], 0x358e7893
mov dword [esp + 0x44], 0x41fca147
mov dword [esp + 0x5c], 0x356a7a0c
mov dword [esp + 0x68], 0x4eb09984
mov dword [esp + 0x90], 0xd915afe
mov dword [esp + 0x80], 0x69579eb6
mov dword [esp + 0x38], 0x1446ab18
mov dword [esp + 0xa4], 0x68b2db1
mov dword [esp + 0x88], 0x3e4d89ad
mov dword [esp + 0x40], 0x3f00edc2
mov dword [esp + 0x6c], 0x2b71b0b1
mov dword [esp + 0x74], 0x6889c8ee
mov dword [esp + 0x54], 0x3f4be2a4
mov dword [esp + 0x7c], 0x57cef7b0
mov dword [esp + 0x84], 0x92bab03
mov dword [esp + 0x64], 0x34531cab
mov dword [esp + 0x8c], 0x7fee571e
mov dword [esp + 0x94], 0x63c0c86a
mov eax, 0x352025fa
mul dword [esp + 0x14]
mov eax, dword [esp + 0x14]
sub dword [esp + 0xc], 0x70011a9f
sub dword [esp + 0x14], 0x282b4360
sub dword [esp + 0x10], 0x444162e5
mov eax, 0x10df881c
mul dword [esp + 0x24]
mov eax, dword [esp + 0x24]
add dword [esp + 0x10], 0x23465665
mov eax, 0x1849942
mul dword [esp + 0xc]
mov eax, dword [esp + 0xc]
sub dword [esp + 0xc], 0x38f50789
add dword [esp + 0x14], 0x24a31ad8
add dword [esp + 0xc], 0x50c99946
mov eax, 0x329ef995
mul dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov eax, 0x7df04505
mul dword [esp + 0x24]
mov eax, dword [esp + 0x24]
sub dword [esp + 0x10], 0x5a6b68a4
mov eax, 0x7472634d
mul dword [esp + 0x30]
mov eax, dword [esp + 0x30]
add dword [esp + 0x18], 0x2c495f22
add dword [esp + 0x4c], 0x7a17d029
add dword [esp + 0x28], 0x69f70b69
mov eax, 0xe9c1e19
mul dword [esp + 0x24]
mov eax, dword [esp + 0x24]
sub dword [esp + 0x10], 0x54060443
mov eax, 0x30f3da31
mul dword [esp + 0xc]
mov eax, dword [esp + 0xc]
mov eax, 0x7dd145e0
mul dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov eax, 0x62328e37
mul dword [esp + 0x30]
mov eax, dword [esp + 0x30]
add dword [esp + 0x48], 0xfa6c860
sub dword [esp + 0xc], 0x5bbdb243
sub dword [esp + 0x28], 0x14a1608f
mov eax, 0x1f5e58c6
mul dword [esp + 0x20]
mov eax, dword [esp + 0x20]
add dword [esp + 0x10], 0x2f4b5fd5
mov eax, 0x2f3c9636
mul dword [esp + 0x20]
mov eax, dword [esp + 0x20]
sub dword [esp + 0x18], 0x5c52e9bc
mov eax, 0x737d34ae
mul dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x34], 0x50bb731a
sub dword [esp + 0x58], 0x117119a2
sub dword [esp + 0x50], 0x798c189b
add dword [esp + 0x60], 0x904d4bf
mov eax, 0x40d86e8b
mul dword [esp + 0x44]
mov eax, dword [esp + 0x44]
add dword [esp + 0x38], 0x5bdd8f08
sub dword [esp + 0x2c], 0x38655eae
mov eax, 0x1ff36be
mul dword [esp + 0x40]
mov eax, dword [esp + 0x40]
sub dword [esp + 0x18], 0x6461c7af
mov eax, 0x673927ca
mul dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov eax, 0x2d81f483
mul dword [esp + 0x38]
mov eax, dword [esp + 0x38]
add dword [esp + 0xc], 0x4eba4edb
mov eax, 0xdaf0fed
mul dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
sub dword [esp + 0x54], 0x3224436e
add dword [esp + 0x14], 0x75d1fa77
sub dword [esp + 0x34], 0x2072928b
mov eax, 0x1b80997c
mul dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x5c], 0x477e9542
add dword [esp + 0x3c], 0xa9320f0
sub dword [esp + 0x3c], 0x3e7a3be6
sub dword [esp + 0x64], 0x71b64c18
add dword [esp + 0x10], 0x7b18cacd
add dword [esp + 0x1c], 0x69e7f233
xor ebx, ebx
mov esi, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp esi, 0x207138
jg 0x401bc7
inc esi
cmp esi, 0x4f672
jl 0x401baf
mov esi, ebx
cmp esi, 0xb36
jge 0x401be4
push ebx
push ebx
call dword [sym.imp.USER32.dll_SetCaretPos]
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_GetCharABCWidthsI]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFindAtomA]
cmp esi, 0xb8615b
jg 0x401c06
inc esi
cmp esi, 0x1e70dee2
jl 0x401bc9
cmp dword [0x800088], 0x400
jne 0x401c55
push ebx
push ebx
push ebx
lea eax, [esp + 0xa8]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_BackupWrite]
push ebx
push ebx
call fcn.0040336d
push ebx
push ebx
push ebx
call fcn.00403d58
add esp, 0x14
xorps xmm0, xmm0
call fcn.00401080
push ebx
call fcn.00403e26
pop ecx
push ebx
call fcn.00403b74
pop ecx
push ebx
call fcn.00403b74
pop ecx
mov esi, ebx
push ebx
lea eax, [esp + 0xac]
push eax
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetNumberFormatW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp esi, 0x58bc14
jle 0x401c8c
cmp dword [esp + 0xa0], 0x7a45f535
jne 0x401c95
inc esi
cmp esi, 0xe154
jl 0x401c57
mov eax, dword [0x41a3fc]
mov dword [0x800088], eax
call fcn.004015f9
mov esi, 0x3078f
cmp dword [0x800088], 0x51f
jne 0x401cc4
push ebx
lea eax, [esp + 0xac]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
dec esi
jne 0x401ca9
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10