Function at 0x475170
Capabilities:
Copy file
Create directory
Create process on windows
Get common file path
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x728
mov eax, dword [0x4e412c]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp dword [ebp + 8], 1
jne 0x475195
mov dword [ebp - 0x714], 0x4cd740
jmp 0x4751bd
cmp dword [ebp + 8], 2
jne 0x4751a7
mov dword [ebp - 0x718], str.P2P98
jmp 0x4751b1
mov dword [ebp - 0x718], 0x4cd74c
mov eax, dword [ebp - 0x718]
mov dword [ebp - 0x714], eax
mov ecx, dword [ebp - 0x714]
push ecx
push str.LTcopyFilesByInfFile___instType___s_start_n
push 0
call fcn.00476210
add esp, 0xc
mov dword [ebp - 0x364], 0xfffffffd
mov dword [ebp - 0x36c], 0
mov dword [ebp - 0x368], 0
mov dword [ebp - 0x350], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x360], 0xffffffff
mov dword [ebp - 0x34c], 1
push 3
call fcn.00476290
add esp, 4
cmp dword [ebp + 0x18], 0
je 0x47522f
mov edx, dword [ebp + 0x18]
mov dword [edx], 0
push 0x338
push 0
lea eax, [ebp - 0x348]
push eax
call fcn.004886d0
add esp, 0xc
mov dword [ebp - 0x348], 0xffffffff
mov dword [ebp - 0x334], 0xffffffff
mov dword [ebp - 0x330], 0xffffffff
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x11e]
push edx
call fcn.00489ae0
add esp, 8
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x360], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 1
jg 0x475290
mov dword [ebp - 0xc], 0x4cd780
jmp 0x4752a8
mov edx, dword [ebp + 0x14]
cmp dword [edx], 6
jg 0x4752a1
mov dword [ebp - 0xc], 0x4cd78c
jmp 0x4752a8
mov dword [ebp - 0xc], 0x4cd79c
push str.Initialize_source_paths__context_for_callback..._n
push 0
call fcn.00476210
add esp, 8
cmp dword [ebp - 0x360], 0
jg 0x4752f2
push 0x104
lea eax, [ebp - 0x328]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov dword [ebp - 0x368], eax
push 0x104
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x328]
push edx
call fcn.00464040
add esp, 0xc
jmp 0x4752f9
mov byte [ebp - 0x328], 0
call fcn.00473800
push eax
call fcn.004640c0
add esp, 4
cmp dword [ebp - 0x360], eax
je 0x47539a
mov eax, dword [ebp + 0x10]
push eax
call fcn.00489c70
add esp, 4
add eax, 1
push eax
call fcn.0047645c
add esp, 4
mov dword [ebp - 0x6f4], eax
mov ecx, dword [ebp - 0x6f4]
mov dword [ebp - 0x370], ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x370]
push eax
call fcn.00489ae0
add esp, 8
push 0x5c
mov ecx, dword [ebp - 0x370]
push ecx
call fcn.00468570
add esp, 8
mov byte [eax], 0
push 0x104
mov edx, dword [ebp - 0x370]
push edx
lea eax, [ebp - 0x328]
push eax
call fcn.00464040
add esp, 0xc
mov ecx, dword [ebp - 0x370]
mov dword [ebp - 0x6f8], ecx
mov edx, dword [ebp - 0x6f8]
push edx
call fcn.00476457
add esp, 4
lea eax, [ebp - 0x328]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x360]
push ecx
push str.PrtInstOSType_d___DrvInstOSType_d_Environment_s___OS_Cabs_Directory_s__n
push 0
call fcn.00476210
add esp, 0x18
push str.Open_INF_file..._n
push 0
call fcn.00476210
add esp, 8
mov dword [ebp - 0x354], 1
cmp dword [ebp - 0x354], 0
je 0x475488
mov dword [ebp - 0x35c], 0
cmp dword [ebp + 8], 1
jne 0x475403
mov dword [ebp - 0x71c], 0x4cd840
jmp 0x475419
mov edx, dword [ebp + 8]
sub edx, 2
neg edx
sbb edx, edx
and edx, str.Printer
mov dword [ebp - 0x71c], edx
lea eax, [ebp - 0x35c]
push eax
push 2
mov ecx, dword [ebp - 0x71c]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileA]
mov dword [ebp - 0x338], eax
cmp dword [ebp - 0x338], 0xffffffff
jne 0x475488
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00476270
add esp, 4
mov dword [ebp - 0x364], 0xfffffffc
mov dword [ebp - 0x354], 0
call fcn.00476280
push eax
mov eax, dword [ebp + 0x10]
push eax
push str.SetupOpenInfFile__s__failed_with_LastError_u_n
push 0
call fcn.00476210
add esp, 0x10
jmp 0x475fa6
cmp dword [ebp - 0x354], 0
je 0x475501
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
cmp edx, dword [ebp - 0x360]
jne 0x475501
cmp dword [ebp + 8], 0
jne 0x475501
lea eax, [ebp - 0x35c]
push eax
mov ecx, dword [ebp - 0x338]
push ecx
push 0
call dword [sym.imp.SETUPAPI.dll_SetupOpenAppendInfFileA]
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
jne 0x475501
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00476270
add esp, 4
mov dword [ebp - 0x364], 0xfffffffe
call fcn.00476280
push eax
push str.SetupOpenAppendInfFile___failed_with_LastError_u_n
push 0
call fcn.00476210
add esp, 0xc
mov dword [ebp - 0x354], 1
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp - 0x338]
push eax
call fcn.00474f70
add esp, 8
push str.Set_Destination_information..._n
push 0
call fcn.00476210
add esp, 8
cmp dword [ebp - 0x354], 0
je 0x47591f
cmp dword [ebp + 8], 0
jne 0x47591f
mov dword [ebp - 0x368], 0
lea ecx, [ebp - 0x368]
push ecx
push 0
push 0
push 1
mov edx, dword [ebp - 0xc]
push edx
push 0
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryA
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
jne 0x47567d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x47567d
mov eax, dword [ebp - 0x368]
push eax
call fcn.0047645c
add esp, 4
mov dword [ebp - 0x6fc], eax
mov ecx, dword [ebp - 0x6fc]
mov dword [ebp - 0x18], ecx
lea edx, [ebp - 0x368]
push edx
mov eax, dword [ebp - 0x368]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
push 1
mov edx, dword [ebp - 0xc]
push edx
push 0
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryA
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
je 0x475651
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x70], 4
jl 0x475651
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 0x44], 0
je 0x475651
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x44]
push eax
call fcn.00489c70
add esp, 4
test eax, eax
jbe 0x475651
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x374], ecx
cmp dword [ebp + 0x20], 0
je 0x475651
mov edx, dword [ebp - 0x374]
push edx
call fcn.00489c70
add esp, 4
cmp dword [ebp + 0x24], eax
jbe 0x475651
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x374]
push edx
push str._s_s
mov eax, dword [ebp + 0x20]
push eax
call fcn.00489bd8
add esp, 0x10
push 0
mov ecx, dword [ebp + 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edx, dword [ebp + 0x20]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.00489ae0
add esp, 8
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x368]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebp - 0x354]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
push str.GetPrinterDriverDirectory_env_s__return_with__u___LastError_u___Size_u___DriverDirectory_s_n
push 0
call fcn.00476210
add esp, 0x1c
cmp dword [ebp - 0x354], 0
je 0x4756bf
mov edx, dword [ebp - 0x18]
push edx
push 0x101d0
mov eax, dword [ebp - 0x338]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupSetDirectoryIdA]
mov dword [ebp - 0x354], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp - 0x354]
push ecx
push str.SetupSetDirectoryId___return_with__u___LastError_u__n
push 0
call fcn.00476210
add esp, 0x10
lea edx, [ebp - 0x368]
push edx
push 0
push 0
push 1
mov eax, dword [ebp - 0xc]
push eax
push 0
call sub.WINSPOOL.DRV_GetPrintProcessorDirectoryA
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
jne 0x4757d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4757d4
mov ecx, dword [ebp - 0x368]
push ecx
call fcn.0047645c
add esp, 4
mov dword [ebp - 0x700], eax
mov edx, dword [ebp - 0x700]
mov dword [ebp - 0x378], edx
lea eax, [ebp - 0x368]
push eax
mov ecx, dword [ebp - 0x368]
push ecx
mov edx, dword [ebp - 0x378]
push edx
push 1
mov eax, dword [ebp - 0xc]
push eax
push 0
call sub.WINSPOOL.DRV_GetPrintProcessorDirectoryA
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
je 0x4757a3
mov ecx, dword [ebp - 0x378]
push ecx
push 0x101d1
mov edx, dword [ebp - 0x338]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupSetDirectoryIdA]
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
je 0x47578b
mov eax, dword [ebp - 0x378]
push eax
push str.GetPrinterProcessorDirectory___:_66001_to___s_._n
push 0
call fcn.00476210
add esp, 0xc
jmp 0x4757a1
mov ecx, dword [ebp - 0x378]
push ecx
push str.GetPrinterProcessorDirectory___:_66001_to___s_._fail_n
push 0
call fcn.00476210
add esp, 0xc
jmp 0x4757b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetPrintProcessorDirectory___fail___d__n
push 2
call fcn.00476210
add esp, 0xc
mov edx, dword [ebp - 0x378]
mov dword [ebp - 0x704], edx
mov eax, dword [ebp - 0x704]
push eax
call fcn.00476457
add esp, 4
mov dword [ebp - 0x368], 0
lea ecx, [ebp - 0x368]
push ecx
push 0
push 0
call fcn.00476320
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
jne 0x4758de
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4758de
mov edx, dword [ebp - 0x368]
push edx
call fcn.0047645c
add esp, 4
mov dword [ebp - 0x708], eax
mov eax, dword [ebp - 0x708]
mov dword [ebp - 0x37c], eax
lea ecx, [ebp - 0x368]
push ecx
mov edx, dword [ebp - 0x37c]
push edx
push 0
call fcn.00476320
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
je 0x4758ad
mov eax, dword [ebp - 0x37c]
push eax
push 0x101d3
mov ecx, dword [ebp - 0x338]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupSetDirectoryIdA]
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
je 0x475895
mov edx, dword [ebp - 0x37c]
push edx
push str.GetColorDirectory___:_66003_to___s_._n
push 0
call fcn.00476210
add esp, 0xc
jmp 0x4758ab
mov eax, dword [ebp - 0x37c]
push eax
push str.GetColorDirectory___:_66003_to___s__fail._n
push 0
call fcn.00476210
add esp, 0xc
jmp 0x4758c3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetColorDirectory___fail___d__n
push 2
call fcn.00476210
add esp, 0xc
mov ecx, dword [ebp - 0x37c]
mov dword [ebp - 0x70c], ecx
mov edx, dword [ebp - 0x70c]
push edx
call fcn.00476457
add esp, 4
push 0x105
lea eax, [ebp - 0x223]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
xor ecx, ecx
cmp ecx, eax
sbb edx, edx
neg edx
mov dword [ebp - 0x354], edx
je 0x47591f
lea eax, [ebp - 0x223]
push eax
push 0x101d2
mov ecx, dword [ebp - 0x338]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupSetDirectoryIdA]
mov dword [ebp - 0x354], eax
push str.OpenCopy_Queue..._n
push 0
call fcn.00476210
add esp, 8
cmp dword [ebp - 0x354], 0
je 0x475a27
call dword [sym.imp.SETUPAPI.dll_SetupOpenFileQueue]
mov dword [ebp - 0x334], eax
cmp dword [ebp - 0x334], 0xffffffff
jne 0x47598e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00476270
add esp, 4
mov dword [ebp - 0x364], 0xfffffffe
mov dword [ebp - 0x354], 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetupOpenFileQueue___failed__LastError_u__n
push 0
call fcn.00476210
add esp, 0xc
jmp 0x475a27
mov edx, dword [ebp + 0x14]
cmp dword [edx], 9
jne 0x4759bc
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x70], 4
jl 0x4759bc
push 0
mov ecx, dword [ebp - 0x334]
push ecx
call fcn.004750d0
add esp, 8
mov dword [ebp - 0x34c], 0
jmp 0x475a27
mov edx, dword [ebp + 0x14]
cmp dword [edx], 7
jl 0x4759ea
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x70], 4
jl 0x4759ea
push 0
mov ecx, dword [ebp - 0x334]
push ecx
call fcn.00475030
add esp, 8
mov dword [ebp - 0x34c], 0
jmp 0x475a27
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0x70], 7
je 0x4759fc
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x70], 8
jne 0x475a27
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 4
je 0x475a0c
mov edx, dword [ebp + 0x14]
cmp dword [edx], 5
jne 0x475a27
push 0
mov eax, dword [ebp - 0x334]
push eax
call fcn.00476170
add esp, 8
mov dword [ebp - 0x34c], 0
push 0x400
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0x334]
push ecx
push 0
mov edx, dword [ebp - 0x338]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupInstallFilesFromInfSectionA]
mov dword [ebp - 0x354], eax
mov dword [ebp - 8], 0
jmp 0x475a65
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
cmp dword [ebp - 0x354], 0
je 0x475b3d
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0x14]
cmp dword [edx + ecx*4 + 0x10], 0
je 0x475b3d
push 0x400
movsx eax, byte [ebp - 0x328]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x328]
and eax, ecx
push eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + edx*4 + 0x10]
push ecx
mov edx, dword [ebp - 0x334]
push edx
push 0
mov eax, dword [ebp - 0x338]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupInstallFilesFromInfSectionA]
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
je 0x475ad8
mov dword [ebp - 0x720], str.TRUE
jmp 0x475ae2
mov dword [ebp - 0x720], str.FALSE
movsx ecx, byte [ebp - 0x328]
test ecx, ecx
je 0x475afb
lea edx, [ebp - 0x328]
mov dword [ebp - 0x724], edx
jmp 0x475b05
mov dword [ebp - 0x724], str.NULL
mov eax, dword [ebp - 0x720]
push eax
mov ecx, dword [ebp - 0x724]
push ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + edx*4 + 0x10]
push ecx
push str.LTcopyFilesByInfFileFor___called_SetupInstallFilesFromInfSection___for__s__src:__s___s__n
push 0
call fcn.00476210
add esp, 0x14
cmp dword [ebp - 0x354], 0
jne 0x475b38
jmp 0x475b3d
jmp 0x475a5c
cmp dword [ebp - 0x354], 0
jne 0x475b7f
mov dword [ebp - 0x364], 0xfffffffe
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00476270
add esp, 4
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0xc]
push ecx
call fcn.00476280
push eax
push str.Setup_COPY_Queue:_1st_Section._LastError_u__INF_Section__s_:_Source_s__n
push 0
call fcn.00476210
add esp, 0x14
push 0xa
call fcn.00469840
add esp, 4
push str.CommitQueue..._n
push 0
call fcn.00476210
add esp, 8
call fcn.004762c0
mov dword [ebp - 0x358], eax
mov dword [ebp - 0x354], 0
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 0x3c]
mov dword [0x5401ec], eax
call dword [sym.imp.SETUPAPI.dll_SetupOpenFileQueue]
mov dword [ebp - 0x330], eax
cmp dword [ebp - 0x34c], 0
je 0x475c44
mov dword [ebp - 0x380], 0
lea ecx, [ebp - 0x380]
push ecx
lea edx, [ebp - 0x348]
push edx
push 0x476030
push 0
push 8
mov eax, dword [ebp - 0x334]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupScanFileQueueA]
test eax, eax
jne 0x475c1c
mov ecx, dword [ebp - 0x354]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SetupScanFileQueue___fail__er_d__res_d__n
push 0
call fcn.00476210
add esp, 0x10
lea edx, [ebp - 0x348]
push edx
push 0x474d30
mov eax, dword [ebp - 0x330]
push eax
mov ecx, dword [ebp - 0x358]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupCommitFileQueueA]
mov dword [ebp - 0x354], eax
jmp 0x475c65
push 0
push 0x474d30
mov edx, dword [ebp - 0x334]
push edx
mov eax, dword [ebp - 0x358]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupCommitFileQueueA]
mov dword [ebp - 0x354], eax
cmp dword [ebp - 0x354], 0
jne 0x475cd8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00476270
add esp, 4
call fcn.00476280
mov dword [ebp - 0x728], eax
cmp dword [ebp - 0x728], 0x70
je 0x475cab
cmp dword [ebp - 0x728], 0x4c7
je 0x475c9f
jmp 0x475cb7
mov dword [ebp - 0x364], 0xfffffffb
jmp 0x475cc1
mov dword [ebp - 0x364], 0xfffffffa
jmp 0x475cc1
mov dword [ebp - 0x364], 0xfffffffe
call fcn.00476280
push eax
push str.Commit_Queue_failed_with__u_n
push 0
call fcn.00476210
add esp, 0xc
jmp 0x475ce2
mov dword [ebp - 0x364], 0
cmp dword [ebp - 0x360], 0
jg 0x475fa6
push 0x104
lea ecx, [ebp - 0x698]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str.Inf
lea edx, [ebp - 0x698]
push edx
call fcn.00489af0
add esp, 8
push 0x5c
mov eax, dword [ebp + 0x10]
push eax
call fcn.00468590
add esp, 8
push eax
lea ecx, [ebp - 0x698]
push ecx
call fcn.00489af0
add esp, 8
push 0
lea edx, [ebp - 0x698]
push edx
mov eax, dword [ebp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [ebp - 0x698]
push ecx
mov edx, dword [ebp + 0x10]
push edx
push str.Inf_file_copy___s__to___s__n
push 0
call fcn.00476210
add esp, 0x10
mov eax, dword [ebp + 0x14]
cmp dword [eax + 0x38], 0
je 0x475fa6
push 0x104
lea ecx, [ebp - 0x488]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str.InfCatalog
lea edx, [ebp - 0x488]
push edx
call fcn.00489af0
add esp, 8
push 0x5c
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x38]
push ecx
call fcn.00468570
add esp, 8
push eax
lea edx, [ebp - 0x488]
push edx
call fcn.00489af0
add esp, 8
push 0
lea eax, [ebp - 0x488]
push eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x38]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x488]
push eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x38]
push edx
push str.Catalog_file_copy___s__to___s__n
push 0
call fcn.00476210
add esp, 0x10
push 0x104
lea eax, [ebp - 0x590]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push 0x44
push 0
lea ecx, [ebp - 0x6f0]
push ecx
call fcn.004886d0
add esp, 0xc
push 0x10
push 0
lea edx, [ebp - 0x6a8]
push edx
call fcn.004886d0
add esp, 0xc
mov dword [ebp - 0x6f0], 0x44
lea eax, [ebp - 0x698]
push eax
lea ecx, [ebp - 0x590]
push ecx
push str._s_sucatreg.exe__I:_s
lea edx, [ebp - 0x488]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x6a8]
push eax
lea ecx, [ebp - 0x6f0]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x488]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x475e91
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x4cdc44
push 0
call fcn.00476210
add esp, 0xc
jmp 0x475ed3
push 0xea60
mov eax, dword [ebp - 0x6a8]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x475eb9
push 0x63
mov ecx, dword [ebp - 0x6a8]
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov edx, dword [ebp - 0x6a8]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x6a4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x44
push 0
lea ecx, [ebp - 0x6f0]
push ecx
call fcn.004886d0
add esp, 0xc
push 0x10
push 0
lea edx, [ebp - 0x6a8]
push edx
call fcn.004886d0
add esp, 0xc
mov dword [ebp - 0x6f0], 0x44
lea eax, [ebp - 0x590]
push eax
push str._s_sucatreg.exe__C
lea ecx, [ebp - 0x488]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [ebp - 0x6a8]
push edx
lea eax, [ebp - 0x6f0]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x488]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x475f64
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateProcess_sucatreg__fail__d__n
push 0
call fcn.00476210
add esp, 0xc
jmp 0x475fa6
push 0xea60
mov edx, dword [ebp - 0x6a8]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x475f8c
push 0x63
mov eax, dword [ebp - 0x6a8]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, dword [ebp - 0x6a8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x6a4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x710], eax
mov ecx, dword [ebp - 0x710]
push ecx
call fcn.00476457
add esp, 4
cmp dword [ebp - 0x338], 0xffffffff
je 0x475fd4
mov edx, dword [ebp - 0x338]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
cmp dword [ebp - 0x334], 0xffffffff
je 0x475fea
mov eax, dword [ebp - 0x334]
push eax
call dword [sym.imp.SETUPAPI.dll_SetupCloseFileQueue]
cmp dword [ebp - 0x330], 0xffffffff
je 0x476000
mov ecx, dword [ebp - 0x330]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupCloseFileQueue]
call fcn.00474cb0
push eax
push str.___Printer_INF_Setup_LogEnd_at__s_n
push 0
call fcn.00476210
add esp, 0xc
mov eax, dword [ebp - 0x364]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00488550
mov esp, ebp
pop ebp
ret