Function at 0x4130d0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x4d00b9
mov eax, dword fs:[0]
push eax
mov eax, 0x3a7c
call fcn.004ab4d0
mov eax, dword [0x51c080]
xor eax, esp
mov dword [esp + 0x3a78], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x51c080]
xor eax, esp
push eax
lea eax, [esp + 0x3a90]
mov dword fs:[0], eax
mov esi, ecx
push str._r_n_DCU_Initializing_
mov ecx, 0x527b30
mov dword [esp + 0x5c], esi
call fcn.00449000
mov eax, dword [esi + 0xa20]
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x41313a
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [esi + 0x202]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x413143
sub eax, edx
sar eax, 1
je 0x413165
push ebx
push 1
lea ecx, [esi + 0x202]
call fcn.0045d900
add esp, 8
push 0x200
lea edi, [esi + 2]
push ebx
push edi
mov byte [esi], bl
call fcn.004ab450
add esp, 0xc
push 0x800
lea eax, [esi + 0x202]
push ebx
push eax
call fcn.004ab450
add esp, 0xc
lea eax, [esp + 0x38]
push eax
mov dword [esi + 0xa20], ebx
mov dword [esi + 0xa14], ebx
mov dword [esi + 0xa18], ebx
mov dword [esi + 0xa1c], ebx
call fcn.00410650
mov dword [esp + 0x3a98], ebx
mov ebp, 8
cmp dword [eax + 0x18], ebp
jb 0x4131c6
mov eax, dword [eax + 4]
jmp 0x4131c9
add eax, 4
push 0xff
push eax
push 0x100
push edi
call fcn.004a9be0
add esp, 0x10
mov dword [esp + 0x3a98], 0xffffffff
cmp dword [esp + 0x50], ebp
jb 0x4131fb
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.004993dd
add esp, 4
mov esi, 7
mov eax, edi
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], bx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x413212
sub eax, edx
sar eax, 1
jne 0x41323a
push str.Get_Element_Name_fail__
mov ecx, 0x527b30
call fcn.00449000
add esp, 4
jmp 0x413d55
mov eax, edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov word [esp + 0x20], bx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x413250
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x24]
call fcn.004102a0
mov dword [esp + 0x3a98], 1
mov edx, esi
push edx
mov ecx, 0x527b20
call fcn.0040abb0
cmp byte [eax + 0x1061e], bl
sete byte [esp + 0x1b]
mov dword [esp + 0x3a98], 0xffffffff
cmp dword [esp + 0x34], ebp
jb 0x4132ab
mov eax, dword [esp + 0x20]
push eax
call fcn.004993dd
add esp, 4
cmp byte [esp + 0x1b], bl
mov esi, 7
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov word [esp + 0x20], bx
je 0x4132da
push str.the_printer_driver_doesnt_support_DCU
mov ecx, 0x527b30
call fcn.00449000
add esp, 4
jmp 0x413d55
push 0x800
lea ecx, [esp + 0x1a90]
push ebx
push ecx
call fcn.004ab450
add esp, 0xc
push 0x800
lea edx, [esp + 0x3290]
push ebx
push edx
call fcn.004ab450
add esp, 0xc
push 0x800
lea eax, [esp + 0x2290]
push ebx
push eax
call fcn.004ab450
add esp, 0xc
push 0x800
lea ecx, [esp + 0x2a90]
push ebx
push ecx
call fcn.004ab450
add esp, 0xc
push 0x200
lea edx, [esp + 0x1490]
push ebx
push edx
call fcn.004ab450
add esp, 0xc
push 0x200
lea eax, [esp + 0x1690]
push ebx
push eax
call fcn.004ab450
add esp, 0xc
push 0x200
lea ecx, [esp + 0x1890]
push ebx
push ecx
call fcn.004ab450
mov eax, edi
add esp, 0xc
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], ebx
mov word [esp + 0x20], bx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x413386
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x24]
call fcn.004102a0
mov dword [esp + 0x3a98], 2
mov edx, esi
push edx
mov ecx, 0x527b20
call fcn.0040abb0
add eax, 0xb618
push 0x3ff
push eax
lea eax, [esp + 0x1a94]
push 0x400
push eax
call fcn.004a9be0
add esp, 0x10
mov dword [esp + 0x3a98], 0xffffffff
cmp dword [esp + 0x34], ebp
jb 0x4133f6
mov ecx, dword [esp + 0x20]
push ecx
call fcn.004993dd
add esp, 4
mov eax, 7
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], eax
mov eax, edi
mov dword [esp + 0x30], ebx
mov word [esp + 0x20], bx
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], bx
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x413420
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x40]
call fcn.004102a0
mov dword [esp + 0x3a98], 3
mov edx, esi
push edx
mov ecx, 0x527b20
call fcn.0040abb0
add eax, 0xb418
push 0x3ff
push eax
lea eax, [esp + 0x3294]
push 0x400
push eax
call fcn.004a9be0
add esp, 0x10
mov dword [esp + 0x3a98], 0xffffffff
cmp dword [esp + 0x50], ebp
jb 0x413490
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.004993dd
add esp, 4
mov eax, 7
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], eax
mov eax, edi
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], bx
mov dword [esp + 0x30], ebx
mov word [esp + 0x20], bx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4134b4
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x24]
call fcn.004102a0
mov dword [esp + 0x3a98], 4
mov edx, esi
push edx
mov ecx, 0x527b20
call fcn.0040abb0
add eax, 0xda18
push 0x3ff
push eax
lea eax, [esp + 0x2294]
push 0x400
push eax
call fcn.004a9be0
add esp, 0x10
mov dword [esp + 0x3a98], 0xffffffff
cmp dword [esp + 0x34], ebp
jb 0x413524
mov ecx, dword [esp + 0x20]
push ecx
call fcn.004993dd
add esp, 4
mov eax, 7
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], eax
mov eax, edi
mov dword [esp + 0x30], ebx
mov word [esp + 0x20], bx
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], bx
lea edx, [eax + 2]
jmp 0x413550
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x413550
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x40]
call fcn.004102a0
mov dword [esp + 0x3a98], 5
mov edx, esi
push edx
mov ecx, 0x527b20
call fcn.0040abb0
add eax, 0xec18
push 0x3ff
push eax
lea eax, [esp + 0x2a94]
push 0x400
push eax
call fcn.004a9be0
add esp, 0x10
mov dword [esp + 0x3a98], 0xffffffff
cmp dword [esp + 0x50], ebp
jb 0x4135c0
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.004993dd
add esp, 4
mov eax, 7
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], eax
mov eax, edi
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], bx
mov dword [esp + 0x30], ebx
mov word [esp + 0x20], bx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4135e4
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x24]
call fcn.004102a0
mov dword [esp + 0x3a98], 6
mov edx, esi
push edx
mov ecx, 0x527b20
call fcn.0040abb0
add eax, 0xd218
push 0xff
push eax
lea eax, [esp + 0x1494]
push 0x100
push eax
call fcn.004a9be0
add esp, 0x10
mov dword [esp + 0x3a98], 0xffffffff
cmp dword [esp + 0x34], ebp
jb 0x413654
mov ecx, dword [esp + 0x20]
push ecx
call fcn.004993dd
add esp, 4
mov eax, 7
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], eax
mov eax, edi
mov dword [esp + 0x30], ebx
mov word [esp + 0x20], bx
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], bx
lea edx, [eax + 2]
jmp 0x413680
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x413680
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x40]
call fcn.004102a0
mov dword [esp + 0x3a98], 7
mov edx, esi
push edx
mov ecx, 0x527b20
call fcn.0040abb0
add eax, 0xe418
push 0xff
push eax
lea eax, [esp + 0x1694]
push 0x100
push eax
call fcn.004a9be0
add esp, 0x10
mov dword [esp + 0x3a98], 0xffffffff
cmp dword [esp + 0x50], ebp
jb 0x4136f0
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.004993dd
add esp, 4
mov eax, 7
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], eax
mov eax, edi
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], bx
mov dword [esp + 0x30], ebx
mov word [esp + 0x20], bx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x413714
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x24]
call fcn.004102a0
mov dword [esp + 0x3a98], ebp
mov edx, esi
push edx
mov ecx, 0x527b20
call fcn.0040abb0
add eax, 0xf618
push 0xff
push eax
lea eax, [esp + 0x1894]
push 0x100
push eax
call fcn.004a9be0
add esp, 0x10
mov dword [esp + 0x3a98], 0xffffffff
cmp dword [esp + 0x34], ebp
jb 0x413780
mov ecx, dword [esp + 0x20]
push ecx
call fcn.004993dd
add esp, 4
lea edx, [esp + 0x1a8c]
push edx
mov esi, 7
push str._DEBUG:_Inf_t_t_t____s_
mov ecx, 0x527b30
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], ebx
mov word [esp + 0x28], bx
call fcn.00449000
lea eax, [esp + 0x3294]
push eax
push str._DEBUG:_Driver_t_t____s_
mov ecx, 0x527b30
call fcn.00449000
lea ecx, [esp + 0x229c]
push ecx
push str._DEBUG:_CFXML_t____s_
mov ecx, 0x527b30
call fcn.00449000
lea edx, [esp + 0x2aa4]
push edx
push str._DEBUG:_PFXML_t____s_
mov ecx, 0x527b30
call fcn.00449000
lea eax, [esp + 0x14ac]
push eax
push str._DEBUG:_CXML_t_t____s_
mov ecx, 0x527b30
call fcn.00449000
lea ecx, [esp + 0x16b4]
push ecx
push str._DEBUG:_PXML_t_t____s_
mov ecx, 0x527b30
call fcn.00449000
lea edx, [esp + 0x18bc]
push edx
push str._DEBUG:_DCU_t_t____s_
mov ecx, 0x527b30
call fcn.00449000
mov eax, edi
add esp, 0x38
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], bx
lea edx, [eax + 2]
jmp 0x413850
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x413850
sub eax, edx
sar eax, 1
push eax
push edi
lea esi, [esp + 0x40]
call fcn.004102a0
mov dword [esp + 0x3a98], 9
mov eax, esi
push eax
mov ecx, 0x527b20
call fcn.0040abb0
mov edi, dword [eax + 0x10618]
mov dword [esp + 0x3a98], 0xffffffff
cmp dword [esp + 0x50], ebp
jb 0x4138a6
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.004993dd
add esp, 4
lea eax, [esp + 0x1a8c]
mov dword [esp + 0x50], 7
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], bx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4138c1
sub eax, edx
sar eax, 1
je 0x413d33
lea eax, [esp + 0x328c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4138e0
sub eax, edx
sar eax, 1
je 0x413d33
or ebp, 0xffffffff
lea esi, [esp + 0x5c]
mov dword [esp + 0x5c], vtable.CInfInfo.0
mov dword [esp + 0x1288], ebp
call fcn.0045f4c0
mov dword [esp + 0x3a98], 0xa
push ebx
push ebx
push ebx
push edi
lea edx, [esp + 0x1a9c]
push edx
mov ecx, esi
call fcn.0045ebb0
test al, al
jne 0x413957
push str.Init_INF_Fail__
mov ecx, 0x527b30
call fcn.00449000
add esp, 4
mov dword [esp + 0x3a98], ebp
mov ecx, esi
call fcn.0045eb90
jmp 0x413d55
mov ebp, dword [esp + 0x58]
add ebp, 0x202
push ebp
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x4139a4
push str.Get_Temp_Directory_Fail___
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov edx, 0x527b30
call fcn.00448ec0
add esp, 4
mov dword [esp + 0x3a98], 0xffffffff
lea ecx, [esp + 0x5c]
call fcn.0045eb90
jmp 0x413d55
push 0x3ff
lea eax, [esp + 0x3290]
push eax
push 0x400
push ebp
call fcn.004a9dea
push 0x3ff
push str._DCU
push 0x400
push ebp
call fcn.004a9dea
push ebx
push ebx
mov edx, ebp
call fcn.0045e440
add esp, 0x28
mov edx, ebp
lea ecx, [esp + 0x5c]
call fcn.00460d60
test al, al
jne 0x4139fd
push str.Copy_Files_to_temp_directory_fail__
mov ecx, 0x527b30
call fcn.00449000
jmp 0x413988
lea ecx, [esp + 0x1a8c]
push 0x5c
push ecx
call fcn.004a9ce4
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x413a1a
add esi, 2
jmp 0x413a21
lea esi, [esp + 0x1a8c]
push 0x200
lea edx, [esp + 0x1290]
push ebx
push edx
call fcn.004ab450
add esp, 0xc
push esi
push ebp
push 0x4dd780
lea eax, [esp + 0x1298]
push 0x100
push eax
call fcn.004a9ca9
add esp, 0x14
push ebx
push 1
xor ebx, ebx
lea edi, [esp + 0x1294]
lea eax, [esp + 0x1a94]
call fcn.0045cfb0
add esp, 8
test eax, eax
je 0x413a86
push str.Copy_Inf_File_to_temp_directory_fail___
mov ecx, eax
mov edx, 0x527b30
call fcn.00448ec0
add esp, 4
push 0x200
lea ecx, [esp + 0x1290]
push 0
push ecx
call fcn.004ab450
add esp, 0xc
push 0xff
lea edx, [esp + 0x1490]
push edx
lea eax, [esp + 0x1294]
push 0x100
push eax
call fcn.004a9be0
push 0x100
push str.cf.xml
lea ecx, [esp + 0x12a4]
push str.c.xml
push ecx
call fcn.004422a0
mov ebx, dword [esp + 0x78]
lea edx, [esp + 0x12ac]
push edx
lea edi, [ebx + 0xa24]
push ebp
push 0x4dd780
mov edx, edi
call fcn.00411a00
add esp, 0x2c
push 0x200
lea eax, [esp + 0x1290]
push 0
push eax
call fcn.004ab450
add esp, 0xc
push 0xff
lea ecx, [esp + 0x1690]
push ecx
lea edx, [esp + 0x1294]
push 0x100
push edx
call fcn.004a9be0
push 0x100
push str.pf.xml
lea eax, [esp + 0x12a4]
push str.p.xml
push eax
call fcn.004422a0
lea ecx, [esp + 0x12ac]
push ecx
lea esi, [ebx + 0x1224]
push ebp
push 0x4dd780
mov edx, esi
call fcn.00411a00
add esp, 0x2c
lea edx, [esp + 0x148c]
push edx
push ebp
push 0x4dd780
lea edx, [ebx + 0x1a24]
call fcn.00411a00
add esp, 0xc
lea eax, [esp + 0x168c]
push eax
push ebp
push 0x4dd780
lea edx, [ebx + 0x2224]
call fcn.00411a00
lea eax, [esp + 0x2298]
add esp, 0xc
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x413bb0
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, edx
sar eax, 1
je 0x413c0d
lea ecx, [esp + 0x228c]
push ecx
push str.Copy_CF_XML__s__to_Temp_directory
mov ecx, 0x527b30
call fcn.00449000
push 0
push 1
xor ebx, ebx
lea eax, [esp + 0x229c]
call fcn.0045cfb0
add esp, 0x10
test eax, eax
je 0x413c0d
push str.Copy_CF_XML_File_to_temp_directory_fail___
call ebp
mov ecx, eax
mov edx, 0x527b30
call fcn.00448ec0
add esp, 4
lea eax, [esp + 0x2a8c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x413c17
sub eax, edx
sar eax, 1
je 0x413c69
push esi
push str.Copy_PF_XML__s__to_Temp_directory
mov ecx, 0x527b30
call fcn.00449000
push 0
push 1
xor ebx, ebx
mov edi, esi
lea eax, [esp + 0x2a9c]
call fcn.0045cfb0
add esp, 0x10
test eax, eax
je 0x413c69
push str.Copy_PF_XML_File_to_temp_directory_fail___
call ebp
mov ecx, eax
mov edx, 0x527b30
call fcn.00448ec0
add esp, 4
push 0x200
lea edx, [esp + 0x1290]
push 0
push edx
call fcn.004ab450
mov edi, dword [esp + 0x64]
add esp, 0xc
lea eax, [esp + 0x188c]
push eax
lea eax, [edi + 0x202]
push eax
push 0x4dd780
lea edx, [esp + 0x1298]
call fcn.0040bfd0
add esp, 0xc
lea ecx, [esp + 0x128c]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
mov dword [edi + 0xa20], eax
je 0x413cfb
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.DcuPreConfigure
push eax
call esi
mov edx, dword [edi + 0xa20]
push str.DcuEnumEDMAdminCapabilities
push edx
mov dword [edi + 0xa14], eax
call esi
mov dword [edi + 0xa18], eax
mov eax, dword [edi + 0xa20]
push str.DcuEnumDriverPages
push eax
call esi
mov dword [edi + 0xa1c], eax
cmp dword [edi + 0xa14], 0
jne 0x413d16
cmp dword [edi + 0xa18], 0
jne 0x413d16
cmp dword [edi + 0xa1c], 0
je 0x413d19
mov byte [edi], 1
mov bl, byte [edi]
mov dword [esp + 0x3a98], 0xffffffff
lea ecx, [esp + 0x5c]
call fcn.0045eb90
mov al, bl
jmp 0x413d57
lea ecx, [esp + 0x328c]
push ecx
lea edx, [esp + 0x1a90]
push edx
push str.Printer_data_is_invalid____s_____s_
mov ecx, 0x527b30
call fcn.00449000
add esp, 0xc
xor al, al
mov ecx, dword [esp + 0x3a90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3a78]
xor ecx, esp
call fcn.004a998e
add esp, 0x3a88
ret