Function at 0x401020
Capabilities:
Check if file exists
Check mutex on windows
Create process on windows
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45daa6
mov eax, dword fs:[0]
push eax
sub esp, 0x4c0
mov eax, dword [0x474cb0]
xor eax, esp
mov dword [esp + 0x4b8], eax
push ebx
push esi
push edi
mov eax, dword [0x474cb0]
xor eax, esp
push eax
lea eax, [esp + 0x4d0]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
push section..text
call fcn.0044655f
add esp, 4
push section..text
call fcn.004465e6
add esp, 4
push esi
call fcn.0041b269
add esp, 4
push 0x468500
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x4773a8], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4010f1
push 0x468500
push 0
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
test esi, esi
je 0x4013b8
push esi
call dword [sym.imp.USER32.dll_GetLastActivePopup]
push esi
mov edi, eax
call dword [sym.imp.USER32.dll_IsIconic]
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
test eax, eax
je 0x4010e0
push 9
push esi
call ebx
push 5
push esi
call ebx
push edi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
jmp 0x4013b8
lea eax, [esp + 0x1c]
push eax
call fcn.0041b135
add esp, 4
mov dword [esp + 0x4d8], 0
push str.DDBClient.ini
lea ecx, [esp + 0xa4]
push ecx
mov ecx, eax
call fcn.0041ab58
mov byte [esp + 0x4d8], 1
mov ecx, eax
call fcn.0041a962
push eax
push str.2013030601
push str.LOCAL_MAIN_VERSION
push str.CLIENT_BASE
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov byte [esp + 0x4d8], 0
lea ecx, [esp + 0xa0]
call fcn.0041a812
mov dword [esp + 0x4d8], 0xffffffff
lea ecx, [esp + 0x1c]
call fcn.0041a812
xor edx, edx
push 0x208
push edx
lea eax, [esp + 0x2be]
push eax
mov word [esp + 0x2c0], dx
call fcn.00447390
add esp, 0xc
push 0x104
lea ecx, [esp + 0x2b8]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea edx, [esp + 0x14]
push edx
call fcn.004013e0
mov dword [esp + 0x4d8], 2
lea eax, [esp + 0x2b4]
push eax
push str.TRUE__s
lea edi, [esp + 0x1c]
call fcn.004017f0
add esp, 8
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebx
call fcn.00401440
mov byte [esp + 0x4d8], 3
mov eax, dword [esp + 0x18]
mov ecx, str.DDBao
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401219
test dx, dx
je 0x401212
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401219
add eax, 4
add ecx, 4
test dx, dx
jne 0x4011f0
xor eax, eax
or ebx, 0xffffffff
jmp 0x401222
sbb eax, eax
mov ebx, 0xffffffff
sbb eax, ebx
test eax, eax
setne al
test al, al
je 0x4012f8
lea edx, [esp + 0x10]
push edx
call fcn.004013e0
mov byte [esp + 0x4d8], 4
lea eax, [esp + 0x1c]
push eax
call fcn.0041b135
mov byte [esp + 0x4dc], 5
sub esp, 0x80
mov esi, eax
mov edi, esp
mov ecx, 0x21
rep movsd dword es:[edi], dword [esi]
push str._sUpdate.exe
lea edi, [esp + 0x98]
call fcn.004017f0
add esp, 0x88
mov byte [esp + 0x4d8], 4
lea ecx, [esp + 0x1c]
call fcn.0041a812
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4012e6
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push 5
push 0
push edx
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov byte [esp + 0x4d8], 3
mov ecx, edi
push ecx
call fcn.004014e0
mov byte [esp + 0x4d8], 2
lea edx, [esp + 0x18]
push edx
call fcn.004014e0
mov dword [esp + 0x4d8], ebx
lea eax, [esp + 0x14]
push eax
jmp 0x4013b3
mov byte [esp + 0x4d8], 3
lea ecx, [esp + 0x10]
push ecx
call fcn.004014e0
push 0x4685bc
mov ecx, 0x4764a0
call fcn.0041a98e
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jl 0x4012c3
lea ecx, [esp + 0x124]
push ecx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
push 0x788
call fcn.00446372
add esp, 4
mov dword [esp + 0x10], eax
mov byte [esp + 0x4d8], 6
test eax, eax
je 0x40134d
push eax
call fcn.00402d00
mov esi, eax
jmp 0x40134f
xor esi, esi
mov byte [esp + 0x4d8], 3
test esi, esi
je 0x4012c3
push 0
push 0x96ca0000
push 0x468500
push 0
mov ecx, esi
call fcn.0041eab6
mov ecx, esi
call fcn.0041e5f8
push 0x65
mov ecx, esi
call fcn.0041e6fd
call fcn.0041e51f
call dword [sym.imp.WS2_32.dll_WSACleanup]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov byte [esp + 0x4d8], 2
lea ecx, [esp + 0x18]
push ecx
call fcn.004014e0
mov dword [esp + 0x4d8], ebx
lea edx, [esp + 0x14]
push edx
call fcn.004014e0
xor eax, eax
mov ecx, dword [esp + 0x4d0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x4b8]
xor ecx, esp
call fcn.004462cb
mov esp, ebp
pop ebp
ret 0x10