Function at 0x40b3a0
Capabilities:
Accept command line arguments
Extract resource via kernel32 functions
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x624410
mov eax, dword fs:[0]
push eax
sub esp, 0x320
mov eax, dword [0x6ba4f8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x32c]
mov dword [ebp - 0x31c], 0
call fcn.00412f6c
xor eax, eax
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
lea eax, [ebp - 0x260]
push str.SOFT_NAME_EN
push eax
mov dword [ebp - 0x21c], 7
call fcn.00416db0
add esp, 8
lea ecx, [ebp - 0x230]
push eax
call fcn.0040be70
mov edx, dword [ebp - 0x24c]
cmp edx, 8
jb 0x40b463
mov ecx, dword [ebp - 0x260]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b459
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bbe6
push edx
push ecx
call fcn.005100a2
add esp, 8
xor eax, eax
mov dword [ebp - 0x250], 0
mov word [ebp - 0x260], ax
lea eax, [ebp - 0x278]
push str.SOFT_COMPANY_NAME_EN
push eax
mov dword [ebp - 0x24c], 7
call fcn.00416db0
add esp, 8
lea ecx, [ebp - 0x230]
push eax
call fcn.0040be70
mov edx, dword [ebp - 0x264]
cmp edx, 8
jb 0x40b4e0
mov ecx, dword [ebp - 0x278]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b4d6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bbeb
push edx
push ecx
call fcn.005100a2
add esp, 8
xor eax, eax
mov dword [ebp - 0x268], 0
mov word [ebp - 0x278], ax
lea eax, [ebp - 0x290]
push str.SOFT_POPMGR_LINK_NAME
push eax
mov dword [ebp - 0x264], 7
call fcn.00416db0
add esp, 8
lea ecx, [ebp - 0x230]
push eax
call fcn.0040be70
mov edx, dword [ebp - 0x27c]
cmp edx, 8
jb 0x40b55d
mov ecx, dword [ebp - 0x290]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b553
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bbf0
push edx
push ecx
call fcn.005100a2
add esp, 8
xor eax, eax
mov dword [ebp - 0x280], 0
cmp dword [ebp - 0x21c], 8
lea ecx, [ebp - 0x324]
mov word [ebp - 0x290], ax
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
mov dword [ebp - 0x27c], 7
call fcn.00421df6
lea ecx, [ebp - 0x324]
call fcn.00413ff6
test eax, eax
je 0x40b5b3
mov esi, 1
jmp 0x40bb57
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jns 0x40b5c6
xor esi, esi
jmp 0x40bb57
lea ecx, [ebp - 0x310]
call fcn.00412f6c
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x310]
call fcn.00413694
call fcn.0042241b
push 0x1388
sub esp, 0x18
mov ecx, esp
push str.SoftResHaoKanWP
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
call fcn.00408ca0
mov esi, dword [0x6ca094]
test esi, esi
jne 0x40b67c
push 0x6ca0cc
call fcn.004c75c4
add esp, 4
test eax, eax
je 0x40b631
push eax
call fcn.004c7df4
add esp, 4
mov esi, dword [0x6ca094]
test esi, esi
jne 0x40b654
push 0x18
call fcn.0050fcf7
add esp, 4
mov ecx, eax
call fcn.00416348
mov esi, eax
mov dword [0x6ca094], esi
push 0x6ca0cc
mov dword [ebp - 4], 0
call fcn.004c75e9
add esp, 4
test eax, eax
je 0x40b675
push eax
call fcn.004c7df4
add esp, 4
mov dword [ebp - 4], 0xffffffff
push edi
mov ecx, esi
call fcn.00416e4c
mov esi, dword [0x6c9fe0]
test esi, esi
jne 0x40b6f3
push 0x6c9f4c
call fcn.004c75c4
add esp, 4
test eax, eax
je 0x40b6a8
push eax
call fcn.004c7df4
add esp, 4
mov esi, dword [0x6c9fe0]
test esi, esi
jne 0x40b6cb
push 0x3c
call fcn.0050fcf7
add esp, 4
mov ecx, eax
call fcn.0041a5ad
mov esi, eax
mov dword [0x6c9fe0], esi
push 0x6c9f4c
mov dword [ebp - 4], 1
call fcn.004c75e9
add esp, 4
test eax, eax
je 0x40b6ec
push eax
call fcn.004c7df4
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0
push 0
mov ecx, esi
call fcn.0041aea9
push 0
push 0
push edi
call fcn.00406370
mov ecx, eax
call fcn.00413ffd
push 9
call fcn.00422355
add esp, 4
call fcn.0040a9e0
lea eax, [ebp - 0x248]
push eax
call fcn.00406430
mov ecx, eax
call fcn.0042125e
cmp dword [ebp - 0x238], 0
ja 0x40b7a2
lea eax, [ebp - 0x2c0]
push eax
call fcn.00406370
mov ecx, eax
call fcn.00413fa5
cmp dword [eax + 0x14], 8
jb 0x40b755
mov eax, dword [eax]
push eax
call fcn.00406430
mov ecx, eax
call fcn.0042186a
mov edx, dword [ebp - 0x2ac]
cmp edx, 8
jb 0x40b7a2
mov ecx, dword [ebp - 0x2c0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b798
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bbf5
push edx
push ecx
call fcn.005100a2
add esp, 8
lea eax, [ebp - 0x2d8]
push str.CMD_SMALLPKG_INST
push eax
call fcn.00416bc6
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x40b7be
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x310]
call fcn.00413be2
movzx eax, al
push eax
call fcn.00406430
mov ecx, eax
call fcn.00421b36
mov edx, dword [ebp - 0x2c4]
cmp edx, 8
jb 0x40b81a
mov ecx, dword [ebp - 0x2d8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b810
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bbfa
push edx
push ecx
call fcn.005100a2
add esp, 8
lea eax, [ebp - 0x2f0]
mov ebx, 1
push str.CMD_SILENCE_INSTALLED
push eax
call fcn.00416bc6
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x40b83b
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x310]
call fcn.00413be2
test al, al
jne 0x40b87c
lea eax, [ebp - 0x2a8]
mov ebx, 3
push str.CMD_FORCE_INSTALL
push eax
call fcn.00416bc6
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x40b86c
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x310]
call fcn.00413be2
test al, al
je 0x40b87e
mov al, 1
push eax
call fcn.00406430
mov ecx, eax
call fcn.00421b29
test bl, 2
je 0x40b8ed
mov edx, dword [ebp - 0x294]
cmp edx, 8
jb 0x40b8d0
mov ecx, dword [ebp - 0x2a8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b8c6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bbff
push edx
push ecx
call fcn.005100a2
add esp, 8
xor eax, eax
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 7
mov word [ebp - 0x2a8], ax
mov edx, dword [ebp - 0x2dc]
cmp edx, 8
jb 0x40b92d
mov ecx, dword [ebp - 0x2f0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b923
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bc04
push edx
push ecx
call fcn.005100a2
add esp, 8
call fcn.00406430
mov ecx, eax
call fcn.004217e3
test al, al
je 0x40b9b4
lea eax, [ebp - 0x308]
push str.CMD_QUDAO_ID
push eax
call fcn.00416bc6
add esp, 8
cmp dword [eax + 0x14], 8
jb 0x40b959
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x310]
call fcn.0041316c
push eax
call fcn.00406430
mov ecx, eax
call fcn.00421a99
mov edx, dword [ebp - 0x2f4]
cmp edx, 8
jb 0x40b9c0
mov ecx, dword [ebp - 0x308]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40b9a8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bc09
push edx
push ecx
call fcn.005100a2
add esp, 8
jmp 0x40b9c0
call fcn.00406430
mov ecx, eax
call fcn.00421178
call fcn.00406430
mov ecx, eax
call fcn.004217df
test al, al
je 0x40b9e8
lea eax, [ebp - 0x310]
push eax
call fcn.0040bc20
mov ecx, eax
call fcn.00404f30
jmp 0x40ba7b
sub esp, 0xc
call fcn.00411040
test eax, eax
jne 0x40ba63
push edi
call fcn.00436580
add esp, 4
push 4
call fcn.004369b0
add esp, 4
push 0x6a61b8
push 0x84
call fcn.0042e600
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x40ba65
push esi
call fcn.0042e600
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
test edi, edi
je 0x40ba5a
push esi
call fcn.0042e600
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
test eax, eax
je 0x40ba5a
push 0
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LockResource]
push eax
call fcn.004369c0
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x40ba65
js 0x40ba7b
call fcn.004112b0
mov ecx, dword [0x6c9fd4]
test ecx, ecx
je 0x40ba7b
mov eax, dword [ecx]
push 1
call dword [eax + 0x14]
call fcn.004223ca
lea eax, [ebp - 0x318]
push eax
push 0xf003f
push 0
push 0x6a5770
push reloc.gdiplus.dll_Ordinal_1
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40bae4
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x40bae4
push 4
lea eax, [ebp - 0x314]
mov dword [ebp - 0x314], 1
push eax
push 4
push 0
lea eax, [ebp - 0x218]
push eax
push dword [ebp - 0x318]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov edx, dword [ebp - 0x234]
mov esi, 1
cmp edx, 8
jb 0x40bb2f
mov ecx, dword [ebp - 0x248]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bb25
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bc0e
push edx
push ecx
call fcn.005100a2
add esp, 8
xor eax, eax
mov dword [ebp - 0x238], 0
lea ecx, [ebp - 0x310]
mov dword [ebp - 0x234], 7
mov word [ebp - 0x248], ax
call fcn.00412fbf
lea ecx, [ebp - 0x324]
call fcn.00421e0b
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x40bb9e
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40bb94
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40bc13
push edx
push ecx
call fcn.005100a2
add esp, 8
xor eax, eax
mov dword [ebp - 0x220], 0
lea ecx, [ebp - 0x32c]
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.00412fbf
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0050fa22
mov esp, ebp
pop ebp
ret 0x10
call fcn.0052ec30
call fcn.0052ec30
call fcn.0052ec30
call fcn.0052ec30
call fcn.0052ec30
call fcn.0052ec30
call fcn.0052ec30
call fcn.0052ec30
call fcn.0052ec30
call fcn.0052ec30
int3