Function at 0x41809e
Capabilities:
Link many functions at runtime

Disassembly:
mov eax, dword [0x42c27c]
push ebx
push ebp
push esi
cmp al, 4
push edi
jb 0x4184b1
cmp eax, 0x80000000
jae 0x4184b1
mov eax, dword [sym.imp.USER32.dll_GetWindowTextW]
mov ebp, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x42c170], eax
mov eax, dword [sym.imp.USER32.dll_SetWindowTextW]
mov dword [0x42c154], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov dword [0x42c1ac], eax
mov eax, dword [sym.imp.USER32.dll_GetDlgItemTextW]
mov dword [0x42c1a8], eax
mov eax, dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov dword [0x42c17c], eax
mov eax, dword [sym.imp.USER32.dll_PostMessageW]
mov dword [0x42c13c], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [0x42c22c], eax
mov eax, dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov dword [0x42c128], eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [0x42c1b8], eax
mov eax, dword [sym.imp.KERNEL32.dll_FormatMessageW]
mov dword [0x42c1c0], eax
mov eax, dword [sym.imp.USER32.dll_CreateDialogParamW]
mov dword [0x42c110], eax
mov eax, dword [sym.imp.USER32.dll_DialogBoxParamW]
mov dword [0x42c1fc], eax
mov eax, dword [sym.imp.USER32.dll_RegisterClassW]
mov dword [0x42c1ec], eax
mov eax, dword [sym.imp.USER32.dll_FindWindowW]
mov dword [0x42c1d8], eax
mov eax, dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x42c1e4], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [0x42c0e0], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [0x42c160], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [0x42c140], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegQueryValueW]
mov dword [0x42c21c], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov dword [0x42c164], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov dword [0x42c1dc], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov dword [0x42c18c], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov dword [0x42c15c], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov dword [0x42c10c], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [0x42c0bc], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [0x42c144], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [0x42c0f0], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [0x42c1e0], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x42c0c4], eax
mov eax, dword [sym.imp.KERNEL32.dll_MoveFileW]
push str.kernel32.dll
mov dword [0x42c1f4], 1
mov dword [0x42c230], eax
call ebp
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CreateHardLinkW
push eax
call ebx
mov dword [0x42c0b0], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [0x42c1a0], eax
mov eax, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov dword [0x42c1b0], eax
mov eax, dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [0x42c0fc], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov dword [0x42c114], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov dword [0x42c134], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [0x42c118], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
push str.shell32.dll
mov dword [0x42c228], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov dword [0x42c1e8], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dword [0x42c0d8], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov dword [0x42c184], eax
mov eax, dword [sym.imp.SHELL32.dll_DragQueryFileW]
mov dword [0x42c130], eax
mov eax, dword [sym.imp.USER32.dll_InsertMenuW]
mov dword [0x42c1c4], eax
mov eax, dword [sym.imp.USER32.dll_ModifyMenuW]
mov dword [0x42c14c], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [0x42c208], eax
mov eax, dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [0x42c12c], eax
mov eax, dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov dword [0x42c1f8], eax
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x42c0c0], eax
mov eax, dword [sym.imp.WINMM.dll_PlaySoundW]
mov dword [0x42c0f4], eax
mov eax, dword [sym.imp.USER32.dll_CharUpperW]
mov dword [0x42c234], eax
mov eax, dword [sym.imp.USER32.dll_CharLowerW]
mov dword [0x42c188], eax
mov eax, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov dword [0x42c120], eax
mov eax, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [0x42c1b4], eax
mov eax, fcn.0041ca65
mov dword [0x42c168], 0x41b8aa
mov dword [0x42c180], 0x41b8b0
mov dword [0x42c100], eax
mov dword [0x42c198], 0x4199b0
mov dword [0x42c1f0], 0x4199e7
mov dword [0x42c0b8], 0x419970
mov dword [0x42c224], 0x41d1b4
mov dword [0x42c0dc], 0x41d11e
mov dword [0x42c158], 0x41ce5a
mov dword [0x42c0c8], 0x41d0f9
mov dword [0x42c104], 0x4219ed
mov dword [0x42c204], eax
mov dword [0x42c0d4], 0x41d0b9
mov dword [0x42c0e4], 0x41cee6
mov dword [0x42c174], 0x41d0a2
mov dword [0x42c108], 0x41ce77
mov dword [0x42c214], 0x41991d
call ebp
mov esi, eax
push str.SHGetPathFromIDListW
push esi
call ebx
push str.SHBrowseForFolderW
push esi
mov dword [0x42c210], eax
call ebx
push str.ILCreateFromPathW
push esi
mov dword [0x42c200], eax
call ebx
push str.ILFree
push esi
mov dword [0x42c20c], eax
call ebx
mov esi, 0x424f90
mov edi, 0x42c1c8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push str.user32.dll
mov dword [0x42c0cc], eax
movsd dword es:[edi], dword [esi]
call ebp
mov esi, eax
push str.GetMonitorInfoW
push esi
call ebx
push str.MonitorFromPoint
push esi
mov dword [0x42c1bc], eax
call ebx
push 1
mov dword [0x42c16c], eax
mov dword [0x42c0ec], 2
mov dword [0x42c11c], 0x7d00
mov dword [0x42acd0], 5
mov dword [0x42c220], 0x42ad84
mov dword [0x42c0e8], 0x42ad78
mov dword [0x42c138], 0x42ad70
mov dword [0x42c19c], 0x42ad64
mov dword [0x42c148], 0x42ad60
mov dword [0x42c150], 0x42ad5c
mov dword [0x42c178], 0x42ad54
mov dword [0x42c0b4], 0x42ad4c
mov dword [0x42c194], 0x42c238
mov dword [0x42c0d0], 0x42ad48
mov dword [0x42c218], 0x42ad40
mov dword [0x42c124], 0x42ad3c
mov dword [0x42c190], 0x42ad30
mov dword [0x42c0f8], 0x42ad24
pop eax
jmp 0x41887f
mov eax, dword [sym.imp.USER32.dll_GetWindowTextA]
mov ebp, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x42c170], eax
mov eax, dword [sym.imp.USER32.dll_SetWindowTextA]
mov dword [0x42c154], eax
mov eax, dword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov dword [0x42c1ac], eax
mov eax, dword [sym.imp.USER32.dll_GetDlgItemTextA]
mov dword [0x42c1a8], eax
mov eax, dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov dword [0x42c17c], eax
mov eax, dword [sym.imp.USER32.dll_PostMessageA]
mov dword [0x42c13c], eax
mov eax, dword [sym.imp.USER32.dll_SendMessageA]
mov dword [0x42c22c], eax
mov eax, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov dword [0x42c128], eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [0x42c1b8], eax
mov eax, dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov dword [0x42c1c0], eax
mov eax, dword [sym.imp.USER32.dll_CreateDialogParamA]
mov dword [0x42c110], eax
mov eax, dword [sym.imp.USER32.dll_DialogBoxParamA]
mov dword [0x42c1fc], eax
mov eax, dword [sym.imp.USER32.dll_RegisterClassA]
mov dword [0x42c1ec], eax
mov eax, dword [sym.imp.USER32.dll_FindWindowA]
mov dword [0x42c1d8], eax
mov eax, dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x42c1e4], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov dword [0x42c0e0], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [0x42c160], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [0x42c140], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegQueryValueA]
mov dword [0x42c21c], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [0x42c164], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
mov dword [0x42c1dc], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov dword [0x42c18c], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov dword [0x42c15c], eax
mov eax, dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov dword [0x42c10c], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [0x42c0bc], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov dword [0x42c144], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [0x42c0f0], eax
mov eax, dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov dword [0x42c1e0], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [0x42c0c4], eax
mov eax, dword [sym.imp.KERNEL32.dll_MoveFileA]
xor esi, esi
push str.kernel32.dll
mov dword [0x42c1f4], esi
mov dword [0x42c230], eax
call ebp
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CreateHardLinkA
push eax
call ebx
mov dword [0x42c0b0], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov dword [0x42c1a0], eax
mov eax, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov dword [0x42c1b0], eax
mov eax, dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [0x42c0fc], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov dword [0x42c114], eax
mov eax, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [0x42c134], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [0x42c118], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov dword [0x42c228], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
mov dword [0x42c1e8], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [0x42c0d8], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
mov dword [0x42c184], eax
mov eax, dword [sym.imp.SHELL32.dll_DragQueryFileA]
mov dword [0x42c130], eax
mov eax, dword [sym.imp.USER32.dll_InsertMenuA]
mov dword [0x42c1c4], eax
mov eax, dword [sym.imp.USER32.dll_ModifyMenuA]
mov dword [0x42c14c], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x42c208], eax
mov eax, dword [sym.imp.SHELL32.dll_ShellExecuteA]
mov dword [0x42c12c], eax
mov eax, dword [sym.imp.SHELL32.dll_ShellExecuteExA]
mov dword [0x42c1f8], eax
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x42c0c0], eax
mov eax, dword [sym.imp.WINMM.dll_PlaySoundA]
mov dword [0x42c0f4], eax
mov eax, dword [sym.imp.USER32.dll_CharUpperA]
mov dword [0x42c20c], esi
mov dword [0x42c0cc], esi
mov esi, 0x424fa0
mov edi, 0x42c1c8
mov dword [0x42c234], eax
mov eax, dword [sym.imp.USER32.dll_CharLowerA]
movsd dword es:[edi], dword [esi]
mov dword [0x42c188], eax
mov eax, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
movsd dword es:[edi], dword [esi]
mov dword [0x42c120], eax
mov eax, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [0x42c1b4], eax
mov eax, dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
movsd dword es:[edi], dword [esi]
mov dword [0x42c210], eax
mov eax, dword [sym.imp.SHELL32.dll_SHBrowseForFolderA]
push str.user32.dll
mov dword [0x42c168], 0x41b8bc
mov dword [0x42c180], 0x41b8b6
mov dword [0x42c100], 0x41bfb2
mov dword [0x42c198], 0x4199bd
mov dword [0x42c1f0], 0x4199f9
mov dword [0x42c0b8], 0x41997f
mov dword [0x42c224], 0x41bca0
mov dword [0x42c0dc], 0x421940
mov dword [0x42c158], 0x41c030
mov dword [0x42c0c8], 0x41bd30
mov dword [0x42c104], 0x42190c
mov dword [0x42c204], 0x41be60
mov dword [0x42c0d4], 0x41c5c0
mov dword [0x42c0e4], 0x41c381
mov dword [0x42c174], 0x41c5a0
mov dword [0x42c108], 0x41c0e8
mov dword [0x42c214], 0x419882
mov dword [0x42c200], eax
movsd dword es:[edi], dword [esi]
call ebp
mov esi, eax
push str.GetMonitorInfoA
push esi
call ebx
push str.MonitorFromPoint
push esi
mov dword [0x42c1bc], eax
call ebx
push 1
mov dword [0x42c16c], eax
pop eax
mov dword [0x42c11c], 0x820
mov dword [0x42c0ec], eax
mov dword [0x42acd0], eax
mov dword [0x42c220], 0x428ab4
mov dword [0x42c0e8], 0x42acfc
mov dword [0x42c138], 0x4286e0
mov dword [0x42c19c], 0x42acf4
mov dword [0x42c148], 0x42acf0
mov dword [0x42c150], 0x42acec
mov dword [0x42c178], 0x42ace8
mov dword [0x42c0b4], 0x4288d4
mov dword [0x42c194], 0x42bac0
mov dword [0x42c0d0], 0x428ab0
mov dword [0x42c218], 0x428aac
mov dword [0x42c124], 0x42ace4
mov dword [0x42c190], 0x42acdc
mov dword [0x42c0f8], 0x42acd4
pop edi
pop esi
pop ebp
pop ebx
ret