Function at 0x4165e0
Capabilities:
Link many functions at runtime

Disassembly:
mov eax, dword [0x41b53c]
push esi
cmp al, 4
push edi
jb 0x416970
cmp eax, 0x80000000
jae 0x416970
mov eax, dword [sym.imp.USER32.dll_GetWindowTextW]
mov ecx, dword [sym.imp.USER32.dll_SetWindowTextW]
mov edx, dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov dword [0x41b450], eax
mov eax, dword [sym.imp.USER32.dll_GetDlgItemTextW]
mov dword [0x41b440], ecx
mov ecx, dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov dword [0x41b484], edx
mov edx, dword [sym.imp.USER32.dll_PostMessageW]
mov dword [0x41b480], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [0x41b458], ecx
mov ecx, dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov dword [0x41b430], edx
mov edx, dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [0x41b4ec], eax
mov eax, dword [sym.imp.KERNEL32.dll_FormatMessageW]
mov dword [0x41b420], ecx
mov ecx, dword [sym.imp.USER32.dll_CreateDialogParamW]
mov dword [0x41b490], edx
mov edx, dword [sym.imp.USER32.dll_DialogBoxParamW]
mov dword [fcn.0041b498], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [0x41b40c], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [0x41b4c0], edx
mov edx, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [0x41b3c8], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [fcn.0041b434], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [fcn.0041b3f4], edx
mov edx, dword [sym.imp.KERNEL32.dll_MoveFileW]
mov dword [fcn.0041b4b0], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [0x41b3cc], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov dword [0x41b4f0], edx
mov edx, dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [0x41b478], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov dword [0x41b488], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov dword [fcn.0041b3fc], edx
mov edx, dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov dword [0x41b410], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov dword [0x41b428], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dword [0x41b4e8], edx
mov edx, dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov dword [fcn.0041b4b4], eax
mov eax, dword [sym.imp.SHELL32.dll_DragQueryFileW]
mov dword [fcn.0041b3e0], ecx
mov ecx, dword [sym.imp.comdlg32.dll_GetOpenFileNameW]
mov dword [fcn.0041b460], edx
mov edx, dword [sym.imp.comdlg32.dll_GetSaveFileNameW]
mov dword [0x41b424], eax
mov eax, dword [sym.imp.USER32.dll_InsertMenuW]
mov dword [0x41b448], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [0x41b45c], edx
mov edx, dword [sym.imp.USER32.dll_CharUpperW]
mov dword [0x41b49c], eax
mov eax, dword [sym.imp.USER32.dll_CharLowerW]
mov dword [0x41b4cc], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov dword [fcn.0041b4f4], edx
mov edx, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [fcn.0041b464], eax
mov eax, dword [sym.imp.MSVCRT.dll_wcschr]
mov dword [fcn.0041b418], ecx
mov ecx, dword [sym.imp.MSVCRT.dll_wcscmp]
mov dword [0x41b4bc], 1
push ebx
mov dword [fcn.0041b48c], edx
mov dword [0x41b400], eax
mov dword [fcn.0041b470], 0x418300
mov dword [fcn.0041b4b8], 0x418340
mov dword [fcn.0041b3c4], 0x4182b0
mov dword [fcn.0041b4e4], ecx
mov edx, dword [sym.imp.MSVCRT.dll__wcsnicmp]
mov ecx, dword [sym.imp.MSVCRT.dll_wcslen]
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x41b3e4], edx
mov edx, dword [sym.imp.MSVCRT.dll_wcscpy]
mov dword [fcn.0041b444], ecx
mov ecx, dword [sym.imp.MSVCRT.dll__wcsdup]
mov dword [fcn.0041b3d0], edx
mov edx, dword [sym.imp.MSVCRT.dll_wcsrchr]
mov dword [fcn.0041b404], ecx
mov ecx, dword [sym.imp.MSVCRT.dll_swprintf]
mov dword [0x41b4c8], eax
mov eax, dword [sym.imp.MSVCRT.dll_wcstol]
push 0x4054d0
mov dword [0x41b3dc], edx
mov dword [0x41b3e8], eax
mov dword [fcn.0041b408], ecx
mov dword [0x41b4d8], 0x418250
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
push 0x4054b8
push edi
call esi
push 0x4054a4
push edi
mov dword [0x41b4d4], eax
call esi
push 0x405490
push edi
mov dword [0x41b4c4], eax
call esi
push 0x405488
push edi
mov dword [0x41b4d0], eax
call esi
mov edx, dword [0x4026cc]
mov ecx, dword [0x4026d4]
mov dword [0x41b3d4], eax
mov eax, dword [0x4026d0]
mov dword [0x41b4a0], edx
mov edx, dword [0x4026d8]
push 0x40547c
mov dword [0x41b4a4], eax
mov dword [0x41b4a8], ecx
mov dword [0x41b4ac], edx
call ebx
mov edi, eax
push 0x40546c
push edi
call esi
push 0x405458
push edi
mov dword [fcn.0041b494], eax
call esi
pop ebx
pop edi
mov dword [0x41b44c], eax
mov dword [0x41b3f0], 2
mov dword [0x41b414], 0x7d00
mov dword [0x41b4e0], 0x405454
mov dword [0x41b3ec], 0x405448
mov dword [0x41b42c], 0x405440
mov dword [0x41b474], 0x405434
mov dword [0x41b438], 0x404594
mov dword [0x41b43c], 0x405430
mov dword [0x41b454], 0x405428
mov dword [0x41b3c0], 0x405420
mov dword [0x41b46c], 0x41b394
mov dword [0x41b3d8], 0x40541c
mov dword [0x41b4dc], 0x405414
mov dword [0x41b41c], 0x405410
mov dword [0x41b468], 0x405404
mov dword [0x41b3f8], 0x4053f8
pop esi
ret
mov ecx, dword [sym.imp.USER32.dll_GetWindowTextA]
mov edx, dword [sym.imp.USER32.dll_SetWindowTextA]
mov dword [0x41b450], ecx
mov ecx, dword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov dword [0x41b440], edx
mov edx, dword [sym.imp.USER32.dll_GetDlgItemTextA]
mov dword [0x41b484], ecx
mov ecx, dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov dword [0x41b480], edx
mov edx, dword [sym.imp.USER32.dll_PostMessageA]
mov dword [0x41b458], ecx
mov ecx, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [0x41b430], edx
mov edx, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov dword [0x41b4ec], ecx
mov ecx, dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [0x41b420], edx
mov edx, dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov dword [0x41b490], ecx
mov ecx, dword [sym.imp.USER32.dll_CreateDialogParamA]
mov dword [fcn.0041b498], edx
mov edx, dword [sym.imp.USER32.dll_DialogBoxParamA]
mov dword [0x41b40c], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [0x41b4c0], edx
mov edx, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov dword [0x41b3c8], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [fcn.0041b434], edx
mov edx, dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov dword [fcn.0041b3f4], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [fcn.0041b4b0], edx
mov edx, dword [sym.imp.KERNEL32.dll_MoveFileA]
mov dword [0x41b3cc], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov dword [0x41b4f0], edx
mov edx, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov dword [0x41b478], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [0x41b488], edx
mov edx, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov dword [fcn.0041b3fc], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x41b410], edx
mov edx, dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov dword [0x41b428], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov dword [0x41b4e8], edx
mov edx, dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [fcn.0041b4b4], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
mov dword [fcn.0041b3e0], edx
mov edx, dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov dword [fcn.0041b460], ecx
mov ecx, dword [sym.imp.comdlg32.dll_GetOpenFileNameA]
mov dword [0x41b424], edx
mov edx, dword [sym.imp.comdlg32.dll_GetSaveFileNameA]
mov dword [0x41b448], ecx
mov ecx, dword [sym.imp.USER32.dll_InsertMenuA]
mov dword [0x41b45c], edx
mov edx, dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x41b49c], ecx
mov ecx, dword [sym.imp.USER32.dll_CharUpperA]
mov dword [0x41b4cc], edx
mov edx, dword [sym.imp.USER32.dll_CharLowerA]
mov dword [fcn.0041b4f4], ecx
mov ecx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov dword [fcn.0041b464], edx
mov edx, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [fcn.0041b418], ecx
mov ecx, dword [sym.imp.MSVCRT.dll__mbschr]
xor eax, eax
mov dword [fcn.0041b48c], edx
mov edx, dword [sym.imp.MSVCRT.dll__strnicmp]
mov dword [0x41b4bc], eax
mov dword [0x41b400], ecx
mov dword [fcn.0041b470], 0x418310
mov dword [fcn.0041b4b8], 0x418360
mov dword [fcn.0041b3c4], fcn.004182c0
mov dword [fcn.0041b4e4], 0x41b1dc
mov ecx, dword [sym.imp.MSVCRT.dll__strdup]
mov dword [0x41b3e4], edx
mov edx, dword [sym.imp.MSVCRT.dll_strchr]
mov dword [fcn.0041b404], ecx
mov ecx, dword [sym.imp.MSVCRT.dll_strrchr]
mov dword [0x41b4c8], edx
mov edx, dword [sym.imp.MSVCRT.dll_strtol]
mov dword [0x41b3dc], ecx
mov ecx, dword [sym.imp.MSVCRT.dll_sprintf]
mov dword [0x41b3e8], edx
mov edx, dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov dword [fcn.0041b408], ecx
mov ecx, dword [sym.imp.SHELL32.dll_SHBrowseForFolderA]
mov dword [0x41b4d4], edx
mov edx, dword [0x4026dc]
mov dword [0x41b4c4], ecx
mov ecx, dword [0x4026e4]
mov dword [0x41b4d0], eax
mov dword [0x41b3d4], eax
mov eax, dword [0x4026e0]
mov dword [0x41b4a0], edx
mov edx, dword [0x4026e8]
push 0x40547c
mov dword [fcn.0041b444], 0x41b1d6
mov dword [fcn.0041b3d0], 0x41b1d0
mov dword [0x41b4d8], 0x4181b0
mov dword [0x41b4a4], eax
mov dword [0x41b4a8], ecx
mov dword [0x41b4ac], edx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
push 0x4053e8
push esi
call edi
push 0x405458
push esi
mov dword [fcn.0041b494], eax
call edi
pop edi
mov dword [0x41b44c], eax
mov dword [0x41b414], 0x820
mov dword [0x41b3f0], 1
mov dword [0x41b4e0], 0x4053e4
mov dword [0x41b3ec], 0x4053dc
mov dword [0x41b42c], 0x404ce0
mov dword [0x41b474], 0x4053d4
mov dword [0x41b438], 0x4053d0
mov dword [0x41b43c], 0x4053cc
mov dword [0x41b454], 0x4053c8
mov dword [0x41b3c0], 0x4053c4
mov dword [0x41b46c], 0x41b380
mov dword [0x41b3d8], 0x4053c0
mov dword [0x41b4dc], 0x4053bc
mov dword [0x41b41c], 0x4053b8
mov dword [0x41b468], 0x4053b0
mov dword [0x41b3f8], 0x4053a8
pop esi
ret