Function at 0x4076d0
Capabilities:
Check if file exists
Copy file
Create directory
Create process on windows
Delete file
Get file attributes
Get installed programs
Move file
Query or enumerate registry value
Set file attributes
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c72b0
mov eax, dword fs:[0]
push eax
sub esp, 0x7f4
mov eax, dword [0x50545c]
xor eax, ebp
mov dword [ebp - 0x44], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x784], ecx
mov dword [ebp - 4], 1
mov dword [ebp - 0x458], 1
mov dword [ebp - 0x3c], 0
lea ecx, [ebp - 0x2c]
call fcn.00452618
mov byte [ebp - 4], 2
push 0x4d3b3c
lea ecx, [ebp - 0x4b4]
call fcn.00412370
mov byte [ebp - 4], 3
lea eax, [ebp - 0x4b4]
push eax
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x448]
push edx
call fcn.0040f190
add esp, 0xc
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x4b4]
sub eax, 0x10
mov dword [ebp - 0x520], eax
mov ecx, dword [ebp - 0x520]
call fcn.004029d0
mov ecx, dword [ebp - 0x448]
mov dword [ebp - 0x524], ecx
push 0
mov edx, dword [ebp - 0x524]
push edx
lea ecx, [ebp - 0x2c]
call fcn.004526d5
mov dword [ebp - 0x460], eax
cmp dword [ebp - 0x460], 0
jne 0x407815
mov dword [ebp - 0x4b8], 0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x448]
sub eax, 0x10
mov dword [ebp - 0x528], eax
mov ecx, dword [ebp - 0x528]
call fcn.004029d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.00452641
mov byte [ebp - 4], 0
mov ecx, dword [ebp + 8]
sub ecx, 0x10
mov dword [ebp - 0x52c], ecx
mov ecx, dword [ebp - 0x52c]
call fcn.004029d0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 0xc]
sub edx, 0x10
mov dword [ebp - 0x530], edx
mov ecx, dword [ebp - 0x530]
call fcn.004029d0
mov eax, dword [ebp - 0x4b8]
jmp 0x408f67
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x534], eax
mov ecx, dword [ebp - 0x534]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40783b
push 0
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x4d1180
lea ecx, [ebp - 0x45c]
call fcn.00412290
mov byte [ebp - 4], 6
lea eax, [ebp - 0x45c]
push eax
mov ecx, dword [ebp - 0x784]
call fcn.004071d0
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x454]
call fcn.00412940
mov byte [ebp - 4], 7
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x44c]
call fcn.00412940
mov byte [ebp - 4], 8
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x464]
call fcn.00412940
mov byte [ebp - 4], 9
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x30]
call fcn.00412940
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x460], 0
je 0x408cb9
lea ecx, [ebp - 0x2c]
call fcn.0045221f
mov dword [ebp - 0x460], eax
lea ecx, [ebp - 0x2c]
call fcn.004525c2
test eax, eax
je 0x4078db
jmp 0x4078b2
lea ecx, [ebp - 0x4bc]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.004529c1
mov dword [ebp - 0x788], eax
mov edx, dword [ebp - 0x788]
mov dword [ebp - 0x540], edx
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x540]
push eax
lea ecx, [ebp - 0x464]
call fcn.00412a10
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x4bc]
sub ecx, 0x10
mov dword [ebp - 0x544], ecx
mov ecx, dword [ebp - 0x544]
call fcn.004029d0
lea edx, [ebp + 0xc]
push edx
lea ecx, [ebp - 0x454]
call fcn.00412a10
push 1
lea eax, [ebp - 0x4c4]
push eax
lea ecx, [ebp - 0x454]
call fcn.0040f040
mov dword [ebp - 0x54c], eax
mov ecx, dword [ebp - 0x54c]
mov edx, dword [ecx]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x548], eax
cmp dword [ebp - 0x548], 1
jne 0x40799b
push 0
mov ecx, dword [ebp - 0x54c]
call fcn.0040fd40
movzx ecx, ax
mov edx, 0x5c
movzx eax, dx
cmp ecx, eax
jne 0x40799b
mov dword [ebp - 0x78c], 0
jmp 0x4079a5
mov dword [ebp - 0x78c], 1
mov cl, byte [ebp - 0x78c]
mov byte [ebp - 0x4bd], cl
mov edx, dword [ebp - 0x4c4]
sub edx, 0x10
mov dword [ebp - 0x550], edx
mov ecx, dword [ebp - 0x550]
call fcn.004029d0
movzx eax, byte [ebp - 0x4bd]
test eax, eax
je 0x4079e9
mov cx, 0x5c
movzx edx, cx
push edx
lea ecx, [ebp - 0x454]
call fcn.00412b80
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x554], ecx
mov edx, dword [ebp - 0x554]
push edx
mov eax, dword [ebp - 0x464]
push eax
lea ecx, [ebp - 0x454]
call fcn.00411880
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 0x44c]
call fcn.00412a10
push 1
lea edx, [ebp - 0x4cc]
push edx
lea ecx, [ebp - 0x44c]
call fcn.0040f040
mov dword [ebp - 0x55c], eax
mov eax, dword [ebp - 0x55c]
mov ecx, dword [eax]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x558], edx
cmp dword [ebp - 0x558], 1
jne 0x407a7c
push 0
mov ecx, dword [ebp - 0x55c]
call fcn.0040fd40
movzx eax, ax
mov ecx, 0x5c
movzx edx, cx
cmp eax, edx
jne 0x407a7c
mov dword [ebp - 0x790], 0
jmp 0x407a86
mov dword [ebp - 0x790], 1
mov al, byte [ebp - 0x790]
mov byte [ebp - 0x4c5], al
mov ecx, dword [ebp - 0x4cc]
sub ecx, 0x10
mov dword [ebp - 0x560], ecx
mov ecx, dword [ebp - 0x560]
call fcn.004029d0
movzx edx, byte [ebp - 0x4c5]
test edx, edx
je 0x407aca
mov ax, 0x5c
movzx ecx, ax
push ecx
lea ecx, [ebp - 0x44c]
call fcn.00412b80
mov edx, dword [ebp - 0x464]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x564], eax
mov ecx, dword [ebp - 0x564]
push ecx
mov edx, dword [ebp - 0x464]
push edx
lea ecx, [ebp - 0x44c]
call fcn.00411880
push 0x10
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x2c]
mov edx, dword [eax + 0x38]
call edx
test eax, eax
je 0x407bc3
mov eax, dword [ebp + 0x10]
push eax
push ecx
mov ecx, esp
mov dword [ebp - 0x4d0], esp
mov dword [ebp - 0x570], ecx
mov edx, dword [ebp - 0x454]
sub edx, 0x10
mov dword [ebp - 0x568], edx
mov eax, dword [ebp - 0x568]
push eax
call fcn.00412ee0
add esp, 4
mov dword [ebp - 0x56c], eax
mov ecx, dword [ebp - 0x56c]
add ecx, 0x10
mov edx, dword [ebp - 0x570]
mov dword [edx], ecx
mov eax, dword [ebp - 0x570]
mov dword [ebp - 0x794], eax
mov byte [ebp - 4], 0xc
push ecx
mov ecx, esp
mov dword [ebp - 0x4d4], esp
mov dword [ebp - 0x57c], ecx
mov edx, dword [ebp - 0x44c]
sub edx, 0x10
mov dword [ebp - 0x574], edx
mov eax, dword [ebp - 0x574]
push eax
call fcn.00412ee0
add esp, 4
mov dword [ebp - 0x578], eax
mov ecx, dword [ebp - 0x578]
add ecx, 0x10
mov edx, dword [ebp - 0x57c]
mov dword [edx], ecx
mov eax, dword [ebp - 0x57c]
mov dword [ebp - 0x798], eax
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x784]
call fcn.004076d0
jmp 0x408cb4
mov ecx, str.UpdatePatch.exe
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x580], ecx
jne 0x407be6
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x407bc3
xor eax, eax
jne 0x407bea
mov ecx, dword [ebp - 0x464]
mov dword [ebp - 0x584], ecx
push str.UpdatePatch.exe
mov edx, dword [ebp - 0x584]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x588], eax
cmp dword [ebp - 0x588], 0
jne 0x407c22
jmp 0x4078b2
mov eax, str.CDGMenu64.dll
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x58c], eax
jne 0x407c45
push 0x80004005
call fcn.00405b70
xor ecx, ecx
jne 0x407c22
xor edx, edx
jne 0x407c49
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x590], eax
push str.CDGMenu64.dll
mov ecx, dword [ebp - 0x590]
push ecx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x594], eax
cmp dword [ebp - 0x594], 0
je 0x407cda
mov edx, str.CDGMenu.dll
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x598], edx
jne 0x407c9f
push 0x80004005
call fcn.00405b70
xor eax, eax
jne 0x407c7c
xor ecx, ecx
jne 0x407ca3
mov edx, dword [ebp - 0x464]
mov dword [ebp - 0x59c], edx
push str.CDGMenu.dll
mov eax, dword [ebp - 0x59c]
push eax
call fcn.00494296
add esp, 8
mov dword [ebp - 0x5a0], eax
cmp dword [ebp - 0x5a0], 0
jne 0x4081a9
mov ecx, dword [ebp - 0x784]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x5a4], edx
push 0
mov eax, dword [ebp - 0x5a4]
push eax
lea ecx, [ebp - 0x44c]
call fcn.0040ee60
cmp eax, 0xffffffff
je 0x4081a9
call fcn.0044fb81
push eax
lea ecx, [ebp - 0x474]
call fcn.00412940
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x454]
push ecx
push str._u___s____
lea edx, [ebp - 0x4d8]
push edx
call fcn.0040f350
add esp, 0xc
mov dword [ebp - 0x79c], eax
mov eax, dword [ebp - 0x79c]
mov dword [ebp - 0x7a0], eax
mov byte [ebp - 4], 0xe
push 0x4d3ac8
mov ecx, dword [ebp - 0x7a0]
push ecx
lea edx, [ebp - 0x4dc]
push edx
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x7a4], eax
mov eax, dword [ebp - 0x7a4]
mov dword [ebp - 0x5b4], eax
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x5b4]
push ecx
lea ecx, [ebp - 0x474]
call fcn.00412a10
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x4dc]
sub edx, 0x10
mov dword [ebp - 0x5b8], edx
mov ecx, dword [ebp - 0x5b8]
call fcn.004029d0
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x4d8]
sub eax, 0x10
mov dword [ebp - 0x5bc], eax
mov ecx, dword [ebp - 0x5bc]
call fcn.004029d0
push 0
push 0
mov ecx, dword [ebp - 0x474]
push ecx
push str.regsvr32.exe
push 0x4d3aa0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov edx, dword [ebp - 0x454]
mov dword [ebp - 0x5c0], edx
mov eax, dword [ebp - 0x5c0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x470], eax
cmp dword [ebp - 0x470], 0xffffffff
je 0x407e32
mov ecx, dword [ebp - 0x470]
and ecx, 1
je 0x407e32
mov edx, dword [ebp - 0x470]
and edx, 0xfffffffe
push edx
mov eax, dword [ebp - 0x454]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push str.update_
mov ecx, dword [ebp - 0x784]
push ecx
lea edx, [ebp - 0x4e0]
push edx
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x7a8], eax
mov eax, dword [ebp - 0x7a8]
mov dword [ebp - 0x7ac], eax
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x464]
push ecx
mov edx, dword [ebp - 0x7ac]
push edx
lea eax, [ebp - 0x4e4]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x7b0], eax
mov ecx, dword [ebp - 0x7b0]
mov dword [ebp - 0x7b4], ecx
mov byte [ebp - 4], 0x11
push str..tmp
mov edx, dword [ebp - 0x7b4]
push edx
lea eax, [ebp - 0x4e8]
push eax
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x7b8], eax
mov ecx, dword [ebp - 0x7b8]
mov dword [ebp - 0x5c4], ecx
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x5c4]
push edx
lea ecx, [ebp - 0x474]
call fcn.00412a10
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x4e8]
sub eax, 0x10
mov dword [ebp - 0x5c8], eax
mov ecx, dword [ebp - 0x5c8]
call fcn.004029d0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x4e4]
sub ecx, 0x10
mov dword [ebp - 0x5cc], ecx
mov ecx, dword [ebp - 0x5cc]
call fcn.004029d0
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x4e0]
sub edx, 0x10
mov dword [ebp - 0x5d0], edx
mov ecx, dword [ebp - 0x5d0]
call fcn.004029d0
mov eax, dword [ebp - 0x474]
mov dword [ebp - 0x5d4], eax
mov ecx, dword [ebp - 0x5d4]
push ecx
mov edx, dword [ebp - 0x454]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x5d8], eax
mov ecx, dword [ebp - 0x44c]
mov dword [ebp - 0x5dc], ecx
push 0
mov edx, dword [ebp - 0x5d8]
push edx
mov eax, dword [ebp - 0x5dc]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jne 0x407f94
mov dword [ebp - 0x458], 0
cmp dword [ebp - 0x3c], 0
je 0x407fb7
mov ecx, dword [ebp - 0x454]
push ecx
mov edx, dword [ebp - 0x44c]
push edx
push str.CopyDriectory111_CopyFile_Succeed___s_____s.
call fcn.0042fb40
add esp, 0xc
jmp 0x407fd9
mov eax, dword [ebp - 0x454]
push eax
mov ecx, dword [ebp - 0x44c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CopyDriectory111_CopyFile_Fail__LastError__d___s_____s.
call fcn.0042fb40
add esp, 0x10
cmp dword [ebp - 0x470], 0xffffffff
je 0x408001
mov edx, dword [ebp - 0x470]
and edx, 1
je 0x408001
mov eax, dword [ebp - 0x470]
push eax
mov ecx, dword [ebp - 0x454]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea edx, [ebp - 0x454]
push edx
push str._s____
lea eax, [ebp - 0x4ec]
push eax
call fcn.0040f350
add esp, 0xc
mov dword [ebp - 0x7bc], eax
mov ecx, dword [ebp - 0x7bc]
mov dword [ebp - 0x7c0], ecx
mov byte [ebp - 4], 0x13
push 0x4d399c
mov edx, dword [ebp - 0x7c0]
push edx
lea eax, [ebp - 0x4f0]
push eax
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x7c4], eax
mov ecx, dword [ebp - 0x7c4]
mov dword [ebp - 0x5e0], ecx
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x5e0]
push edx
lea ecx, [ebp - 0x474]
call fcn.00412a10
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x4f0]
call fcn.004129d0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x4ec]
call fcn.004129d0
push 0
push 0
mov eax, dword [ebp - 0x474]
push eax
push str.regsvr32.exe
push 0x4d3aa0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push str.update_
mov ecx, dword [ebp - 0x784]
push ecx
lea edx, [ebp - 0x4f4]
push edx
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x7c8], eax
mov eax, dword [ebp - 0x7c8]
mov dword [ebp - 0x7cc], eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x464]
push ecx
mov edx, dword [ebp - 0x7cc]
push edx
lea eax, [ebp - 0x4f8]
push eax
call fcn.0040f190
add esp, 0xc
mov dword [ebp - 0x7d0], eax
mov ecx, dword [ebp - 0x7d0]
mov dword [ebp - 0x7d4], ecx
mov byte [ebp - 4], 0x16
push str..tmp
mov edx, dword [ebp - 0x7d4]
push edx
lea eax, [ebp - 0x4fc]
push eax
call fcn.0040f270
add esp, 0xc
mov dword [ebp - 0x7d8], eax
mov ecx, dword [ebp - 0x7d8]
mov dword [ebp - 0x5ec], ecx
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x5ec]
push edx
lea ecx, [ebp - 0x474]
call fcn.00412a10
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x4fc]
call fcn.004129d0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x4f8]
call fcn.004129d0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x4f4]
call fcn.004129d0
push 4
push 0
mov eax, dword [ebp - 0x474]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x474]
call fcn.004129d0
jmp 0x4078b2
cmp dword [ebp + 0x10], 0
je 0x408368
mov ecx, dword [ebp - 0x454]
mov dword [ebp - 0x600], ecx
mov edx, dword [ebp - 0x600]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x478], eax
cmp dword [ebp - 0x478], 0xffffffff
je 0x40823a
mov eax, dword [ebp - 0x478]
and eax, 1
je 0x40823a
mov ecx, dword [ebp - 0x454]
mov dword [ebp - 0x604], ecx
mov edx, dword [ebp - 0x478]
and edx, 0xfffffffe
push edx
mov eax, dword [ebp - 0x604]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [ebp - 0x47c], eax
cmp dword [ebp - 0x47c], 0
jne 0x40823a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov ecx, dword [ebp - 0x454]
push ecx
mov edx, dword [ebp - 0x44c]
push edx
push str.CopyDriectory222_Set_SetFileAttributes_Fail___s_____s.ErrorCode:_d
call fcn.0042fb40
add esp, 0x10
push 0x10000000
push str.EveryOne
mov eax, dword [ebp - 0x44c]
push eax
call section..text
add esp, 0xc
mov ecx, dword [ebp - 0x454]
mov dword [ebp - 0x608], ecx
push 0x10000000
push str.EveryOne
mov edx, dword [ebp - 0x608]
push edx
call section..text
add esp, 0xc
test eax, eax
je 0x408299
mov eax, dword [ebp - 0x454]
push eax
mov ecx, dword [ebp - 0x44c]
push ecx
push str.CopyDriectory222_Set_EveryOneAccess_Ok___s_____s.
call fcn.0042fb40
add esp, 0xc
jmp 0x4082bb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp - 0x454]
push edx
mov eax, dword [ebp - 0x44c]
push eax
push str.CopyDriectory222_Set_EveryOneAccess_Ok___s_____s.ErrorCode:_d
call fcn.0042fb40
add esp, 0x10
mov ecx, dword [ebp - 0x454]
mov dword [ebp - 0x60c], ecx
mov edx, dword [ebp - 0x44c]
mov dword [ebp - 0x610], edx
push 5
mov eax, dword [ebp - 0x60c]
push eax
mov ecx, dword [ebp - 0x610]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jne 0x40831e
mov edx, dword [ebp - 0x454]
push edx
mov eax, dword [ebp - 0x44c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CopyDriectory2224444_MoveFileEx_Fail__LastError__d___s_____s.
call fcn.0042fb40
add esp, 0x10
mov dword [ebp - 0x458], 0
cmp dword [ebp - 0x3c], 0
je 0x408341
mov ecx, dword [ebp - 0x454]
push ecx
mov edx, dword [ebp - 0x44c]
push edx
push str.CopyDriectory222_MoveFileEx_Succeed___s_____s.
call fcn.0042fb40
add esp, 0xc
jmp 0x408363
mov eax, dword [ebp - 0x454]
push eax
mov ecx, dword [ebp - 0x44c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CopyDriectory222_MoveFileEx_Fail__LastError__d___s_____s.
call fcn.0042fb40
add esp, 0x10
jmp 0x408cb4
mov edx, dword [ebp - 0x454]
mov dword [ebp - 0x614], edx
mov eax, dword [ebp - 0x614]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x480], eax
cmp dword [ebp - 0x480], 0xffffffff
je 0x4083b2
mov ecx, dword [ebp - 0x480]
and ecx, 1
je 0x4083b2
mov edx, dword [ebp - 0x480]
and edx, 0xfffffffe
push edx
mov eax, dword [ebp - 0x454]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, 0x4d3680
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x618], ecx
jne 0x4083d5
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x4083b2
xor eax, eax
jne 0x4083d9
mov ecx, dword [ebp - 0x464]
mov dword [ebp - 0x61c], ecx
push 0x4d3680
mov edx, dword [ebp - 0x61c]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x620], eax
cmp dword [ebp - 0x620], 0
jne 0x4085ee
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x624], eax
mov ecx, dword [ebp - 0x624]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4085ee
mov edx, dword [ebp - 0x454]
mov dword [ebp - 0x628], edx
mov eax, dword [ebp - 0x44c]
mov dword [ebp - 0x62c], eax
push 0
mov ecx, dword [ebp - 0x628]
push ecx
mov edx, dword [ebp - 0x62c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x4085e9
mov dword [ebp - 0x4a8], 3
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x488], eax
cmp dword [ebp - 0x488], 0
jne 0x40849a
mov dword [ebp - 0x7dc], 0
jmp 0x408570
mov ecx, dword [ebp - 0x488]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 1
mov dword [ebp - 0x484], eax
cmp dword [ebp - 0x484], 0x3fffffff
jle 0x4084cb
mov dword [ebp - 0x7e0], 0
jmp 0x408564
mov eax, dword [ebp - 0x484]
shl eax, 1
call fcn.004939d0
mov dword [ebp - 0x634], esp
mov edx, dword [ebp - 0x638]
mov dword [ebp - 0x7e0], edx
cmp dword [ebp - 0x634], 0
je 0x4084fc
cmp dword [ebp - 0x488], 0
jne 0x408508
mov dword [ebp - 0x7e0], 0
jmp 0x408564
mov eax, dword [ebp - 0x634]
mov byte [eax], 0
push 0
push 0
mov ecx, dword [ebp - 0x484]
shl ecx, 1
push ecx
mov edx, dword [ebp - 0x634]
push edx
push 0xffffffffffffffff
mov eax, dword [ebp - 0x488]
push eax
push 0
mov ecx, dword [ebp - 0x4a8]
push ecx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x630], eax
cmp dword [ebp - 0x630], 0
jne 0x408558
mov dword [ebp - 0x7e0], 0
jmp 0x408564
mov edx, dword [ebp - 0x634]
mov dword [ebp - 0x7e0], edx
mov eax, dword [ebp - 0x7e0]
mov dword [ebp - 0x7dc], eax
mov ecx, dword [ebp - 0x7dc]
push ecx
lea ecx, [ebp - 0x4a4]
call fcn.0040f590
mov byte [ebp - 4], 0x18
sub esp, 0x1c
mov edx, esp
mov dword [ebp - 0x500], esp
mov dword [ebp - 0x64c], edx
push 0
push 0
mov ecx, dword [ebp - 0x64c]
call fcn.00410110
mov eax, dword [0x4d367c]
push eax
push 0
lea ecx, [ebp - 0x4a4]
push ecx
mov ecx, dword [ebp - 0x64c]
call fcn.0040fee0
mov edx, dword [ebp - 0x64c]
mov dword [ebp - 0x7e4], edx
mov ecx, 0x506c08
call fcn.004327c0
mov byte [ebp - 4], 0xa
push 0
push 1
lea ecx, [ebp - 0x4a4]
call fcn.00410110
jmp 0x408c2f
mov eax, str.PackageInfo.ini
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x650], eax
jne 0x408611
push 0x80004005
call fcn.00405b70
xor ecx, ecx
jne 0x4085ee
xor edx, edx
jne 0x408615
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x654], eax
push str.PackageInfo.ini
mov ecx, dword [ebp - 0x654]
push ecx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x658], eax
cmp dword [ebp - 0x658], 0
jne 0x408797
lea edx, [ebp - 0x454]
push edx
lea ecx, [ebp - 0x30]
call fcn.00412a10
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x660], eax
push 0x2e
mov ecx, dword [ebp - 0x660]
push ecx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x65c], eax
cmp dword [ebp - 0x65c], 0
jne 0x408693
mov dword [ebp - 0x7e8], 0xffffffff
jmp 0x4086a7
mov edx, dword [ebp - 0x65c]
sub edx, dword [ebp - 0x454]
sar edx, 1
mov dword [ebp - 0x7e8], edx
mov eax, dword [ebp - 0x7e8]
mov dword [ebp - 0x4b0], eax
mov ecx, dword [ebp - 0x4b0]
push ecx
lea edx, [ebp - 0x504]
push edx
lea ecx, [ebp - 0x454]
call fcn.0040f0f0
mov dword [ebp - 0x7ec], eax
mov eax, dword [ebp - 0x7ec]
mov dword [ebp - 0x664], eax
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x664]
push ecx
lea ecx, [ebp - 0x454]
call fcn.00412a10
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x504]
call fcn.004129d0
mov edx, str.111.ini
test edx, edx
jne 0x408718
mov dword [ebp - 0x66c], 0
jmp 0x40872b
push str.111.ini
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x66c], eax
mov eax, dword [ebp - 0x66c]
push eax
push str.111.ini
lea ecx, [ebp - 0x454]
call fcn.00411880
mov ecx, dword [ebp - 0x454]
mov dword [ebp - 0x670], ecx
mov edx, dword [ebp - 0x44c]
mov dword [ebp - 0x674], edx
push 0
mov eax, dword [ebp - 0x670]
push eax
mov ecx, dword [ebp - 0x674]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x678], edx
push 5
mov eax, dword [ebp - 0x678]
push eax
mov ecx, dword [ebp - 0x454]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x408c2f
mov edx, dword [ebp - 0x45c]
mov dword [ebp - 0x67c], edx
xor eax, eax
cmp dword [ebp - 0x67c], 0
setne al
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x680], eax
jne 0x4087c7
push 0x80004005
call fcn.00405b70
xor ecx, ecx
jne 0x4087a3
xor edx, edx
jne 0x4087cb
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x684], eax
mov ecx, dword [ebp - 0x67c]
push ecx
mov edx, dword [ebp - 0x684]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x688], eax
cmp dword [ebp - 0x688], 0
jne 0x40885b
push ecx
mov eax, esp
mov dword [ebp - 0x508], esp
mov dword [ebp - 0x694], eax
mov ecx, dword [ebp - 0x44c]
sub ecx, 0x10
mov dword [ebp - 0x68c], ecx
mov edx, dword [ebp - 0x68c]
push edx
call fcn.00412ee0
add esp, 4
mov dword [ebp - 0x690], eax
mov eax, dword [ebp - 0x690]
add eax, 0x10
mov ecx, dword [ebp - 0x694]
mov dword [ecx], eax
mov edx, dword [ebp - 0x694]
mov dword [ebp - 0x7f0], edx
mov ecx, dword [ebp - 0x784]
call fcn.00406ae0
mov eax, str.npf.sys
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x698], eax
jne 0x40887e
push 0x80004005
call fcn.00405b70
xor ecx, ecx
jne 0x40885b
xor edx, edx
jne 0x408882
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x69c], eax
push str.npf.sys
mov ecx, dword [ebp - 0x69c]
push ecx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x6a0], eax
cmp dword [ebp - 0x6a0], 0
je 0x408a8b
mov edx, str.NsAuditF.sys
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x6a4], edx
jne 0x4088dc
push 0x80004005
call fcn.00405b70
xor eax, eax
jne 0x4088b9
xor ecx, ecx
jne 0x4088e0
mov edx, dword [ebp - 0x464]
mov dword [ebp - 0x6a8], edx
push str.NsAuditF.sys
mov eax, dword [ebp - 0x6a8]
push eax
call fcn.00494296
add esp, 8
mov dword [ebp - 0x6ac], eax
cmp dword [ebp - 0x6ac], 0
je 0x408a8b
mov ecx, str.NsHwafFs.sys
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x6b0], ecx
jne 0x40893a
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x408917
xor eax, eax
jne 0x40893e
mov ecx, dword [ebp - 0x464]
mov dword [ebp - 0x6b4], ecx
push str.NsHwafFs.sys
mov edx, dword [ebp - 0x6b4]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x6b8], eax
cmp dword [ebp - 0x6b8], 0
je 0x408a8b
mov eax, str.NsNdis.sys
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x6bc], eax
jne 0x408998
push 0x80004005
call fcn.00405b70
xor ecx, ecx
jne 0x408975
xor edx, edx
jne 0x40899c
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x6c0], eax
push str.NsNdis.sys
mov ecx, dword [ebp - 0x6c0]
push ecx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x6c4], eax
cmp dword [ebp - 0x6c4], 0
je 0x408a8b
mov edx, str.NsUsbFt.sys
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x6c8], edx
jne 0x4089f6
push 0x80004005
call fcn.00405b70
xor eax, eax
jne 0x4089d3
xor ecx, ecx
jne 0x4089fa
mov edx, dword [ebp - 0x464]
mov dword [ebp - 0x6cc], edx
push str.NsUsbFt.sys
mov eax, dword [ebp - 0x6cc]
push eax
call fcn.00494296
add esp, 8
mov dword [ebp - 0x6d0], eax
cmp dword [ebp - 0x6d0], 0
je 0x408a8b
mov ecx, str.NsWafRegMon.sys
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x6d4], ecx
jne 0x408a50
push 0x80004005
call fcn.00405b70
xor edx, edx
jne 0x408a2d
xor eax, eax
jne 0x408a54
mov ecx, dword [ebp - 0x464]
mov dword [ebp - 0x6d8], ecx
push str.NsWafRegMon.sys
mov edx, dword [ebp - 0x6d8]
push edx
call fcn.00494296
add esp, 8
mov dword [ebp - 0x6dc], eax
cmp dword [ebp - 0x6dc], 0
jne 0x408b3e
push ecx
mov eax, esp
mov dword [ebp - 0x50c], esp
mov dword [ebp - 0x6e8], eax
mov ecx, dword [ebp - 0x464]
sub ecx, 0x10
mov dword [ebp - 0x6e0], ecx
mov edx, dword [ebp - 0x6e0]
push edx
call fcn.00412ee0
add esp, 4
mov dword [ebp - 0x6e4], eax
mov eax, dword [ebp - 0x6e4]
add eax, 0x10
mov ecx, dword [ebp - 0x6e8]
mov dword [ecx], eax
mov edx, dword [ebp - 0x6e8]
mov dword [ebp - 0x7f4], edx
mov byte [ebp - 4], 0x1a
push ecx
mov eax, esp
mov dword [ebp - 0x510], esp
mov dword [ebp - 0x6f4], eax
mov ecx, dword [ebp - 0x44c]
sub ecx, 0x10
mov dword [ebp - 0x6ec], ecx
mov edx, dword [ebp - 0x6ec]
push edx
call fcn.00412ee0
add esp, 4
mov dword [ebp - 0x6f0], eax
mov eax, dword [ebp - 0x6f0]
add eax, 0x10
mov ecx, dword [ebp - 0x6f4]
mov dword [ecx], eax
mov edx, dword [ebp - 0x6f4]
mov dword [ebp - 0x7f8], edx
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x784]
call fcn.00409890
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x6f8], eax
mov ecx, dword [ebp - 0x6f8]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x408b91
mov edx, dword [ebp - 0x454]
mov dword [ebp - 0x6fc], edx
mov eax, dword [ebp - 0x44c]
mov dword [ebp - 0x700], eax
push 0
mov ecx, dword [ebp - 0x6fc]
push ecx
mov edx, dword [ebp - 0x700]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x3c], eax
jmp 0x408c2f
lea eax, [ebp - 0x454]
push eax
lea ecx, [ebp - 0x30]
call fcn.00412a10
mov ecx, 0x4d35ac
test ecx, ecx
jne 0x408bb5
mov dword [ebp - 0x704], 0
jmp 0x408bc8
push 0x4d35ac
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x704], eax
mov edx, dword [ebp - 0x704]
push edx
push 0x4d35ac
lea ecx, [ebp - 0x454]
call fcn.00411880
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x708], eax
mov ecx, dword [ebp - 0x44c]
mov dword [ebp - 0x70c], ecx
push 0
mov edx, dword [ebp - 0x708]
push edx
mov eax, dword [ebp - 0x70c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x710], ecx
push 5
mov edx, dword [ebp - 0x710]
push edx
mov eax, dword [ebp - 0x454]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp dword [ebp - 0x3c], 0
jne 0x408c3f
mov dword [ebp - 0x458], 0
cmp dword [ebp - 0x3c], 0
je 0x408c66
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x454]
push edx
mov eax, dword [ebp - 0x44c]
push eax
push str.CopyDriectory333_CopyFile_Succeed___s_____s.strTemp:_s
call fcn.0042fb40
add esp, 0x10
jmp 0x408c8c
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x454]
push edx
mov eax, dword [ebp - 0x44c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CopyDriectory333_CopyFile_Fail__LastError__d___s_____s.strTemp:_s
call fcn.0042fb40
add esp, 0x14
cmp dword [ebp - 0x480], 0xffffffff
je 0x408cb4
mov ecx, dword [ebp - 0x480]
and ecx, 1
je 0x408cb4
mov edx, dword [ebp - 0x480]
push edx
mov eax, dword [ebp - 0x454]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x4078b2
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x38], 0
mov byte [ebp - 0x444], 0
push 0x3ff
push 0
lea ecx, [ebp - 0x443]
push ecx
call fcn.004931a0
add esp, 0xc
mov dword [ebp - 0x34], 0x400
mov dword [ebp - 0x46c], 1
lea ecx, [ebp - 0x10]
call fcn.00412230
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x450]
call fcn.00412230
mov byte [ebp - 4], 0x1c
mov edx, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall8F739963_1BF2_431E_93DD_C10623F36A77
test edx, edx
jne 0x408d25
mov dword [ebp - 0x72c], 0
jmp 0x408d38
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall8F739963_1BF2_431E_93DD_C10623F36A77
call fcn.004939fc
add esp, 4
mov dword [ebp - 0x72c], eax
mov eax, dword [ebp - 0x72c]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall8F739963_1BF2_431E_93DD_C10623F36A77
lea ecx, [ebp - 0x450]
call fcn.00412d00
mov ecx, dword [ebp - 0x450]
mov dword [ebp - 0x730], ecx
lea edx, [ebp - 0x38]
push edx
push 0xf003f
push 0
mov eax, dword [ebp - 0x730]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x408dc5
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp - 0x444]
push edx
lea eax, [ebp - 0x46c]
push eax
push 0
push str.UninstallString
mov ecx, dword [ebp - 0x38]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x408dc5
lea edx, [ebp - 0x444]
push edx
push 0x4d2d7c
lea eax, [ebp - 0x10]
push eax
call fcn.00413630
add esp, 0xc
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x738], ecx
push 0x22
mov edx, dword [ebp - 0x738]
push edx
call fcn.00494159
add esp, 8
mov dword [ebp - 0x734], eax
cmp dword [ebp - 0x734], 0
jne 0x408dfa
mov dword [ebp - 0x7fc], 0xffffffff
jmp 0x408e0b
mov eax, dword [ebp - 0x734]
sub eax, dword [ebp - 0x10]
sar eax, 1
mov dword [ebp - 0x7fc], eax
mov ecx, dword [ebp - 0x7fc]
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x40], 0
jle 0x408e64
mov edx, dword [ebp - 0x40]
add edx, 1
push edx
lea eax, [ebp - 0x514]
push eax
lea ecx, [ebp - 0x10]
call fcn.0040f0f0
mov dword [ebp - 0x800], eax
mov ecx, dword [ebp - 0x800]
mov dword [ebp - 0x750], ecx
mov byte [ebp - 4], 0x1d
mov edx, dword [ebp - 0x750]
push edx
lea ecx, [ebp - 0x10]
call fcn.00412a10
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x514]
call fcn.004129d0
lea ecx, [ebp - 0x10]
call fcn.0040f490
mov dword [ebp - 0x468], eax
mov eax, dword [ebp - 0x468]
push eax
call fcn.004939fc
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
mov edx, dword [ebp - 0x468]
push edx
push 1
push 0
push str.UninstallString
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x38]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x38], 0
lea ecx, [ebp - 0x2c]
call fcn.00452139
mov edx, dword [ebp - 0x458]
mov dword [ebp - 0x518], edx
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x450]
call fcn.004129d0
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x10]
call fcn.004129d0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x30]
call fcn.004129d0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x464]
call fcn.004129d0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x44c]
call fcn.004129d0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x454]
call fcn.004129d0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x45c]
call fcn.004129d0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x448]
call fcn.004129d0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2c]
call fcn.00452641
mov byte [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.004129d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.004129d0
mov eax, dword [ebp - 0x518]
lea esp, [ebp - 0x804]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x44]
xor ecx, ebp
call fcn.0049318c
mov esp, ebp
pop ebp
ret 0xc