Function at 0x446d70
Capabilities:
Check if file exists
Create process on windows
Get file attributes
Print debug messages

Disassembly:
push ebp
lea ebp, [esp - 0xb28]
sub esp, 0xb28
push 0xffffffffffffffff
push 0x48c46e
mov eax, dword fs:[0]
push eax
sub esp, 0xd0
mov eax, dword [0x4ac13c]
xor eax, ebp
mov dword [ebp + 0xb24], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor ebx, ebx
lea eax, [ebp + 0x888]
push ebx
push eax
call fcn.0044a2c0
add esp, 8
mov eax, dword [ebp + 0x88c]
mov edi, 8
cmp dword [ebp + 0x8a0], edi
mov dword [ebp - 4], ebx
jae 0x446ddd
lea eax, [ebp + 0x88c]
push 0x104
push eax
lea ecx, [ebp + 0x914]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea edx, [ebp + 0x914]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp + 0x914]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x446e06
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp + 0x914]
push eax
lea ecx, [ebp + 0x888]
call fcn.00402470
push 0xf
push 0x494490
lea ecx, [ebp + 0x888]
call fcn.00411cd0
push ebx
mov esi, 7
push 0x49a2a8
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], bx
call fcn.00402470
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp + 0x8c0]
push edx
mov byte [ebp - 4], 1
call fcn.00449db0
add esp, 8
cmp dword [ebp - 0x1c], edi
mov byte [ebp - 4], 3
jb 0x446e83
mov eax, dword [ebp - 0x30]
push eax
call fcn.00451fd9
add esp, 4
cmp dword [ebp + 0x8a0], edi
mov eax, dword [ebp + 0x88c]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ebx
mov word [ebp - 0x30], bx
jae 0x446ea1
lea eax, [ebp + 0x88c]
push eax
lea ecx, [ebp]
call fcn.00448b90
lea ecx, [ebp + 0xb1c]
xor eax, eax
push ecx
lea ecx, [ebp]
mov byte [ebp - 4], 4
mov word [ebp + 0xb1c], bx
mov dword [ebp + 0xb1e], eax
mov word [ebp + 0xb22], ax
call fcn.004487a0
movzx esi, word [ebp + 0xb20]
push 1
push 3
lea ecx, [ebp - 0xdc]
call fcn.004421e0
push esi
push 0x494618
lea edx, [ebp + 0x8c0]
push edx
lea eax, [ebp - 0xd4]
push eax
mov byte [ebp - 4], 5
call fcn.004415e0
add esp, 8
push eax
call fcn.00441870
add esp, 8
mov ecx, eax
call fcn.00441d50
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0xdc]
call fcn.0043b6e0
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x8c0]
mov byte [ebp - 4], 6
call fcn.0040218f
cmp dword [ebp - 0x38], edi
mov byte [ebp - 4], 5
jb 0x446f50
mov edx, dword [ebp - 0x4c]
push edx
call fcn.00451fd9
add esp, 4
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str.____strDesExeFilePath:_n
call esi
cmp dword [ebp + 0x8d8], edi
mov eax, dword [ebp + 0x8c4]
jae 0x446f71
lea eax, [ebp + 0x8c4]
push eax
call esi
lea eax, [ebp + 0x8c0]
push eax
call fcn.00449790
add esp, 4
test al, al
jne 0x447001
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 4
call fcn.004374d0
lea ecx, [ebp - 0x88]
push ecx
mov dword [ebp - 0x88], 0x492650
call fcn.0047690c
add esp, 4
lea ecx, [ebp]
mov byte [ebp - 4], 3
call fcn.00448810
cmp dword [ebp + 0x8d8], edi
jb 0x446fd2
mov edx, dword [ebp + 0x8c4]
push edx
call fcn.00451fd9
add esp, 4
cmp dword [ebp + 0x8a0], edi
mov dword [ebp + 0x8d8], 7
mov dword [ebp + 0x8d4], ebx
mov word [ebp + 0x8c4], bx
jb 0x447588
mov eax, dword [ebp + 0x88c]
push eax
jmp 0x447580
push str._n_____n
call esi
push str.win7_setting_32.exe
lea ecx, [ebp + 0x8c0]
push ecx
lea edx, [ebp + 0x8dc]
push edx
call fcn.00412230
add esp, 0xc
push 0x16
push str.handle0_install_bho0
lea ecx, [ebp + 0x8f8]
mov byte [ebp - 4], 7
mov dword [ebp + 0x910], 7
mov dword [ebp + 0x90c], ebx
mov word [ebp + 0x8fc], bx
call fcn.00402470
cmp dword [ebp + 0x910], edi
mov ecx, dword [ebp + 0x8fc]
jae 0x447064
lea ecx, [ebp + 0x8fc]
cmp dword [ebp + 0x8f4], edi
mov eax, dword [ebp + 0x8e0]
jae 0x447078
lea eax, [ebp + 0x8e0]
push ebx
push ebx
push ecx
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jge 0x4470ad
push str._n____ShellExecute_failed:_n
call esi
cmp dword [ebp + 0x8f4], edi
mov eax, dword [ebp + 0x8e0]
jae 0x4470a8
lea eax, [ebp + 0x8e0]
push eax
call esi
jmp 0x4470b8
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp + 0x910], edi
jb 0x4470cf
mov eax, dword [ebp + 0x8fc]
push eax
call fcn.00451fd9
add esp, 4
cmp dword [ebp + 0x8f4], edi
mov dword [ebp + 0x910], 7
mov dword [ebp + 0x90c], ebx
mov word [ebp + 0x8fc], bx
mov byte [ebp - 4], 5
jb 0x447101
mov ecx, dword [ebp + 0x8e0]
push ecx
call fcn.00451fd9
add esp, 4
lea edx, [ebp + 0x8a4]
push edx
call fcn.0043a8b0
add esp, 4
push str._n____strCurRegFileName:_n
mov byte [ebp - 4], 8
call esi
cmp dword [ebp + 0x8bc], edi
mov eax, dword [ebp + 0x8a8]
jae 0x44712f
lea eax, [ebp + 0x8a8]
push eax
call esi
cmp dword [ebp + 0x8b8], ebx
je 0x447190
cmp dword [ebp + 0x8bc], edi
jb 0x44736d
mov eax, dword [ebp + 0x8a8]
cmp eax, ebx
je 0x447190
cmp word [eax], bx
je 0x447190
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x447190
test al, 0x10
jne 0x447190
push 0x494e20
call esi
cmp dword [ebp + 0x8bc], edi
mov eax, dword [ebp + 0x8a8]
jae 0x447180
lea eax, [ebp + 0x8a8]
push ebx
push ebx
push str.__UnregServer
push eax
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push str.DownloadProxyPS.dll
lea eax, [ebp + 0x8c0]
push eax
lea ecx, [ebp + 0x850]
push ecx
call fcn.00412230
lea edx, [ebp + 0x850]
push edx
lea eax, [ebp - 0x50]
push str._u__s__
push eax
mov byte [ebp - 4], 9
call fcn.00439d70
push 0x4947d0
push eax
lea ecx, [ebp + 0x86c]
push ecx
mov byte [ebp - 4], 0xa
call fcn.00412230
add esp, 0x24
cmp dword [ebp - 0x38], edi
mov byte [ebp - 4], 0xc
jb 0x4471ef
mov edx, dword [ebp - 0x4c]
push edx
call fcn.00451fd9
add esp, 4
cmp dword [ebp + 0x884], edi
mov eax, dword [ebp + 0x870]
mov dword [ebp - 0x38], 7
mov dword [ebp - 0x3c], ebx
mov word [ebp - 0x4c], bx
jae 0x447211
lea eax, [ebp + 0x870]
push ebx
push ebx
push eax
push str.regsvr32.exe
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jge 0x447244
push str._n____ShellExecute_regsvr32.exe_failed:_n
call esi
cmp dword [ebp + 0x884], edi
mov eax, dword [ebp + 0x870]
jae 0x447241
lea eax, [ebp + 0x870]
push eax
call esi
call fcn.004365b0
push str._n_____n
call esi
push str.win7_setting_32.exe
lea eax, [ebp + 0x8c0]
push eax
lea ecx, [ebp + 0x8dc]
push ecx
call fcn.00412230
add esp, 0xc
push 0x16
push str.handle0_install_bho0
lea ecx, [ebp + 0x8f8]
mov byte [ebp - 4], 0xd
mov dword [ebp + 0x910], 7
mov dword [ebp + 0x90c], ebx
mov word [ebp + 0x8fc], bx
call fcn.00402470
cmp dword [ebp + 0x910], edi
mov ecx, dword [ebp + 0x8fc]
jae 0x4472ac
lea ecx, [ebp + 0x8fc]
cmp dword [ebp + 0x8f4], edi
mov eax, dword [ebp + 0x8e0]
jae 0x4472c0
lea eax, [ebp + 0x8e0]
push ebx
push ebx
push ecx
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jge 0x4472f3
push str._n____ShellExecute_failed:_n
call esi
cmp dword [ebp + 0x8f4], edi
mov eax, dword [ebp + 0x8e0]
jae 0x4472f0
lea eax, [ebp + 0x8e0]
push eax
call esi
cmp dword [ebp + 0x910], edi
jb 0x44730a
mov edx, dword [ebp + 0x8fc]
push edx
call fcn.00451fd9
add esp, 4
cmp dword [ebp + 0x8f4], edi
mov esi, 7
mov dword [ebp + 0x910], esi
mov dword [ebp + 0x90c], ebx
mov word [ebp + 0x8fc], bx
jb 0x447339
mov eax, dword [ebp + 0x8e0]
push eax
call fcn.00451fd9
add esp, 4
mov dword [ebp - 0x14], ebx
lea esp, [esp]
cmp dword [ebp - 0x14], 5
jge 0x447495
mov byte [ebp - 4], 0xe
call dword [0x4ad514]
cmp dword [ebp + 0x8d8], edi
mov dword [ebp - 0x18], eax
jb 0x447378
mov edi, dword [ebp + 0x8c4]
cmp edi, ebx
jne 0x44737e
xor eax, eax
jmp 0x4473ae
lea eax, [ebp + 0x8a8]
jmp 0x447150
lea edi, [ebp + 0x8c4]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 1
cmp eax, 0x3fffffff
jle 0x447393
xor eax, eax
jmp 0x4473ae
lea esi, [eax + eax]
mov eax, esi
call fcn.0045c4a0
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], esp
mov eax, esp
push ecx
push esi
push edi
push eax
call fcn.00411310
mov ecx, eax
mov dword [ebp + 0x910], 0xf
mov dword [ebp + 0x90c], ebx
mov byte [ebp + 0x8fc], bl
lea esi, [ecx + 1]
lea esp, [esp]
mov dl, byte [ecx]
add ecx, 1
cmp dl, bl
jne 0x4473d0
sub ecx, esi
push ecx
push eax
lea ecx, [ebp + 0x8f8]
call fcn.004022c0
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str._n____strDesExeFilePathA_n
mov byte [ebp - 4], 0xf
call esi
mov eax, dword [ebp + 0x8fc]
mov edi, 0x10
cmp dword [ebp + 0x910], edi
jae 0x447412
lea eax, [ebp + 0x8fc]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [ebp + 0x8f8]
push edx
lea ecx, [ebp + 0x8dc]
call fcn.0043d060
lea eax, [ebp + 0x8dc]
push eax
mov byte [ebp - 4], 0x10
call fcn.00444ca0
add esp, 4
cmp eax, ebx
jne 0x447449
push str._n____uninstall_remove_all_failed_n
call esi
cmp dword [ebp + 0x8f4], edi
jb 0x447460
mov ecx, dword [ebp + 0x8e0]
push ecx
call fcn.00451fd9
add esp, 4
cmp dword [ebp + 0x910], edi
mov dword [ebp + 0x8f4], 0xf
mov dword [ebp + 0x8f0], ebx
mov byte [ebp + 0x8e0], bl
jb 0x44748d
mov edx, dword [ebp + 0x8fc]
push edx
call fcn.00451fd9
add esp, 4
mov edi, 8
lea esi, [edi - 1]
cmp dword [ebp + 0x884], edi
jb 0x4474ac
mov eax, dword [ebp + 0x870]
push eax
call fcn.00451fd9
add esp, 4
cmp dword [ebp + 0x868], edi
mov dword [ebp + 0x884], esi
mov dword [ebp + 0x880], ebx
mov word [ebp + 0x870], bx
jb 0x4474d6
mov ecx, dword [ebp + 0x854]
push ecx
call fcn.00451fd9
add esp, 4
cmp dword [ebp + 0x8bc], edi
mov dword [ebp + 0x868], esi
mov dword [ebp + 0x864], ebx
mov word [ebp + 0x854], bx
jb 0x447500
mov edx, dword [ebp + 0x8a8]
push edx
call fcn.00451fd9
add esp, 4
lea ecx, [ebp - 0x88]
mov dword [ebp + 0x8bc], esi
mov dword [ebp + 0x8b8], ebx
mov word [ebp + 0x8a8], bx
mov byte [ebp - 4], 4
call fcn.004374d0
lea eax, [ebp - 0x88]
push eax
mov dword [ebp - 0x88], 0x492650
call fcn.0047690c
add esp, 4
lea ecx, [ebp]
mov byte [ebp - 4], 3
call fcn.00448810
cmp dword [ebp + 0x8d8], edi
jb 0x44755e
mov ecx, dword [ebp + 0x8c4]
push ecx
call fcn.00451fd9
add esp, 4
cmp dword [ebp + 0x8a0], edi
mov dword [ebp + 0x8d8], esi
mov dword [ebp + 0x8d4], ebx
mov word [ebp + 0x8c4], bx
jb 0x447588
mov edx, dword [ebp + 0x88c]
push edx
call fcn.00451fd9
add esp, 4
lea esp, [ebp - 0xec]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xb24]
xor ecx, ebp
call fcn.0045b7a6
add ebp, 0xb28
mov esp, ebp
pop ebp
ret