Function at 0x412920
Capabilities:
Accept command line arguments
Capture screenshot
Check if file exists
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x338
mov dword [ebp - 8], 0
mov byte [ebp - 0x138], 0
push 0xff
push 0
lea eax, [ebp - 0x137]
push eax
call fcn.004144a0
add esp, 0xc
mov dword [ebp - 4], 0
mov byte [ebp - 0x238], 0
push 0xff
push 0
lea ecx, [ebp - 0x237]
push ecx
call fcn.004144a0
add esp, 0xc
mov byte [ebp - 0x338], 0
push 0xff
push 0
lea edx, [ebp - 0x337]
push edx
call fcn.004144a0
add esp, 0xc
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
xor eax, eax
mov word [0x4323e0], ax
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
push 0x100
lea ecx, [ebp - 0x138]
push ecx
call fcn.0041716d
add esp, 0xc
cmp dword [ebp - 0xc], 0
je 0x412a32
push 0
push str.tbuff_in_setup__redist.c__GetCommandLine
lea edx, [ebp - 0x138]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [ebp + 0x10]
push eax
call fcn.004151b0
add esp, 4
mov word [0x431980], ax
movsx ecx, word [0x431980]
push ecx
push str.strlen_CmdLineArgs__d
lea edx, [ebp - 0x138]
push edx
call fcn.0040e6f0
add esp, 0xc
push 0
push str.strlen_CmdLineArgs_
lea eax, [ebp - 0x138]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
push str.szCmdLineArgs_in_redist
mov ecx, dword [ebp + 0x10]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edx, dword [ebp + 0x10]
push edx
call fcn.004151b0
add esp, 4
cmp eax, 0xb
jb 0x412b55
mov dword [ebp - 0x10], 1
mov eax, 1
mov word [0x4323e0], ax
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
push 0x100
lea ecx, [ebp - 0x138]
push ecx
call fcn.0041716d
add esp, 0xc
lea edx, [ebp - 0x138]
push edx
call fcn.00417363
add esp, 4
push 0x430cd8
lea eax, [ebp - 0x138]
push eax
call fcn.00414600
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x412aff
mov ecx, 1
mov word [0x4323e0], cx
mov edx, dword [ebp + 0x10]
push edx
push 0x100
lea eax, [ebp - 0x338]
push eax
call fcn.0041716d
add esp, 0xc
lea ecx, [ebp - 0x338]
push ecx
call fcn.00417363
add esp, 4
push str._SILENT
lea edx, [ebp - 0x338]
push edx
call fcn.00414600
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x412aff
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 4]
mov byte [edx + ecx], 0
push str.REDIST.EXE
lea eax, [ebp - 0x138]
push eax
call fcn.00414600
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x412b2b
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 4]
mov byte [eax + edx], 0
lea ecx, [ebp - 0x138]
push ecx
call fcn.00417536
add esp, 4
cmp eax, 0xffffffff
jne 0x412b55
push 0
push str.cannot_ch_dir
lea edx, [ebp - 0x138]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [0x431984], eax
push 1
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [0x431988], eax
mov dword [0x43198c], 0
mov dword [0x431990], 0
cmp dword [ebp - 0x10], 0
je 0x412bd5
mov eax, dword [0x431984]
cdq
mov ecx, 6
idiv ecx
mov dword [0x43198c], eax
mov eax, dword [0x431988]
cdq
mov ecx, 6
idiv ecx
mov dword [0x431990], eax
mov eax, dword [0x431984]
cdq
mov ecx, 3
idiv ecx
shl eax, 1
mov dword [0x431984], eax
mov eax, dword [0x431988]
cdq
mov ecx, 3
idiv ecx
shl eax, 1
mov dword [0x431988], eax
mov dword [ebp - 0x14], 0x430d04
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp + 8]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x34], 0x412ff0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
movsx eax, word [0x4323e0]
test eax, eax
jne 0x412d20
lea ecx, [ebp - 0x38]
push ecx
call dword [sym.imp.USER32.dll_RegisterClassA]
movzx edx, ax
test edx, edx
jne 0x412c55
push 0
push 0x430d10
push str.Cannot_register_PDSdlg_window_class
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x412fe2
push 0
mov eax, dword [ebp + 8]
push eax
push 0
push 0
mov ecx, dword [0x431988]
push ecx
mov edx, dword [0x431984]
push edx
mov eax, dword [0x431990]
push eax
mov ecx, dword [0x43198c]
push ecx
push 0x10440000
push str.PDS_Redistributables_Installation___Copyright__C__1988_2023_Causeway_Technologies_Limited
push str.PDS_REDIST
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [ebp - 8], eax
push 1
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [0x431994], eax
mov ecx, dword [ebp - 8]
mov dword [0x432cf8], ecx
push 0x8c0000
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [0x431998], eax
mov edx, dword [0x431998]
push edx
mov eax, dword [0x431994]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [0x43199c], eax
mov ecx, dword [0x431988]
push ecx
mov edx, dword [0x431984]
push edx
push 0
push 0
mov eax, dword [0x431994]
push eax
call dword [sym.imp.GDI32.dll_Rectangle]
mov ecx, dword [0x43199c]
push ecx
mov edx, dword [0x431994]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [0x431998]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x412d34
mov dword [0x431994], 0
mov dword [0x432cf8], 0
mov dword [0x4319ac], 0
movsx ecx, word [0x4323e0]
test ecx, ecx
jne 0x412eae
mov edx, 1
imul eax, edx, 0
mov byte [ebp + eax - 0x238], 0
push 0x430da0
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x412d85
push str._bitmapsDS_background.bmp
push 0x100
lea ecx, [ebp - 0x238]
push ecx
call fcn.0041716d
add esp, 0xc
push 0x430dd8
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x412dad
push str.._bitmapsDS_background.bmp
push 0x100
lea edx, [ebp - 0x238]
push edx
call fcn.0041716d
add esp, 0xc
push 0x430e10
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x412dd5
push str.bitmapsDS_background.bmp
push 0x100
lea eax, [ebp - 0x238]
push eax
call fcn.0041716d
add esp, 0xc
mov ecx, 1
imul edx, ecx, 0
movsx eax, byte [ebp + edx - 0x238]
test eax, eax
jle 0x412e27
lea ecx, [ebp - 0x238]
push ecx
call fcn.00411e20
add esp, 4
test eax, eax
je 0x412e27
push 0
push 0
push 0x5a0
push 0x780
push 0
push 0
mov edx, dword [0x431994]
push edx
call fcn.004128a0
add esp, 0x1c
mov dword [0x4319ac], 1
mov eax, dword [0x431994]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [0x4319a4], eax
mov ecx, dword [0x431988]
push ecx
mov edx, dword [0x431984]
push edx
mov eax, dword [0x431994]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [0x4319a8], eax
mov ecx, dword [0x4319a8]
push ecx
mov edx, dword [0x4319a4]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [0x4319a0], eax
push 0xcc0020
push 0
push 0
mov eax, dword [0x431994]
push eax
mov ecx, dword [0x431988]
push ecx
mov edx, dword [0x431984]
push edx
push 0
push 0
mov eax, dword [0x4319a4]
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [0x431994]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp dword [ebp - 0x10], 0
je 0x412f10
cmp dword [ebp - 0xc], 0
je 0x412ee4
push 0
push str.at_8___tbuff2_in_redist
lea eax, [ebp - 0x338]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
push str.SILENT_from_install
push str.calling_redistributables_from_install
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040e8f0
add esp, 8
cmp dword [ebp - 0xc], 0
je 0x412f0e
push 0
push str.at_9___redist
lea edx, [ebp - 0x338]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x412f6e
cmp dword [ebp - 0xc], 0
je 0x412f42
push 0
push str.at_12___tbuff_in_redist
lea eax, [ebp - 0x138]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
push str.NOT_from_install
push str.calling_redistributables
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040df00
add esp, 8
cmp dword [ebp - 0xc], 0
je 0x412f6e
push 0
push str.at_13___redist
lea ecx, [ebp - 0x138]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [ebp - 0xc], 0
je 0x412f88
push 0
push str.at_14___redist
push str.after
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
movsx edx, word [0x4323e0]
test edx, edx
jne 0x412fe0
cmp dword [0x4319ac], 0
je 0x412fa1
call fcn.00412780
cmp dword [0x4319a4], 0
jne 0x412fca
mov eax, dword [0x4319a0]
push eax
mov ecx, dword [0x4319a4]
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [0x4319a8]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [0x4319a4]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.USER32.dll_DestroyWindow]
xor eax, eax
mov esp, ebp
pop ebp
ret 0x10