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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49582f
mov eax, dword fs:[0]
push eax
sub esp, 0x260
mov eax, dword [0x4c63ac]
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.00461100
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 0x49f5fc
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.0041d260
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.0041e510
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.0046d9fd
add esp, 8
jmp 0x403934
mov ecx, dword [ebx]
call fcn.00407760
mov ecx, dword [ebx]
call fcn.00407760
test eax, eax
je case.0x403a59.0
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.0046f980
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 0x4039e1
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 0
push eax
mov dword [ebp - 0x26c], 1
call fcn.0041ea20
add esp, 8
mov byte [ebp - 0x265], 1
test eax, eax
je 0x4039e8
mov byte [ebp - 0x265], 0
test byte [ebp - 0x26c], 1
mov dword [ebp - 4], 0
je 0x403a38
mov edx, dword [ebp - 0x21c]
cmp edx, 8
jb 0x403a38
mov ecx, dword [ebp - 0x230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x403a2e
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.0046d9fd
add esp, 8
cmp byte [ebp - 0x265], 0
je 0x403a49
or esi, 0xffffffff
jmp 0x403df1
mov ecx, dword [ebx]
call fcn.00407760
cmp eax, 8
ja case.0x403a59.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.00415fe0
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.004152f0
lea ecx, [ebp - 0x248]
mov esi, eax
call fcn.004022a0
jmp 0x403df1
mov ecx, dword [ebx + 0x10]
call fcn.00416260
mov esi, eax
jmp 0x403df1
mov ecx, dword [ebx + 0x10]
call fcn.00415d00
mov esi, eax
jmp 0x403df1
mov ecx, dword [ebx + 0x10]
call fcn.00414d10
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], 0x49f5d0
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 0x403b77
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.00416380
mov esi, eax
jmp 0x403df1
lea ecx, [ebp - 0x265]
call fcn.004236e0
lea ecx, [ebp - 0x265]
call fcn.00409c90
cmp byte [ebx + 0x20], 0
je 0x403bd0
call fcn.00423d90
lea ecx, [ebp - 0x265]
call fcn.004236b0
lea ecx, [ebp - 0x265]
call fcn.00409c90
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
lea ecx, [ecx]
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 0x49f680
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.0046d9fd
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.0040c240
mov esi, eax
jmp 0x403df1
mov ecx, dword [ebx + 8]
call fcn.0040b8c0
mov esi, eax
test si, si
jne 0x403df1
mov ecx, dword [ebx + 8]
call fcn.0040b420
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.00416050
mov ecx, dword [ebx + 0x14]
call fcn.00411280
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.0040d8b0
mov ecx, dword [ebx + 0x14]
call fcn.004118d0
mov ecx, dword [ebx + 0x18]
call fcn.00413120
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.0046d9fd
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.0046dc6a
mov esp, ebp
pop ebp
ret 8
call fcn.00478f8e
call fcn.00478f8e
call fcn.00478f8e
call fcn.00478f8e
lea ecx, [ecx]
in al, dx
cmp eax, 993001536
inc eax
add byte [eax + 0x3a], ah
inc eax
add ch, dh
cmp al, byte [eax]
add al, 0x3b
inc eax
add byte [ebx], dl
cmp eax, dword [eax]
and bh, byte [ebx]
inc eax
add byte [ecx - 0x75ffbfc5], bl
cmp eax, dword [eax]
int3