Function at 0x404970
Capabilities:
Create thread
Initialize winsock library
Print debug messages
Query environment variable

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x2c4
push ebx
push ebp
push esi
mov esi, dword [sym.imp.MSVCRT.dll___p___argc]
push edi
push eax
call esi
mov ecx, dword [eax]
push ecx
push str.Enter_SinforPromte:_d__s
call fcn.004016e0
add esp, 0xc
call esi
cmp dword [eax], 2
jle 0x4049f7
call esi
mov ecx, dword [eax]
mov esi, dword [sym.imp.MSVCRT.dll___p___argv]
cmp ecx, 3
jl 0x4049e1
push 0x409780
call esi
mov edx, dword [eax]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4049e1
call esi
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push edx
call fcn.00405b30
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c4
ret 0x10
call esi
mov eax, dword [eax]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov dword [0x408878], eax
call fcn.00404910
test eax, eax
mov ebp, 1
jne 0x404a29
cmp dword [0x408878], ebp
jne 0x404a29
push 0x409754
call fcn.004016e0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c4
ret 0x10
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x41]
mov byte [esp + 0x40], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0x40]
push 0x104
push edx
push str._ProgramFiles_SinforSSLPromotePromote.log
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
test eax, eax
je 0x404d82
mov ebx, dword [sym.imp.KERNEL32.dll_CreateThread]
xor eax, eax
push eax
push eax
push eax
mov ecx, 0x41
mov edi, 0x409b00
push 0x402e60
push eax
push eax
rep stosd dword es:[edi], eax
call ebx
cmp eax, 0xffffffff
je 0x404a87
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x408878], ebp
jne 0x404add
push str.GlobalSinforExeExist
push 0
push ebp
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
test eax, eax
mov dword [0x409d1c], eax
je 0x404d82
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 0xb7
je 0x404ac2
call esi
cmp eax, 5
jne 0x404add
mov eax, dword [0x409d1c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c4
ret 0x10
mov esi, dword [esp + 0x2d8]
mov edi, dword [sym.imp.USER32.dll_LoadStringA]
push 0x64
push 0x409c24
push 0x67
push esi
call edi
push 0x64
push 0x409c88
push 0x6d
push esi
call edi
push esi
call fcn.00404da0
mov ecx, 0x64
xor eax, eax
lea edi, [esp + 0x148]
add esp, 4
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x144]
push ecx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x404d82
push eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edx, dword [esp + 0x2e4]
push edx
push esi
call fcn.00404e30
add esp, 8
test eax, eax
jne 0x404b6c
push str.SuperExe_InitInstance_Failed__n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c4
ret 0x10
cmp dword [0x408878], ebp
jne 0x404b8e
push 0
push 0
push 0
push 0x402df0
push 0
push 0
call ebx
cmp eax, 0xffffffff
je 0x404d82
push 0x6d
push esi
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov ecx, dword [0x409c0c]
mov dword [esp + 0x10], eax
mov eax, dword [0x409c10]
mov edx, eax
cmp eax, edx
je 0x404bbf
mov esi, dword [eax]
add eax, 4
mov dword [ecx], esi
add ecx, 4
cmp eax, edx
jne 0x404bac
mov eax, dword [0x409c10]
mov dword [esp + 0x14], eax
mov al, byte [0x408874]
test al, al
mov dword [0x409c10], ecx
je 0x404c2c
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
lea eax, [esp + 0x2c]
push 0
push eax
call esi
test eax, eax
je 0x404c27
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x24]
push ecx
push edx
push eax
call edi
test eax, eax
jne 0x404c1e
lea ecx, [esp + 0x24]
push ecx
call ebx
lea edx, [esp + 0x24]
push edx
call ebp
mov al, byte [0x408874]
test al, al
jne 0x404bea
mov ebp, 1
cmp dword [0x408878], ebp
jne 0x404c7b
lea ecx, [esp + 0x18]
call fcn.00401780
lea ecx, [esp + 0x18]
call fcn.00402490
test eax, eax
jne 0x404c51
push str._SinforPromote_
jmp 0x404c56
push str._SinforPromote
call fcn.004016e0
add esp, 4
call fcn.00402ff0
push 0x40968c
call fcn.004016e0
add esp, 4
lea ecx, [esp + 0x18]
call fcn.00401800
jmp 0x404c88
push 0x409674
call fcn.004016e0
add esp, 4
mov esi, dword [0x409c0c]
mov eax, dword [0x409c10]
mov edi, dword [sym.imp.WS2_32.dll_closesocket]
cmp esi, eax
je 0x404cc3
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x404cbc
push ecx
push str._closesocket_socket___d
call fcn.004016e0
mov eax, dword [esi]
add esp, 8
push eax
call edi
mov eax, dword [0x409c10]
add esi, 4
cmp esi, eax
jne 0x404c9d
mov ecx, dword [0x409c0c]
mov edx, eax
cmp eax, edx
je 0x404ce2
mov esi, dword [eax]
add eax, 4
mov dword [ecx], esi
add ecx, 4
cmp eax, edx
jne 0x404ccf
mov eax, dword [0x409c10]
mov dword [esp + 0x14], eax
mov eax, dword [0x409c1c]
cmp eax, 0xffffffff
mov dword [0x409c10], ecx
je 0x404d03
push eax
call edi
mov dword [0x409c1c], 0xffffffff
mov ecx, 0x41
xor eax, eax
mov edi, 0x409b00
rep stosd dword es:[edi], eax
mov eax, dword [0x409cf0]
test eax, eax
je 0x404d21
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [0x409d1c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call esi
mov eax, dword [0x409cec]
test eax, eax
je 0x404d3c
push eax
call esi
mov eax, dword [0x409cf0]
test eax, eax
je 0x404d48
push eax
call esi
call dword [sym.imp.ole32.dll_CoUninitialize]
push str._________
call fcn.004016e0
add esp, 4
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0x409624
call fcn.004016e0
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x409608
call fcn.004016e0
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c4
ret 0x10