Function at 0x40e080
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4af9e3
mov eax, dword fs:[0]
push eax
sub esp, 0x5a0
mov eax, dword [0x4ce090]
xor eax, esp
mov dword [esp + 0x598], eax
push ebx
push esi
push edi
mov eax, dword [0x4ce090]
xor eax, esp
push eax
lea eax, [esp + 0x5b0]
mov dword fs:[0], eax
push 0x513b5c
push str._sServer.cfg
mov eax, 0x104
lea edi, [esp + 0x4a4]
call fcn.004037d0
add esp, 8
test eax, eax
je 0x40e0ee
call fcn.004599e0
xor al, al
jmp 0x40eab2
push 0
push 0x80
push 3
push 0
push 1
push closesocket
lea eax, [esp + 0x4b4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x40e0e7
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esp + 0x1c], eax
add eax, 1
push eax
call fcn.00480d6b
mov ecx, dword [esp + 0x20]
add esp, 4
mov ebx, eax
push 0
lea edx, [esp + 0x20]
push edx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0x24]
push eax
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edi, [esp + 0x9c]
mov eax, ebx
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40eab0
lea ecx, [ecx]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
push str.common
call ebx
push eax
push str.common
lea ecx, [esp + 0xa4]
push ecx
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_CompareStringA]
push eax
lea edx, [esp + 0xa8]
push edx
push 0x10001
push 0x400
call esi
sub eax, 2
je 0x40e298
push str.DownloadServer
call ebx
push eax
push str.DownloadServer
lea eax, [esp + 0xa4]
push eax
call ebx
push eax
lea ecx, [esp + 0xa8]
push ecx
push 0x10001
push 0x400
call esi
sub eax, 2
je 0x40e298
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40eab0
push 0x4b7d30
call ebx
push eax
push 0x4b7d30
mov edx, edi
push edx
call ebx
push eax
mov eax, edi
push eax
push 0x10001
push 0x400
call esi
sub eax, 2
jne 0x40eab0
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
push 0x4b7d34
call ebx
push eax
push 0x4b7d34
lea ecx, [esp + 0xa4]
push ecx
call ebx
push eax
lea edx, [esp + 0xa8]
push edx
push 0x10001
push 0x400
call dword [sym.imp.KERNEL32.dll_CompareStringA]
sub eax, 2
je 0x40ea94
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40e242
jmp 0x40ea94
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40eab0
push 0x4b7d30
call ebx
push eax
push 0x4b7d30
mov eax, edi
push eax
call ebx
push eax
mov ecx, edi
push ecx
push 0x10001
push 0x400
call esi
sub eax, 2
jne 0x40eab0
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
push 0x4b7d34
call ebx
push eax
push 0x4b7d34
lea edx, [esp + 0xa4]
push edx
call ebx
push eax
lea eax, [esp + 0xa8]
push eax
push 0x10001
push 0x400
call dword [sym.imp.KERNEL32.dll_CompareStringA]
sub eax, 2
je 0x40ea94
push str.certification
call ebx
push eax
push str.certification
lea ecx, [esp + 0xa4]
push ecx
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_CompareStringA]
push eax
lea edx, [esp + 0xa8]
push edx
push 0x10001
push 0x400
call esi
sub eax, 2
jne 0x40e40c
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov eax, 0x513c78
lea edx, [esp + 0x9c]
xor edi, edi
mov esi, 0x100
sub edx, eax
lea esp, [esp]
mov cl, byte [edx + eax]
test cl, cl
je 0x40e3b3
mov byte [eax], cl
add eax, 1
sub esi, 1
jne 0x40e3a0
jmp 0x40e3b7
test esi, esi
jne 0x40e3bf
sub eax, 1
mov edi, 0x8007007a
test edi, edi
mov byte [eax], 0
jne 0x40e0e2
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov eax, edi
push eax
call fcn.004810b6
add esp, 4
mov dword [0x513c98], eax
jmp 0x40ea5f
push str.certification_ip_bind
call ebx
push eax
push str.certification_ip_bind
lea ecx, [esp + 0xa4]
push ecx
call ebx
push eax
lea edx, [esp + 0xa8]
push edx
push 0x10001
push 0x400
call esi
sub eax, 2
jne 0x40e49f
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov eax, 0x513c88
lea edx, [esp + 0x9c]
xor edi, edi
mov esi, 0x100
sub edx, eax
mov edi, edi
mov cl, byte [edx + eax]
test cl, cl
je 0x40e483
mov byte [eax], cl
add eax, 1
sub esi, 1
jne 0x40e470
jmp 0x40e487
test esi, esi
jne 0x40e48f
sub eax, 1
mov edi, 0x8007007a
test edi, edi
mov byte [eax], 0
jne 0x40e0e2
jmp 0x40ea5f
push str.debug_option_debugger_present
call ebx
push eax
push str.debug_option_debugger_present
lea eax, [esp + 0xa4]
push eax
call ebx
push eax
lea ecx, [esp + 0xa8]
push ecx
push 0x10001
push 0x400
call esi
sub eax, 2
lea edi, [esp + 0x9c]
jne 0x40e5c4
mov dword [0x513ca4], eax
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov esi, 0x4b7d30
call fcn.0040fba0
test eax, eax
jne 0x40ea94
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea5f
push 0x4b7d34
call ebx
push eax
push 0x4b7d34
lea edx, [esp + 0xa4]
push edx
call ebx
push eax
lea eax, [esp + 0xa8]
push eax
push 0x10001
push 0x400
call dword [sym.imp.KERNEL32.dll_CompareStringA]
sub eax, 2
je 0x40ea5f
mov esi, 0x4d08b4
lea ebx, [ebx]
mov edi, dword [esi - 4]
push edi
call ebx
push eax
push edi
lea ecx, [esp + 0xa4]
push ecx
call ebx
push eax
lea edx, [esp + 0xa8]
push edx
push 0x10001
push 0x400
call dword [sym.imp.KERNEL32.dll_CompareStringA]
sub eax, 2
jne 0x40e598
mov eax, dword [esi]
or dword [0x513ca4], eax
add esi, 8
cmp esi, 0x4d08fc
jl 0x40e560
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40e51c
jmp 0x40ea5f
mov esi, str.debug_option_stand_alone
call fcn.0040fba0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x40e6a0
mov dword [0x513ca8], eax
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov esi, 0x4b7d30
call fcn.0040fba0
test eax, eax
jne 0x40ea94
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea5f
mov edi, edi
mov esi, 0x4b7d34
lea edi, [esp + 0x9c]
call fcn.0040fba0
test eax, eax
je 0x40ea5f
mov edi, 0x4d08b4
mov edi, edi
mov esi, dword [edi - 4]
push esi
call ebx
push eax
push esi
lea ecx, [esp + 0xa4]
push ecx
call ebx
push eax
lea edx, [esp + 0xa8]
push edx
push 0x10001
push 0x400
call dword [sym.imp.KERNEL32.dll_CompareStringA]
sub eax, 2
jne 0x40e678
mov eax, dword [edi]
or dword [0x513ca8], eax
add edi, 8
cmp edi, 0x4d08fc
jl 0x40e640
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40e620
jmp 0x40ea5f
mov esi, str.netengine_debug_option_debugger_present
call fcn.0040fba0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x40e773
mov dword [0x513cac], eax
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov esi, 0x4b7d30
call fcn.0040fba0
test eax, eax
jne 0x40ea94
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea5f
lea ebx, [ebx]
mov esi, 0x4b7d34
lea edi, [esp + 0x9c]
call fcn.0040fba0
test eax, eax
je 0x40ea5f
mov dword [esp + 0x18], 0x4d08b4
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx - 4]
lea edi, [esp + 0x9c]
call fcn.0040fba0
test eax, eax
jne 0x40e744
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
or dword [0x513cac], eax
mov eax, dword [esp + 0x18]
add eax, 8
cmp eax, 0x4d08fc
mov dword [esp + 0x18], eax
jl 0x40e721
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40e700
jmp 0x40ea5f
mov esi, str.netengine_debug_option_stand_alone
call fcn.0040fba0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x40e843
mov dword [0x513cb0], eax
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov esi, 0x4b7d30
call fcn.0040fba0
test eax, eax
jne 0x40ea94
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea5f
lea ecx, [ecx]
mov esi, 0x4b7d34
lea edi, [esp + 0x9c]
call fcn.0040fba0
test eax, eax
je 0x40ea5f
mov dword [esp + 0x18], 0x4d08b4
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx - 4]
lea edi, [esp + 0x9c]
call fcn.0040fba0
test eax, eax
jne 0x40e814
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
or dword [0x513cb0], eax
mov eax, dword [esp + 0x18]
add eax, 8
cmp eax, 0x4d08fc
mov dword [esp + 0x18], eax
jl 0x40e7f1
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40e7d0
jmp 0x40ea5f
mov esi, str.DumpMsgPool
call fcn.0040fba0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x40e88c
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov ecx, edi
push ecx
call fcn.004810b6
sub eax, 1
add esp, 4
neg eax
sbb eax, eax
add eax, 1
mov dword [0x513cb4], eax
jmp 0x40ea5f
mov esi, str.ReportConnectionLog
call fcn.0040fba0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x40e8d5
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov edx, edi
push edx
call fcn.004810b6
sub eax, 1
add esp, 4
neg eax
sbb eax, eax
add eax, 1
mov dword [0x513cb8], eax
jmp 0x40ea5f
mov esi, str.MaxSendQueDepth
call fcn.0040fba0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x40e914
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov eax, edi
push eax
call fcn.004810b6
add esp, 4
mov dword [0x513cbc], eax
jmp 0x40ea5f
mov esi, str.PromptAtClose
call fcn.0040fba0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x40e95d
mov eax, dword [esp + 0x14]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov ecx, edi
push ecx
call fcn.004810b6
sub eax, 1
add esp, 4
neg eax
sbb eax, eax
add eax, 1
mov dword [0x513cc0], eax
jmp 0x40ea5f
mov esi, str.WritePerfLogToText
call fcn.0040fba0
test eax, eax
jne 0x40e9a6
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea94
mov edx, edi
push edx
call fcn.004810b6
sub eax, 1
add esp, 4
neg eax
sbb eax, eax
add eax, 1
mov dword [0x513cc8], eax
jmp 0x40ea5f
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x84]
call fcn.00403120
mov dword [esp + 0x5b8], 0
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
je 0x40ea7d
mov ecx, edi
push ecx
lea ecx, [esp + 0x30]
call fcn.00403120
mov byte [esp + 0x5b8], 1
push eax
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0040ed60
mov byte [esp + 0x5b8], 2
push eax
push 0x513ccc
lea ebx, [esp + 0x28]
call fcn.0040ebf0
mov byte [esp + 0x5b8], 1
lea ecx, [esp + 0x48]
push ecx
call fcn.0040eae0
mov byte [esp + 0x5b8], 0
lea ecx, [esp + 0x2c]
call fcn.00404040
mov dword [esp + 0x5b8], 0xffffffff
lea ecx, [esp + 0x80]
call fcn.00404040
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40e2f4
jmp 0x40ea94
mov dword [esp + 0x5b8], 0xffffffff
lea ecx, [esp + 0x80]
call fcn.00404040
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00441b30
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40e170
mov al, 1
mov ecx, dword [esp + 0x5b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x598]
xor ecx, esp
call fcn.00480d70
mov esp, ebp
pop ebp
ret