Function at 0x42f7db
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.0042b063
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.004024d0
push 0x206
lea eax, [ebp - 0x212]
push ebx
push eax
mov word [ebp - 0x214], bx
call fcn.004665b0
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 0x4a2470
push 3
push str.wWinMain
push 0x26f
push str..DownloadProxy.cpp
call fcn.00415a41
mov esi, 0x4a2648
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.0042adc6
mov esi, eax
add esp, 0x28
cmp esi, ebx
mov dword [ebp - 0x2cc], esi
je 0x42fd12
push str.RegServer
push esi
call fcn.0042ae09
test eax, eax
pop ecx
pop ecx
jne 0x42f8d4
mov dword [ebp - 0x2c4], 1
jmp 0x42fd12
push str.UnregServer
push esi
call fcn.0042ae09
test eax, eax
pop ecx
pop ecx
jne 0x42f8f4
mov dword [ebp - 0x2c4], 2
jmp 0x42fd12
push str.Embedding
push esi
call fcn.0042ae09
test eax, eax
pop ecx
pop ecx
jne 0x42f914
mov dword [ebp - 0x2c4], 3
jmp 0x42fd12
push str.Install
push esi
call fcn.0042ae09
test eax, eax
pop ecx
pop ecx
jne 0x42fd12
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 0x42fb05
cmp dword [ebp - 0x2d4], ebx
mov dword [ebp - 0x2c0], ebx
jle 0x42fb05
mov eax, dword [ebp - 0x2dc]
mov ecx, dword [ebp - 0x2c0]
push dword [eax + ecx*4]
lea ecx, [ebp - 0x230]
call fcn.004041de
lea eax, [ebp - 0x300]
push eax
lea ecx, [ebp - 0x230]
call fcn.0042c3a6
mov esi, eax
lea eax, [ebp - 0x2f8]
push eax
lea ecx, [ebp - 0x230]
call fcn.0041e6fa
mov edi, eax
lea eax, [ebp - 0x2e8]
push eax
lea ecx, [ebp - 0x230]
call fcn.0042c3a6
push fcn.004689be
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.0042c5a3
add esp, 0x20
push str.pid
lea ecx, [ebp - 0x268]
call fcn.004041de
push str.dir
lea ecx, [ebp - 0x24c]
call fcn.004041de
push ebx
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x230]
call fcn.0041d618
or esi, 0xffffffff
cmp eax, esi
je 0x42fa68
mov ecx, dword [ebp - 0x254]
add ecx, eax
push esi
push ecx
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x230]
call fcn.0041f6b8
push 1
push 1
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x3bc]
call fcn.0042e242
lea eax, [ebp - 0x2c8]
push eax
lea ecx, [ebp - 0x3bc]
call fcn.0042e0e0
lea ecx, [ebp - 0x3bc]
call fcn.0042bf24
jmp 0x42faaf
push ebx
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x230]
call fcn.0041d618
cmp eax, esi
je 0x42fabd
mov ecx, dword [ebp - 0x238]
add ecx, eax
push esi
push ecx
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x230]
call fcn.0041f6b8
push esi
push ebx
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x2a0]
call fcn.00402109
push ebx
push 1
lea ecx, [ebp - 0x284]
call fcn.004021e1
push ebx
push 1
lea ecx, [ebp - 0x24c]
call fcn.004021e1
push ebx
push 1
lea ecx, [ebp - 0x268]
call fcn.004021e1
push ebx
push 1
lea ecx, [ebp - 0x230]
call fcn.004021e1
inc dword [ebp - 0x2c0]
mov eax, dword [ebp - 0x2c0]
cmp eax, dword [ebp - 0x2d4]
jl 0x42f966
mov esi, dword [ebp - 0x2cc]
cmp dword [ebp - 0x2c8], ebx
jne 0x42fd12
push esi
lea ecx, [ebp - 0x24c]
call fcn.004041de
push 0x4a8d80
lea ecx, [ebp - 0x268]
call fcn.004041de
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0042c3a6
mov esi, eax
lea eax, [ebp - 0x2e8]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0041e6fa
mov edi, eax
lea eax, [ebp - 0x2f8]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0042c3a6
push fcn.004689be
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.0042c5a3
add esp, 0x20
push ebx
push str._pid
lea ecx, [ebp - 0x24c]
call fcn.0042bfab
or edi, 0xffffffff
cmp eax, edi
je 0x42fcf6
push dword [ebp - 0x238]
lea ecx, [ebp - 0x24c]
push ebx
push 0x4a2970
call fcn.0042bfab
push eax
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x24c]
call fcn.0041f6b8
push edi
push ebx
push eax
lea ecx, [ebp - 0x268]
call fcn.00402109
push ebx
push 1
lea ecx, [ebp - 0x284]
call fcn.004021e1
push ebx
mov esi, 0x4a927c
push esi
lea ecx, [ebp - 0x268]
call fcn.0042bfcd
cmp eax, edi
je 0x42fc3f
push ebx
push esi
lea ecx, [ebp - 0x268]
call fcn.0042bfcd
push eax
push ebx
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x268]
call fcn.0041f6b8
push edi
push ebx
push eax
lea ecx, [ebp - 0x268]
call fcn.00402109
push ebx
push 1
lea ecx, [ebp - 0x284]
call fcn.004021e1
cmp dword [ebp - 0x254], ebx
je 0x42fcf6
push 0x4a8d7e
lea ecx, [ebp - 0x230]
mov byte [ebp - 0x2d0], 1
call fcn.0040401a
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x268]
push eax
call fcn.0043e1ed
push 0x4a296c
call fcn.004664c0
add esp, 0xc
push eax
push ebx
lea ecx, [ebp - 0x230]
call fcn.0040229e
mov esi, 0x4a2968
jmp 0x42fca4
push 1
push eax
lea ecx, [ebp - 0x230]
call fcn.0040229e
push ebx
push esi
lea ecx, [ebp - 0x230]
call fcn.0042bf3e
cmp eax, edi
jne 0x42fc96
lea eax, [ebp - 0x230]
push eax
call fcn.00432cbe
test al, al
pop ecx
je 0x42fce8
cmp dword [ebp - 0x218], 0x10
mov eax, dword [ebp - 0x22c]
jae 0x42fcdb
lea eax, [ebp - 0x22c]
push eax
call fcn.00466f26
pop ecx
mov dword [ebp - 0x2c8], eax
push ebx
push 1
lea ecx, [ebp - 0x230]
call fcn.004020be
push ebx
push 1
lea ecx, [ebp - 0x268]
call fcn.004021e1
push ebx
push 1
lea ecx, [ebp - 0x24c]
call fcn.004021e1
mov esi, dword [ebp - 0x2c4]
xor edi, edi
cmp esi, ebx
jle 0x43007e
cmp esi, 2
jle 0x42fe40
cmp esi, 3
je 0x42fd9f
cmp esi, 4
jne 0x43007e
push 0x2b4
call fcn.00464be3
cmp eax, ebx
pop ecx
je 0x42fd53
mov ecx, eax
call fcn.00448ccf
mov esi, eax
jmp 0x42fd55
xor esi, esi
cmp esi, ebx
je 0x42fd7a
mov ecx, esi
call fcn.00448f4b
mov ecx, esi
call fcn.00449610
push dword [ebp - 0x2d0]
mov ecx, esi
push dword [ebp - 0x2c8]
call fcn.004481ee
lea eax, [ebp - 0x2a0]
push eax
push esi
call fcn.0042f1b0
cmp esi, ebx
pop ecx
pop ecx
je 0x43007e
push 1
mov ecx, esi
call fcn.0042b2e2
jmp 0x43007e
call fcn.0042b1fc
test al, al
je 0x42fde1
lea eax, [ebp - 0x2cc]
push eax
push 0x4a0a50
push 0x4a2470
push 3
push str.wWinMain
push 0x323
push str..DownloadProxy.cpp
mov dword [ebp - 0x2cc], 0x4a2950
call fcn.00412edc
add esp, 0x1c
call fcn.0042ed17
lea eax, [ebp - 0x2e0]
push eax
call fcn.0042a907
pop ecx
mov ecx, dword [eax]
call fcn.0042a98b
mov ecx, dword [ebp - 0x2dc]
cmp ecx, ebx
je 0x42fe04
call fcn.0040f0ef
push dword [ebp + 0x14]
mov ecx, 0x4bed20
call fcn.0042cd02
mov edi, eax
lea eax, [ebp - 0x2d8]
push eax
call fcn.0042a907
pop ecx
mov ecx, dword [eax]
call fcn.00428baa
mov ecx, dword [ebp - 0x2d4]
cmp ecx, ebx
je 0x42fe36
call fcn.0040f0ef
call fcn.00424f31
jmp 0x43007e
push dword [ebp + 0x14]
mov ecx, 0x4bed20
call fcn.0042cd02
mov edi, eax
lea eax, [ebp - 0x24c]
push ebx
push eax
call fcn.00433a97
lea eax, [ebp - 0x284]
push ebx
push eax
call fcn.00433b12
push str.DownloadProxyPS.dll
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x2bc]
push eax
call fcn.0040afe9
push str._bugreport_xf.exe
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x268]
push eax
call fcn.0040afe9
add esp, 0x28
cmp dword [ebp - 0x238], ebx
je 0x430047
cmp esi, 1
mov eax, dword [ebp - 0x248]
jne 0x42ff98
cmp dword [ebp - 0x234], 8
jae 0x42fec6
lea eax, [ebp - 0x248]
push 0x4a27e8
push eax
call fcn.00430e9a
cmp dword [ebp - 0x250], 8
mov eax, dword [ebp - 0x264]
pop ecx
pop ecx
jae 0x42fee8
lea eax, [ebp - 0x264]
push 0x4a28e0
push eax
call fcn.00430e9a
pop ecx
pop ecx
push 0x4a2650
lea eax, [ebp - 0x2bc]
push eax
lea eax, [ebp - 0x31c]
push str._s__
push eax
call fcn.0040d605
add esp, 0xc
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.0040afe9
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x31c]
call fcn.004021e1
cmp dword [ebp - 0x218], 8
mov eax, dword [ebp - 0x22c]
jae 0x42ff48
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.00464be3
cmp eax, ebx
pop ecx
je 0x42ff72
mov ecx, eax
call fcn.00448ccf
mov esi, eax
jmp 0x42ff74
xor esi, esi
cmp esi, ebx
je 0x430039
mov ecx, esi
call fcn.0044b1fa
mov ecx, esi
call fcn.0044b8d5
push 1
mov ecx, esi
call fcn.0042b2e2
jmp 0x430039
cmp dword [ebp - 0x234], 8
jae 0x42ffa7
lea eax, [ebp - 0x248]
push 0x4a27e8
push eax
call fcn.00430fdf
cmp dword [ebp - 0x250], 8
mov eax, dword [ebp - 0x264]
pop ecx
pop ecx
jae 0x42ffc9
lea eax, [ebp - 0x264]
push 0x4a28e0
push eax
call fcn.00430fdf
pop ecx
pop ecx
push 0x4a2650
lea eax, [ebp - 0x2bc]
push eax
lea eax, [ebp - 0x338]
push str._u__s__
push eax
call fcn.0040d605
add esp, 0xc
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.0040afe9
add esp, 0xc
push ebx
push 1
lea ecx, [ebp - 0x338]
call fcn.004021e1
cmp dword [ebp - 0x218], 8
mov eax, dword [ebp - 0x22c]
jae 0x430029
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.004021e1
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x268]
call fcn.004021e1
push ebx
push esi
lea ecx, [ebp - 0x2bc]
call fcn.004021e1
push ebx
push esi
lea ecx, [ebp - 0x284]
call fcn.004021e1
push ebx
push esi
lea ecx, [ebp - 0x24c]
call fcn.004021e1
push ebx
push 1
lea ecx, [ebp - 0x2a0]
call fcn.004021e1
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00464a9b
leave
ret 0x10