Function at 0x4100e0
Capabilities:
Create directory
Get common file path
Identify system language via api

Disassembly:
push 0xffffffffffffffff
push 0x488efb
mov eax, dword fs:[0]
push eax
mov eax, 0x1708
call fcn.0046d4a0
mov eax, dword [0x4bc7b8]
xor eax, esp
mov dword [esp + 0x1700], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4bc7b8]
xor eax, esp
push eax
lea eax, [esp + 0x171c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x172c]
mov ebx, ecx
xor ebp, ebp
push 0x206
lea ecx, [esp + 0xaea]
push ebp
push ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], eax
mov word [esp + 0xaf0], bp
call fcn.0046adc0
add esp, 0xc
push 0x206
lea edx, [esp + 0x8e2]
push ebp
push edx
mov word [esp + 0x8e8], bp
call fcn.0046adc0
add esp, 0xc
push str.InstallProgramFiles__
mov dword [esp + 0x1c], ebp
call fcn.00426a70
mov edi, eax
call fcn.00426f90
mov edx, dword [ebx + 0x10]
add esp, 4
push 0x465
mov ecx, 0x122
call fcn.004403e0
add esp, 4
push 0x206
lea eax, [esp + 0x1102]
push ebp
push eax
mov word [esp + 0x1108], bp
call fcn.0046adc0
add esp, 0xc
push 0x104
push str.PRINT_INFNAME
call fcn.004277e0
push eax
lea edi, [esp + 0x1108]
call fcn.00428060
test eax, eax
jne 0x4101f7
push 1
lea ecx, [ebx + 0xa2c]
push ecx
lea edx, [ebx + 0x124c]
push edx
lea ecx, [esp + 0x24]
mov edx, edi
call fcn.00433360
add esp, 0xc
push 0x104
push str.FAXPRINTER_INFNAME
call fcn.004277e0
push eax
lea edi, [esp + 0x1108]
call fcn.00428060
test eax, eax
jne 0x410234
push ebp
lea eax, [ebx + 0xa2c]
push eax
lea ecx, [ebx + 0x124c]
push ecx
lea ecx, [esp + 0x24]
mov edx, edi
call fcn.00433360
add esp, 0xc
lea esi, [ebx + 0xa2c]
push esi
add ebx, 0x124c
push ebx
push str.Uninstall.exe
push str.CopyNewerFile__s___s___s
call fcn.00426a70
mov edi, eax
call fcn.00426f90
push 1
push esi
push ebx
lea ecx, [esp + 0x34]
mov edx, str.Uninstall.exe
call fcn.00433360
add esp, 0x1c
push 1
push esi
push ebx
lea ecx, [esp + 0x24]
mov edx, str.properties.ini
call fcn.00433360
mov edx, dword [esp + 0x28]
add esp, 0xc
push edx
call fcn.00417590
mov edi, dword [esp + 0x28]
lea eax, [edi + 0x1454]
add esp, 4
push eax
lea ebx, [edi + 0x124c]
lea esi, [edi + 0xa2c]
call fcn.00416d80
add esp, 4
cmp dword [edi + 0xa1c], ebp
je 0x4102d8
lea eax, [edi + 0x1454]
push eax
lea eax, [edi + 0xc34]
push eax
lea ecx, [esp + 0x20]
lea edx, [edi + 0x124c]
mov ebx, esi
call fcn.00417920
add esp, 8
push 0x206
lea ecx, [esp + 0x1512]
push ebp
push ecx
mov word [esp + 0x1518], bp
call fcn.0046adc0
add esp, 0xc
push 0x104
lea edx, [esp + 0x1510]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 1
lea eax, [edi + 0x124c]
push esi
push eax
lea ecx, [esp + 0x24]
mov edx, str.ProductInst.exe
mov dword [esp + 0x28], eax
call fcn.00433360
mov eax, dword [esp + 0x28]
add esp, 0xc
lea ebx, [edi + 0x1864]
push ebx
push eax
push 0x498c0c
lea ecx, [esp + 0xaf0]
push 0x104
push ecx
call fcn.00468098
add esp, 0x14
push ebx
push esi
push 0x498c0c
lea edx, [esp + 0x8e8]
push 0x104
push edx
call fcn.00468098
add esp, 0x14
lea eax, [esp + 0xae4]
push eax
push str.__driver_Source_Lang_Path:_s
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 8
lea ecx, [esp + 0x8dc]
push ecx
push str.__driver_Dest_Lang_Path:_s
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 8
lea edx, [esp + 0x8dc]
push edx
lea eax, [esp + 0xae8]
push eax
push str.CopyEntireFolder_source:_s__Dest:_s
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 0xc
lea ecx, [esp + 0x8dc]
push ecx
lea edx, [esp + 0xae8]
push edx
push str.CopyEntireFolder__s__s_
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 0xc
push 1
lea eax, [esp + 0x8e0]
push eax
lea ecx, [esp + 0xaec]
push ecx
push 0x49bf20
call fcn.00433790
push 0x206
mov word [esp + 0x4e0], bp
push ebp
lea edx, [esp + 0x4e6]
push edx
call fcn.0046adc0
add esp, 0x1c
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
movzx esi, ax
mov edi, esi
lea edx, [esp + 0x4cc]
and edi, 0x1ff
call fcn.0042d020
test eax, eax
jne 0x410469
lea edx, [esp + 0x4cc]
mov esi, edi
call fcn.0042d020
test eax, eax
jne 0x410469
lea edx, [esp + 0x4cc]
lea esi, [eax + 9]
call fcn.0042d020
lea eax, [esp + 0x4cc]
push eax
push str.GetLandDir____s
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 8
lea ecx, [esp + 0x4cc]
push ecx
push ebx
push str.m_langDir_is__s__Lang_is__s
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 0xc
mov ecx, str.Kazakh
lea eax, [esp + 0x4cc]
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4104d6
cmp dx, bp
je 0x4104d2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4104d6
add eax, 4
add ecx, 4
cmp dx, bp
jne 0x4104b0
xor eax, eax
jmp 0x4104db
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
jne 0x410891
push 0xa
lea ecx, [esp + 0x5c]
call fcn.00451be2
mov dword [esp + 0x1724], ebp
mov eax, 9
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, 0x19
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov eax, 0x3f
lea edx, [esp + 0x30]
mov dword [esp + 0x30], str.English
mov dword [esp + 0x34], 0x4936e8
mov dword [esp + 0x40], str.Russian
mov dword [esp + 0x44], 0x4935f4
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], str.Kazakh
mov dword [esp + 0x54], 0x4933cc
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 3
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
push esi
lea ecx, [esp + 0x4d0]
push ecx
push str._Copy__s_hlc_to:_s
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 0xc
push 0x206
lea edx, [esp + 0x130a]
push ebp
push edx
mov word [esp + 0x1310], bp
call fcn.0046adc0
add esp, 0xc
push 0x206
lea eax, [esp + 0x2ca]
push ebp
push eax
mov word [esp + 0x2d0], bp
call fcn.0046adc0
mov edi, dword [esp + 0x30]
add esp, 0xc
lea ecx, [esp + 0x4cc]
push ecx
lea eax, [edi + 0x124c]
push eax
push str._s_sManuals
lea edx, [esp + 0x1310]
push 0x104
push edx
call fcn.00468098
add esp, 0x14
push esi
add edi, 0xa2c
push edi
push 0x498c0c
lea eax, [esp + 0x2d0]
push 0x104
push eax
call fcn.00468098
mov ebx, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
add esp, 0x14
push ebp
lea ecx, [esp + 0x2c8]
push ecx
call ebx
push esi
push edi
push str._s_sManuals
lea edx, [esp + 0x2d0]
push 0x104
push edx
call fcn.00468098
add esp, 0x14
push ebp
lea eax, [esp + 0x2c8]
push eax
call ebx
lea ecx, [esp + 0x2c4]
push ecx
lea edx, [esp + 0x1308]
push edx
push str.CopyEntireFolder__s__s_
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 0xc
push 1
lea eax, [esp + 0x2c8]
push eax
lea ecx, [esp + 0x130c]
push ecx
push 0x49bf20
call fcn.00433790
push 0x206
mov word [esp + 0x6e8], bp
push ebp
lea edx, [esp + 0x6ee]
push edx
call fcn.0046adc0
add esp, 0x1c
push 0x206
lea eax, [esp + 0xcf2]
push ebp
push eax
mov word [esp + 0xcf8], bp
call fcn.0046adc0
add esp, 0xc
push 0x206
lea ecx, [esp + 0xefa]
push ebp
push ecx
mov word [esp + 0xf00], bp
call fcn.0046adc0
add esp, 0xc
xor eax, eax
mov edi, edi
movzx ecx, word [esp + eax + 0x2c4]
mov word [esp + eax + 0x6d4], cx
add eax, 2
cmp cx, bp
jne 0x4106e0
lea edi, [esp + 0x6d4]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
cmp ax, bp
jne 0x410702
mov ecx, 9
mov esi, str.LJP1100_use_.chm
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x6d8]
push eax
movsw word es:[edi], word [esi]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x2c8]
push edx
push 0x498c0c
mov esi, eax
lea eax, [esp + 0xcf8]
push 0x104
push eax
call fcn.00468098
mov ecx, dword [esp + 0x34]
mov ebx, dword [ecx + 4]
add esp, 0x14
push ebx
lea edx, [esp + 0x2c8]
push edx
push str._sLJP1100_use__sww.chm
lea eax, [esp + 0xf00]
push 0x104
push eax
call fcn.00468098
add esp, 0x14
lea ecx, [esp + 0xef4]
push ecx
lea edx, [esp + 0xcf0]
push edx
call fcn.0046901e
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
jmp 0x4107b0
movzx ecx, word [esp + eax + 0x2c4]
mov word [esp + eax + 0x6d4], cx
add eax, 2
cmp cx, bp
jne 0x4107b0
lea edi, [esp + 0x6d4]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
cmp ax, bp
jne 0x4107d2
mov ecx, 0xd
mov esi, str.LJP1560_LJP1600_use_.chm
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x6d8]
push ecx
movsw word es:[edi], word [esi]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
lea edx, [esp + 0xa0]
push edx
mov esi, eax
lea eax, [esp + 0x2c8]
push eax
push 0x498c0c
lea ecx, [esp + 0xcf8]
push 0x104
push ecx
call fcn.00468098
add esp, 0x14
push ebx
lea edx, [esp + 0x2c8]
push edx
push str._sLJP1560_LJP1600_use__sww.chm
lea eax, [esp + 0xf00]
push 0x104
push eax
call fcn.00468098
add esp, 0x14
lea ecx, [esp + 0xef4]
push ecx
lea edx, [esp + 0xcf0]
push edx
call fcn.0046901e
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
add dword [esp + 0x20], 0x10
sub dword [esp + 0x1c], 1
jne 0x41055c
lea ecx, [esp + 0x58]
mov dword [esp + 0x1724], 0xffffffff
call fcn.00451dd5
mov eax, dword [esp + 0x24]
cmp dword [eax], ebp
jne 0x41089f
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
mov eax, 1
mov ecx, dword [esp + 0x171c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1700]
xor ecx, esp
call fcn.004677d8
add esp, 0x1714
ret 4