Function at 0x401050
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1cc
mov eax, dword [0x448004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 2
push 0x104
call fcn.00421bc0
add esp, 8
mov edi, eax
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call esi
mov dword [ebp - 0x1c4], eax
test ebx, ebx
je 0x4010c3
push 0
push 0
push 0x104
push 0x449798
push 0xffffffffffffffff
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
test ebx, ebx
jne 0x4010c3
call esi
mov dword [ebp - 0x1c4], eax
test edi, edi
je 0x4010d0
push edi
call fcn.0042422d
add esp, 4
push dword [ebp - 0x1c4]
call dword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
jne 0x401104
call esi
push eax
push str.Could_not_get_system_directory:__u
call fcn.00414ac0
push str.C:WindowsSystem32
push 0x104
push 0x449798
call fcn.004241d3
add esp, 0x14
push 0x449798
push 0x104
push 0x449538
call fcn.004241d3
add esp, 0xc
mov dword [ebp - 0x1c8], 0
cmp dword [0x44963c], 0
jne 0x40122b
xor edi, edi
xor ebx, ebx
push edi
push edi
push 0xffffffffffffffff
push str.Kernel32
push edi
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x1c4], eax
cmp eax, 1
jle 0x40120d
push 2
push eax
call fcn.00421bc0
mov edi, eax
add esp, 8
test edi, edi
je 0x40120d
push dword [ebp - 0x1c4]
push edi
push 0xffffffffffffffff
push str.Kernel32
push ebx
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, dword [ebp - 0x1c4]
jne 0x40120d
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ebx, eax
test ebx, ebx
jne 0x40120d
cmp word [0x4493f8], 0x40
jb 0x4011b7
push str.Error:_MAX_LIBRARY_HANDLES_is_too_small
call fcn.00414ac0
add esp, 4
jmp 0x40120d
push 0x800
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov ebx, eax
test ebx, ebx
jne 0x4011f3
call esi
cmp ax, 0x57
jne 0x4011e0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
jne 0x4011f3
call esi
push eax
push edi
push str.Unable_to_load__S.dll:__u
call fcn.00414ac0
add esp, 0xc
jmp 0x40120d
mov cx, word [0x4493f8]
movzx eax, cx
inc cx
mov word [0x4493f8], cx
mov dword [eax*4 + 0x44b6a0], ebx
push edi
call fcn.0042422d
add esp, 4
push 0x43b068
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x44963c], eax
test eax, eax
je 0x40123f
lea eax, [ebp - 0x1c8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [0x44963c]
cmp dword [ebp - 0x1c8], 0
je 0x4012fb
push 2
push 0x104
call fcn.00421bc0
add esp, 8
mov edi, eax
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
mov ebx, eax
call esi
mov dword [ebp - 0x1c8], eax
test ebx, ebx
je 0x4012a3
push 0
push 0
push 0x104
push 0x449538
push 0xffffffffffffffff
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
test ebx, ebx
jne 0x4012a3
call esi
mov dword [ebp - 0x1c8], eax
test edi, edi
je 0x4012b0
push edi
call fcn.0042422d
add esp, 4
push dword [ebp - 0x1c8]
call dword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
jne 0x4012e4
call esi
push eax
push str.Could_not_get_Windows_directory:__u
call fcn.00414ac0
push str.C:Windows
push 0x104
push 0x449538
call fcn.004241d3
add esp, 0x14
push str.Sysnative
push 0x104
push 0x449538
call fcn.00424248
add esp, 0xc
push 0x449798
push str.system_dir__s_
call fcn.00414ac0
push 0x449538
push str.sysnative_dir__s_
call fcn.00414ac0
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push 0
push 0x55
lea ecx, [ebp - 0x1c0]
movzx eax, ax
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_LCIDToLocaleName]
test eax, eax
jle 0x40135e
push 0
push 0
push 0x55
push 0x449640
push 0xffffffffffffffff
lea eax, [ebp - 0x1c0]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
jmp 0x401372
push str.en_US
push 0x55
push 0x449640
call fcn.004241d3
add esp, 0xc
push 0x449640
push 0x449538
push str._s_s_shell32.dll.mui
lea eax, [ebp - 0x110]
push 0x104
push eax
call fcn.00401010
add esp, 0x14
cmp byte [ebp - 0x110], 0
jne 0x4013ca
push 2
push 1
call fcn.00421bc0
add esp, 8
mov edi, eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
call esi
mov dword [ebp - 0x1c8], eax
test edi, edi
je 0x401469
jmp 0x40145a
push 0
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0x110]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
cmp ebx, 1
jg 0x4013f9
push 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
call esi
jmp 0x401469
push 2
push ebx
call fcn.00421bc0
mov edi, eax
add esp, 8
test edi, edi
jne 0x401417
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
call esi
jmp 0x401469
push ebx
push edi
push 0xffffffffffffffff
lea eax, [ebp - 0x110]
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push edi
cmp eax, ebx
je 0x40144a
call fcn.0042422d
add esp, 4
push 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
call esi
jmp 0x401469
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
call esi
mov dword [ebp - 0x1c8], eax
push edi
call fcn.0042422d
mov eax, dword [ebp - 0x1c8]
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
je 0x4017c4
push str.LoadLibrary_shell32.dll.mui_SUCCESS
call fcn.00414ac0
add esp, 4
push 2
push 0x100
call fcn.00421bc0
add esp, 8
mov edi, eax
push 0x100
push edi
push 0x101d
push ebx
call dword [sym.imp.USER32.dll_LoadStringW]
mov dword [ebp - 0x1c4], eax
call esi
cmp dword [ebp - 0x1c4], 0
mov dword [ebp - 0x1c8], eax
jle 0x4014ef
push 0
push 0
push 0x100
push 0x449438
push 0xffffffffffffffff
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x1c4], eax
test eax, eax
jne 0x4014ef
call esi
mov dword [ebp - 0x1c8], eax
test edi, edi
je 0x4014fc
push edi
call fcn.0042422d
add esp, 4
push dword [ebp - 0x1c8]
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x1c4], 0
jg 0x40153f
push str.Microsoft_Windows
push 0x100
push 0x449438
call fcn.004241d3
add esp, 0xc
call esi
push eax
lea eax, [ebp - 0x110]
push eax
push str.Warning:_Could_not_locate_localized_format_prompt_title_string_in__s:__u
call fcn.00414ac0
add esp, 0xc
push 2
push 0x100
call fcn.00421bc0
add esp, 8
mov edi, eax
push 0x100
push edi
push 0x101e
push ebx
call dword [sym.imp.USER32.dll_LoadStringW]
mov dword [ebp - 0x1c4], eax
call esi
cmp dword [ebp - 0x1c4], 0
mov dword [ebp - 0x1c8], eax
jle 0x4015a9
push 0
push 0
push 0x100
push 0x4498a0
push 0xffffffffffffffff
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x1c4], eax
test eax, eax
jne 0x4015a9
call esi
mov dword [ebp - 0x1c8], eax
test edi, edi
je 0x4015b6
push edi
call fcn.0042422d
add esp, 4
push dword [ebp - 0x1c8]
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x1c4], 0
jg 0x4015f9
push str.Format_disk
push 0x100
push 0x4498a0
call fcn.004241d3
add esp, 0xc
call esi
push eax
lea eax, [ebp - 0x110]
push eax
push str.Warning:_Could_not_locate_localized_format_prompt_button_string_in__s:__u
call fcn.00414ac0
add esp, 0xc
push 2
push 0x100
call fcn.00421bc0
add esp, 8
mov edi, eax
push 0x100
push edi
push 0x80c4
push ebx
call dword [sym.imp.USER32.dll_LoadStringW]
mov dword [ebp - 0x1c4], eax
call esi
cmp dword [ebp - 0x1c4], 0
mov dword [ebp - 0x1c8], eax
jle 0x401663
push 0
push 0
push 0x100
push 0x4499a8
push 0xffffffffffffffff
push edi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x1c4], eax
test eax, eax
jne 0x401663
call esi
mov dword [ebp - 0x1c8], eax
test edi, edi
je 0x401670
push edi
call fcn.0042422d
add esp, 4
push dword [ebp - 0x1c8]
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x1c4], 0
jg 0x4016b3
push str.Location_is_not_available
push 0x100
push 0x4499a8
call fcn.004241d3
add esp, 0xc
call esi
push eax
lea eax, [ebp - 0x110]
push eax
push str.Warning:_Could_not_locate_localized_format_prompt_title_string_in__s:__u
call fcn.00414ac0
add esp, 0xc
push 5
push 0x400
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x401779
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x401779
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
je 0x401779
mov edx, 0xffff
cmp word [eax + 2], dx
jne 0x401779
lea ecx, [eax + 0x1a]
movzx eax, word [ecx]
test ax, ax
jne 0x401707
add ecx, 2
jmp 0x40171c
cmp ax, dx
jne 0x401711
add ecx, 4
jmp 0x40171c
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401711
movzx eax, word [ecx]
test ax, ax
jne 0x401729
add ecx, 2
jmp 0x40173e
cmp ax, dx
jne 0x401733
add ecx, 4
jmp 0x40173e
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401733
push 0
push 0
push 0x100
push 0x449698
push 0xffffffffffffffff
push ecx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041fa5e
mov esp, ebp
pop ebp
ret
push str.Insert_disk
push 0x100
push 0x449698
call fcn.004241d3
add esp, 0xc
call esi
push eax
lea eax, [ebp - 0x110]
push eax
push str.Warning:_Could_not_locate_insert_disk_title_string_in__s:__u
call fcn.00414ac0
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041fa5e
mov esp, ebp
pop ebp
ret
push str.LoadLibrary_shell32.dll.mui_FAILED
call fcn.00414ac0
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
xor eax, eax
pop edi
pop esi
pop ebx
call fcn.0041fa5e
mov esp, ebp
pop ebp
ret