Function at 0x4108d0
Capabilities:
Create directory
Get common file path

Disassembly:
sub esp, 0x65c
mov eax, dword [0x4bc7b8]
xor eax, esp
mov dword [esp + 0x654], eax
push ebx
push ebp
mov ebp, dword [esp + 0x668]
push esi
push edi
push str.____InitializeStep____
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 4
cmp dword [esp + 0x674], 0
mov eax, 1
jne 0x410ba3
push 0x104
push str.INSTALL_DIRECTORY
mov dword [0x4c4efc], eax
mov dword [0x4c4f00], eax
mov dword [0x4be150], eax
lea edi, [ebp + 0x1044]
call fcn.004277e0
push eax
call fcn.00428060
lea ebx, [ebp + 0x124c]
mov esi, ebx
call fcn.0042a240
lea edi, [ebp + 0xa2c]
mov esi, edi
call fcn.0042a300
push ebx
push str._sx32
lea eax, [ebp + 0x1454]
push 0x104
push eax
call fcn.00468098
push ebx
push str._sx64
lea eax, [ebp + 0x165c]
push 0x104
push eax
call fcn.00468098
add esp, 0x20
lea eax, [ebp + 0x1864]
call fcn.0042d0e0
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0x499dcc
push edi
call esi
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp + 0x1044]
push eax
push edi
call esi
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push edi
push str._sx32
lea esi, [ebp + 0xc34]
push 0x104
push esi
call fcn.00468098
push edi
push str._sx64
lea ecx, [ebp + 0xe3c]
push 0x104
push ecx
call fcn.00468098
add esp, 0x20
push edi
push str.__programFilesDir:_s
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 8
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push esi
push str.__programFilesDir32:_s
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 8
call fcn.004277e0
lea edx, [ebp + 0x2904]
mov ecx, str.CORE32_MSIS
call fcn.004289c0
call fcn.004277e0
lea edx, [ebp + 0x2920]
mov ecx, str.EXTENDED32_MSIS
call fcn.004289c0
call fcn.004277e0
lea edx, [ebp + 0x293c]
mov ecx, str.ADVCORE32_MSIS
call fcn.004289c0
call fcn.004277e0
lea edx, [ebp + 0x2958]
mov ecx, str.FAX32_MSIS
call fcn.004289c0
mov ecx, ebp
call fcn.00414dc0
push 0x100
push str.PRINTER_SERIES_NAME
lea ebx, [ebp + 0x614]
call fcn.004277e0
push eax
mov edi, ebx
call fcn.00428060
push ebx
push str.__printer_series_name:_s
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 8
call fcn.00426a70
test ebx, ebx
jne 0x410abe
xor edx, edx
jmp 0x410ad2
mov edx, ebx
lea ecx, [edx + 2]
mov si, word [edx]
add edx, 2
test si, si
jne 0x410ac3
sub edx, ecx
sar edx, 1
push edx
push ebx
mov ecx, eax
call fcn.004028a0
lea eax, [esp + 0x18]
call fcn.0042de60
lea edx, [ebp + 0x1c74]
lea ebx, [ebp + 0x28b0]
push edx
mov ecx, eax
call fcn.0042e140
call fcn.004277e0
lea edx, [ebp + 0x28e8]
mov ecx, str.PRODUCT_VIDPID
call fcn.004289c0
call fcn.004277e0
lea edx, [ebp + 0x2974]
mov ecx, str.FW_BIN_FILES
call fcn.004289c0
push 0x206
lea eax, [esp + 0x45e]
push 0
push eax
mov word [esp + 0x464], 0
call fcn.0046adc0
add esp, 0xc
push 0x104
lea ecx, [esp + 0x45c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 1
lea edx, [esp + 0x45c]
push edx
lea esi, [ebp + 0x1454]
push esi
lea ecx, [esp + 0x20]
mov edx, str.mvhlewsi.dll
call fcn.00433360
add esp, 0xc
push 1
lea eax, [esp + 0x45c]
push eax
push esi
lea ecx, [esp + 0x20]
mov edx, str.Difxapi.dll
call fcn.00433360
add esp, 0xc
cmp dword [ebp], 0
jne 0x410ba1
mov ecx, dword [esp + 0x14]
mov dword [ebp], ecx
xor eax, eax
mov ecx, dword [esp + 0x664]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004677d8
add esp, 0x65c
ret 8