Function at 0x4037a0
Capabilities:
Accept command line arguments
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x499cdf
mov eax, dword fs:[0]
push eax
sub esp, 0x260
mov eax, dword [0x4cc3d0]
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 ebx, ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x264]
mov esi, dword [ebp + 0xc]
push eax
mov dword [ebp - 0x26c], 0
call fcn.00401730
cmp dword [ebp - 0x254], 0
mov dword [ebp - 4], 0
jne 0x40380e
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x264]
call fcn.00404e10
call fcn.004617d0
test al, al
je 0x40386a
push 0
push str.ksoqing:
lea ecx, [ebp - 0x264]
call fcn.00404f80
cmp eax, 0xffffffff
je 0x40386a
push 0
push 0x4a45fc
lea ecx, [ebp - 0x264]
call fcn.00404f80
cmp eax, 0xffffffff
jne 0x40386a
push 0
push str.ksoqing:
lea ecx, [ebp - 0x264]
call fcn.00404f80
push 0xd
push str._qingbangong
push eax
lea ecx, [ebp - 0x264]
call fcn.00405040
mov ecx, dword [ebx]
lea eax, [ebp - 0x264]
push esi
push eax
call fcn.00408240
test eax, eax
jne 0x403885
or esi, 0xffffffff
jmp 0x403df1
mov ecx, ebx
call fcn.00404a60
mov ecx, dword [ebx]
call fcn.00407760
cmp eax, 7
jne 0x40392d
call fcn.0041d440
xor ecx, ecx
mov dword [ebp - 0x230], 0
mov word [ebp - 0x230], cx
lea ecx, [ebp - 0x230]
push eax
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
call fcn.00404e10
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 1
push eax
call fcn.0041e6f0
mov edx, dword [ebp - 0x21c]
add esp, 4
mov byte [ebp - 4], 0
cmp edx, 8
jb 0x403934
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403921
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403e4d
push edx
push ecx
call fcn.00471e9b
add esp, 8
jmp 0x403934
mov ecx, dword [ebx]
call fcn.00407760
mov ecx, dword [ebx]
call fcn.00407760
test eax, eax
je case.0x403a57.0
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00473e20
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4039df
xor eax, eax
mov dword [ebp - 0x230], 0
mov word [ebp - 0x230], ax
lea ecx, [ebp - 0x230]
lea eax, [ebp - 0x218]
mov dword [ebp - 0x220], 0
push eax
mov dword [ebp - 0x21c], 7
call fcn.00404e10
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 2
push eax
mov dword [ebp - 0x26c], 1
call fcn.0041ec00
add esp, 4
mov byte [ebp - 0x265], 1
test eax, eax
je 0x4039e6
mov byte [ebp - 0x265], 0
test byte [ebp - 0x26c], 1
mov dword [ebp - 4], 0
je 0x403a36
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x403a36
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403a2c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403e52
push edx
push ecx
call fcn.00471e9b
add esp, 8
cmp byte [ebp - 0x265], 0
je 0x403a47
or esi, 0xffffffff
jmp 0x403df1
mov ecx, dword [ebx]
call fcn.00407760
cmp eax, 8
ja case.0x403a57.0
jmp dword [eax*4 + 0x403e64]
mov edi, dword [ebx + 0x10]
lea ecx, [ebp - 0x248]
mov esi, dword [ebx]
push str.LanguageID
call fcn.00403330
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x230]
mov ecx, esi
push eax
call fcn.00407bd0
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.004161c0
lea ecx, [ebp - 0x230]
call fcn.004022a0
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0
call fcn.004022a0
mov edi, dword [ebx + 0x10]
lea ecx, [ebp - 0x248]
mov esi, dword [ebx]
push str.UpPower
call fcn.00403330
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 5
push eax
mov ecx, esi
call fcn.00407c80
push eax
mov ecx, edi
call fcn.004154d0
lea ecx, [ebp - 0x248]
mov esi, eax
call fcn.004022a0
jmp 0x403df1
mov ecx, dword [ebx + 0x10]
call fcn.00416440
mov esi, eax
jmp 0x403df1
mov ecx, dword [ebx + 0x10]
call fcn.00415ee0
mov esi, eax
jmp 0x403df1
mov ecx, dword [ebx + 0x10]
call fcn.00414ef0
mov esi, eax
jmp 0x403df1
mov ecx, ebx
call fcn.00403e90
mov esi, eax
jmp 0x403df1
lea eax, [ebp - 0x228]
mov dword [ebx + 4], 1
push eax
mov dword [ebp - 0x228], 0x4a45d0
mov dword [ebp - 0x224], 0x4045c0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
call dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherW]
test eax, eax
je 0x403b75
xor esi, esi
jmp 0x403df1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
shl esi, 0x10
or esi, 7
jmp 0x403df1
mov ecx, dword [ebx + 0x10]
call fcn.00416560
mov esi, eax
jmp 0x403df1
lea ecx, [ebp - 0x265]
call fcn.004238d0
lea ecx, [ebp - 0x265]
call fcn.00409ce0
cmp byte [ebx + 0x20], 0
je 0x403bce
call fcn.00423fa0
lea ecx, [ebp - 0x265]
call fcn.004238a0
lea ecx, [ebp - 0x265]
call fcn.00409ce0
push str.TD_WPS_EXEC_HOST
lea ecx, [ebp - 0x248]
mov dword [ebx + 4], 2
call fcn.00403330
mov ecx, dword [ebx]
lea eax, [ebp - 0x224]
push eax
mov byte [ebp - 4], 6
call fcn.00407240
mov esi, dword [ebp - 0x224]
mov edi, dword [ebp - 0x220]
mov byte [ebp - 4], 7
cmp esi, edi
je 0x403c61
jmp 0x403c10
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x403c1a
mov eax, dword [esi]
cmp dword [esi + 0x10], 0xb
jne 0x403c34
push 0xb
push str._triggerdot
push eax
call fcn.00404f20
add esp, 0xc
test eax, eax
je 0x403c3d
add esi, 0x18
cmp esi, edi
jne 0x403c10
jmp 0x403c61
cmp esi, edi
je 0x403c61
mov edx, dword [ebx + 0x28]
cmp dword [ebp - 0x234], 8
mov eax, dword [edx]
mov ecx, dword [eax + 0x40]
lea eax, [ebp - 0x248]
cmovae eax, dword [ebp - 0x248]
push eax
push edx
call ecx
lea ecx, [ebp - 0x224]
call fcn.00403660
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0
call fcn.004022a0
mov esi, dword [ebx]
lea ecx, [ebp - 0x230]
xor eax, eax
mov dword [ebp - 0x230], 0
push 0x4a4680
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
call fcn.00404e10
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 8
push eax
mov ecx, esi
call fcn.00407c80
mov edx, dword [ebp - 0x21c]
mov esi, eax
mov byte [ebp - 4], 0
cmp edx, 8
jb 0x403d0c
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403d02
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403e57
push edx
push ecx
call fcn.00471e9b
add esp, 8
xor eax, eax
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
mov eax, dword [ebx]
mov dword [ebp - 0x21c], 7
push eax
test esi, esi
je 0x403d3f
mov ecx, dword [ebx + 0xc]
call fcn.0040c220
mov esi, eax
jmp 0x403df1
mov ecx, dword [ebx + 8]
call fcn.0040b910
mov esi, eax
test si, si
jne 0x403df1
mov ecx, dword [ebx + 8]
call fcn.0040b470
test eax, eax
jne 0x403d6a
mov ecx, dword [ebx + 8]
call fcn.00405de0
test eax, eax
je 0x403d7a
mov ecx, dword [ebx + 0x10]
call fcn.00416230
mov ecx, dword [ebx + 0x14]
call fcn.00411450
mov ecx, ebx
call fcn.00404340
mov esi, eax
test esi, esi
jne 0x403dda
cmp dword [ebx + 4], 1
jne 0x403dd2
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
push eax
push eax
push eax
lea eax, [ebp - 0x24c]
push eax
call edi
test eax, eax
jle 0x403dda
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [ebp - 0x24c]
push eax
call edi
test eax, eax
jg 0x403da3
jmp 0x403dda
mov ecx, dword [ebx + 8]
call fcn.0040d7e0
mov ecx, dword [ebx + 0x14]
call fcn.00411aa0
mov ecx, dword [ebx + 0x18]
call fcn.004132f0
jmp 0x403df1
mov esi, 1
mov edx, dword [ebp - 0x250]
cmp edx, 8
jb 0x403e2d
mov ecx, dword [ebp - 0x264]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403e23
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x403e5c
push edx
push ecx
call fcn.00471e9b
add esp, 8
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.00472108
mov esp, ebp
pop ebp
ret 8
call fcn.0047d41e
call fcn.0047d41e
call fcn.0047d41e
call fcn.0047d41e
lea ecx, [ecx]
in al, dx
cmp eax, 992870464
inc eax
add byte [esi + 0x3a], bl
inc eax
add bl, dh
cmp al, byte [eax]
add bh, byte [ebx]
inc eax
add byte [ecx], dl
cmp eax, dword [eax]
and byte [ebx], bh
inc eax
add byte [edi - 0x77ffbfc5], dl
cmp eax, dword [eax]
int3