Function at 0x42f492
Capabilities:
Accept command line arguments
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3bc
mov eax, dword [0x4bc660]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
push 0xffffffffffffffff
mov dword [ebp - 0x2c0], esi
call sub.IMM32.dll_ImmDisableIME
call fcn.0042ada5
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x2a0]
mov dword [ebp - 0x2c4], ebx
mov byte [ebp - 0x2d0], bl
mov dword [ebp - 0x2c8], ebx
mov dword [ebp - 0x288], 7
call fcn.004024b4
push 0x206
lea eax, [ebp - 0x212]
push ebx
push eax
mov word [ebp - 0x214], bx
call fcn.00466400
add esp, 0xc
push 0x208
lea eax, [ebp - 0x214]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push esi
lea eax, [ebp - 0x214]
push eax
push str.TencentDL_tMain__filename:_s__cmd:_s
push 0x4a2098
push 3
push str.wWinMain
push 0x26f
push str..DownloadProxy.cpp
call fcn.0041b51d
mov esi, 0x4a2270
lea edi, [ebp - 0xc]
lea eax, [ebp - 0xc]
movsd dword es:[edi], dword [esi]
push eax
push dword [ebp - 0x2c0]
movsw word es:[edi], word [esi]
call fcn.0042ab08
mov esi, eax
add esp, 0x28
cmp esi, ebx
mov dword [ebp - 0x2cc], esi
je 0x42f9c9
push str.RegServer
push esi
call fcn.0042ab4b
test eax, eax
pop ecx
pop ecx
jne 0x42f58b
mov dword [ebp - 0x2c4], 1
jmp 0x42f9c9
push str.UnregServer
push esi
call fcn.0042ab4b
test eax, eax
pop ecx
pop ecx
jne 0x42f5ab
mov dword [ebp - 0x2c4], 2
jmp 0x42f9c9
push str.Embedding
push esi
call fcn.0042ab4b
test eax, eax
pop ecx
pop ecx
jne 0x42f5cb
mov dword [ebp - 0x2c4], 3
jmp 0x42f9c9
push str.Install
push esi
call fcn.0042ab4b
test eax, eax
pop ecx
pop ecx
jne 0x42f9c9
lea eax, [ebp - 0x2d4]
push eax
push dword [ebp - 0x2c0]
mov dword [ebp - 0x2c4], 4
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp eax, ebx
mov dword [ebp - 0x2dc], eax
je 0x42f7bc
cmp dword [ebp - 0x2d4], ebx
mov dword [ebp - 0x2c0], ebx
jle 0x42f7bc
mov eax, dword [ebp - 0x2dc]
mov ecx, dword [ebp - 0x2c0]
push dword [eax + ecx*4]
lea ecx, [ebp - 0x230]
call fcn.004041c2
lea eax, [ebp - 0x300]
push eax
lea ecx, [ebp - 0x230]
call fcn.0042c05a
mov esi, eax
lea eax, [ebp - 0x2f8]
push eax
lea ecx, [ebp - 0x230]
call fcn.0041e2eb
mov edi, eax
lea eax, [ebp - 0x2e8]
push eax
lea ecx, [ebp - 0x230]
call fcn.0042c05a
push fcn.0046880e
push dword [esi + 4]
push dword [esi]
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x2f0]
push eax
call fcn.0042c257
add esp, 0x20
push str.pid
lea ecx, [ebp - 0x268]
call fcn.004041c2
push str.dir
lea ecx, [ebp - 0x24c]
call fcn.004041c2
push ebx
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x230]
call fcn.0041d21a
or esi, 0xffffffff
cmp eax, esi
je 0x42f71f
mov ecx, dword [ebp - 0x254]
add ecx, eax
push esi
push ecx
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x230]
call fcn.0041f281
push 1
push 1
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x3bc]
call fcn.0042def9
lea eax, [ebp - 0x2c8]
push eax
lea ecx, [ebp - 0x3bc]
call fcn.0042dd97
lea ecx, [ebp - 0x3bc]
call fcn.0042bbd8
jmp 0x42f766
push ebx
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x230]
call fcn.0041d21a
cmp eax, esi
je 0x42f774
mov ecx, dword [ebp - 0x238]
add ecx, eax
push esi
push ecx
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x230]
call fcn.0041f281
push esi
push ebx
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x2a0]
call fcn.004020ed
push ebx
push 1
lea ecx, [ebp - 0x284]
call fcn.004021c5
push ebx
push 1
lea ecx, [ebp - 0x24c]
call fcn.004021c5
push ebx
push 1
lea ecx, [ebp - 0x268]
call fcn.004021c5
push ebx
push 1
lea ecx, [ebp - 0x230]
call fcn.004021c5
inc dword [ebp - 0x2c0]
mov eax, dword [ebp - 0x2c0]
cmp eax, dword [ebp - 0x2d4]
jl 0x42f61d
mov esi, dword [ebp - 0x2cc]
cmp dword [ebp - 0x2c8], ebx
jne 0x42f9c9
push esi
lea ecx, [ebp - 0x24c]
call fcn.004041c2
push 0x4a89c8
lea ecx, [ebp - 0x268]
call fcn.004041c2
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0042c05a
mov esi, eax
lea eax, [ebp - 0x2e8]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0041e2eb
mov edi, eax
lea eax, [ebp - 0x2f8]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0042c05a
push fcn.0046880e
push dword [esi + 4]
push dword [esi]
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x300]
push eax
call fcn.0042c257
add esp, 0x20
push ebx
push str._pid
lea ecx, [ebp - 0x24c]
call fcn.0042bc5f
or edi, 0xffffffff
cmp eax, edi
je 0x42f9ad
push dword [ebp - 0x238]
lea ecx, [ebp - 0x24c]
push ebx
push 0x4a25a8
call fcn.0042bc5f
push eax
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0041f281
push edi
push ebx
push eax
lea ecx, [ebp - 0x268]
call fcn.004020ed
push ebx
push 1
lea ecx, [ebp - 0x284]
call fcn.004021c5
push ebx
mov esi, 0x4a8ec4
push esi
lea ecx, [ebp - 0x268]
call fcn.0042bc81
cmp eax, edi
je 0x42f8f6
push ebx
push esi
lea ecx, [ebp - 0x268]
call fcn.0042bc81
push eax
push ebx
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x268]
call fcn.0041f281
push edi
push ebx
push eax
lea ecx, [ebp - 0x268]
call fcn.004020ed
push ebx
push 1
lea ecx, [ebp - 0x284]
call fcn.004021c5
cmp dword [ebp - 0x254], ebx
je 0x42f9ad
push 0x4a89c6
lea ecx, [ebp - 0x230]
mov byte [ebp - 0x2d0], 1
call fcn.00403ffe
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x268]
push eax
call fcn.0043e071
push 0x4a25a4
call fcn.00466310
add esp, 0xc
push eax
push ebx
lea ecx, [ebp - 0x230]
call fcn.00402282
mov esi, 0x4a25a0
jmp 0x42f95b
push 1
push eax
lea ecx, [ebp - 0x230]
call fcn.00402282
push ebx
push esi
lea ecx, [ebp - 0x230]
call fcn.0042bbf2
cmp eax, edi
jne 0x42f94d
lea eax, [ebp - 0x230]
push eax
call fcn.004329b0
test al, al
pop ecx
je 0x42f99f
cmp dword [ebp - 0x218], 0x10
mov eax, dword [ebp - 0x22c]
jae 0x42f992
lea eax, [ebp - 0x22c]
push eax
call fcn.00466d76
pop ecx
mov dword [ebp - 0x2c8], eax
push ebx
push 1
lea ecx, [ebp - 0x230]
call fcn.004020a2
push ebx
push 1
lea ecx, [ebp - 0x268]
call fcn.004021c5
push ebx
push 1
lea ecx, [ebp - 0x24c]
call fcn.004021c5
mov esi, dword [ebp - 0x2c4]
xor edi, edi
cmp esi, ebx
jle 0x42fd35
cmp esi, 2
jle 0x42faf7
cmp esi, 3
je 0x42fa56
cmp esi, 4
jne 0x42fd35
push 0x2b4
call fcn.00464a30
cmp eax, ebx
pop ecx
je 0x42fa0a
mov ecx, eax
call fcn.00448bb7
mov esi, eax
jmp 0x42fa0c
xor esi, esi
cmp esi, ebx
je 0x42fa31
mov ecx, esi
call fcn.00448e33
mov ecx, esi
call fcn.004494f8
push dword [ebp - 0x2d0]
mov ecx, esi
push dword [ebp - 0x2c8]
call fcn.004480d6
lea eax, [ebp - 0x2a0]
push eax
push esi
call fcn.0042ee67
cmp esi, ebx
pop ecx
pop ecx
je 0x42fd35
push 1
mov ecx, esi
call fcn.0042b024
jmp 0x42fd35
call fcn.0042af3e
test al, al
je 0x42fa98
lea eax, [ebp - 0x2cc]
push eax
push 0x4a0a40
push 0x4a2098
push 3
push str.wWinMain
push 0x323
push str..DownloadProxy.cpp
mov dword [ebp - 0x2cc], 0x4a2588
call fcn.00412cfd
add esp, 0x1c
call fcn.0042e9ce
lea eax, [ebp - 0x2e0]
push eax
call fcn.0042a649
pop ecx
mov ecx, dword [eax]
call fcn.0042a6cd
mov ecx, dword [ebp - 0x2dc]
cmp ecx, ebx
je 0x42fabb
call fcn.0040ef79
push dword [ebp + 0x14]
mov ecx, 0x4bed20
call fcn.0042c9b6
mov edi, eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.0042a649
pop ecx
mov ecx, dword [eax]
call fcn.0042891c
mov ecx, dword [ebp - 0x2d4]
cmp ecx, ebx
je 0x42faed
call fcn.0040ef79
call fcn.00424bb0
jmp 0x42fd35
push dword [ebp + 0x14]
mov ecx, 0x4bed20
call fcn.0042c9b6
mov edi, eax
lea eax, [ebp - 0x24c]
push ebx
push eax
call fcn.00433789
lea eax, [ebp - 0x284]
push ebx
push eax
call fcn.00433804
push str.DownloadProxyPS.dll
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x2bc]
push eax
call fcn.0040ae6a
push str._bugreport_xf.exe
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x268]
push eax
call fcn.0040ae6a
add esp, 0x28
cmp dword [ebp - 0x238], ebx
je 0x42fcfe
cmp esi, 1
mov eax, dword [ebp - 0x248]
jne 0x42fc4f
cmp dword [ebp - 0x234], 8
jae 0x42fb7d
lea eax, [ebp - 0x248]
push 0x4a2420
push eax
call fcn.00430b8c
cmp dword [ebp - 0x250], 8
mov eax, dword [ebp - 0x264]
pop ecx
pop ecx
jae 0x42fb9f
lea eax, [ebp - 0x264]
push 0x4a2518
push eax
call fcn.00430b8c
pop ecx
pop ecx
push 0x4a2278
lea eax, [ebp - 0x2bc]
push eax
lea eax, [ebp - 0x31c]
push str._s__
push eax
call fcn.0040d493
add esp, 0xc
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.0040ae6a
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x31c]
call fcn.004021c5
cmp dword [ebp - 0x218], 8
mov eax, dword [ebp - 0x22c]
jae 0x42fbff
lea eax, [ebp - 0x22c]
push ebx
push ebx
push eax
push str.regsvr32.exe
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 0x2b4
call fcn.00464a30
cmp eax, ebx
pop ecx
je 0x42fc29
mov ecx, eax
call fcn.00448bb7
mov esi, eax
jmp 0x42fc2b
xor esi, esi
cmp esi, ebx
je 0x42fcf0
mov ecx, esi
call fcn.0044b0e2
mov ecx, esi
call fcn.0044b7bd
push 1
mov ecx, esi
call fcn.0042b024
jmp 0x42fcf0
cmp dword [ebp - 0x234], 8
jae 0x42fc5e
lea eax, [ebp - 0x248]
push 0x4a2420
push eax
call fcn.00430cd1
cmp dword [ebp - 0x250], 8
mov eax, dword [ebp - 0x264]
pop ecx
pop ecx
jae 0x42fc80
lea eax, [ebp - 0x264]
push 0x4a2518
push eax
call fcn.00430cd1
pop ecx
pop ecx
push 0x4a2278
lea eax, [ebp - 0x2bc]
push eax
lea eax, [ebp - 0x338]
push str._u__s__
push eax
call fcn.0040d493
add esp, 0xc
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.0040ae6a
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x338]
call fcn.004021c5
cmp dword [ebp - 0x218], 8
mov eax, dword [ebp - 0x22c]
jae 0x42fce0
lea eax, [ebp - 0x22c]
push ebx
push ebx
push eax
push str.regsvr32.exe
push ebx
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push ebx
push 1
lea ecx, [ebp - 0x230]
call fcn.004021c5
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x268]
call fcn.004021c5
push ebx
push esi
lea ecx, [ebp - 0x2bc]
call fcn.004021c5
push ebx
push esi
lea ecx, [ebp - 0x284]
call fcn.004021c5
push ebx
push esi
lea ecx, [ebp - 0x24c]
call fcn.004021c5
push ebx
push 1
lea ecx, [ebp - 0x2a0]
call fcn.004021c5
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004648e8
leave
ret 0x10