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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d6f13
mov eax, dword fs:[0]
push eax
sub esp, 0x5a0
mov eax, dword [0x4fb164]
xor eax, esp
mov dword [esp + 0x598], eax
push ebx
push esi
push edi
mov eax, dword [0x4fb164]
xor eax, esp
push eax
lea eax, [esp + 0x5b0]
mov dword fs:[0], eax
push 0x5418c4
push str._sServer.cfg
mov eax, 0x104
lea edi, [esp + 0x4a4]
call fcn.0040a3a0
add esp, 8
test eax, eax
je 0x41c0ee
call fcn.0046e510
xor al, al
jmp 0x41cab2
push 0
push 0x80
push 3
push 0
push 1
push connect
lea eax, [esp + 0x4b4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x41c0e7
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esp + 0x1c], eax
add eax, 1
push eax
call fcn.004a1db9
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.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41cab0
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 0x41c298
push str.GatewayServer
call ebx
push eax
push str.GatewayServer
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 0x41c298
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41cab0
push 0x4dfe94
call ebx
push eax
push 0x4dfe94
mov edx, edi
push edx
call ebx
push eax
mov eax, edi
push eax
push 0x10001
push 0x400
call esi
sub eax, 2
jne 0x41cab0
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
push 0x4dfe98
call ebx
push eax
push 0x4dfe98
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 0x41ca94
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x41c242
jmp 0x41ca94
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41cab0
push 0x4dfe94
call ebx
push eax
push 0x4dfe94
mov eax, edi
push eax
call ebx
push eax
mov ecx, edi
push ecx
push 0x10001
push 0x400
call esi
sub eax, 2
jne 0x41cab0
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
push 0x4dfe98
call ebx
push eax
push 0x4dfe98
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 0x41ca94
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 0x41c40c
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov eax, 0x5419e0
lea edx, [esp + 0x9c]
xor edi, edi
mov esi, 0x10
sub edx, eax
lea esp, [esp]
mov cl, byte [edx + eax]
test cl, cl
je 0x41c3b3
mov byte [eax], cl
add eax, 1
sub esi, 1
jne 0x41c3a0
jmp 0x41c3b7
test esi, esi
jne 0x41c3bf
sub eax, 1
mov edi, 0x8007007a
test edi, edi
mov byte [eax], 0
jne 0x41c0e2
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov eax, edi
push eax
call fcn.004a27a0
add esp, 4
mov dword [0x541a00], eax
jmp 0x41ca5f
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 0x41c49f
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov eax, 0x5419f0
lea edx, [esp + 0x9c]
xor edi, edi
mov esi, 0x10
sub edx, eax
mov edi, edi
mov cl, byte [edx + eax]
test cl, cl
je 0x41c483
mov byte [eax], cl
add eax, 1
sub esi, 1
jne 0x41c470
jmp 0x41c487
test esi, esi
jne 0x41c48f
sub eax, 1
mov edi, 0x8007007a
test edi, edi
mov byte [eax], 0
jne 0x41c0e2
jmp 0x41ca5f
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 0x41c5c4
mov eax, dword [esp + 0x14]
mov dword [0x541a0c], 0
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov esi, 0x4dfe94
call fcn.0041dcc0
test eax, eax
jne 0x41ca94
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca5f
push 0x4dfe98
call ebx
push eax
push 0x4dfe98
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 0x41ca5f
mov esi, 0x4fe304
nop
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 0x41c598
mov eax, dword [esi]
or dword [0x541a0c], eax
add esi, 8
cmp esi, 0x4fe34c
jl 0x41c560
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x41c521
jmp 0x41ca5f
mov esi, str.debug_option_stand_alone
call fcn.0041dcc0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x41c6a0
mov dword [0x541a10], eax
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov esi, 0x4dfe94
call fcn.0041dcc0
test eax, eax
jne 0x41ca94
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca5f
mov edi, edi
mov esi, 0x4dfe98
lea edi, [esp + 0x9c]
call fcn.0041dcc0
test eax, eax
je 0x41ca5f
mov edi, 0x4fe304
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 0x41c678
mov eax, dword [edi]
or dword [0x541a10], eax
add edi, 8
cmp edi, 0x4fe34c
jl 0x41c640
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x41c620
jmp 0x41ca5f
mov esi, str.netengine_debug_option_debugger_present
call fcn.0041dcc0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x41c773
mov dword [0x541a14], eax
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov esi, 0x4dfe94
call fcn.0041dcc0
test eax, eax
jne 0x41ca94
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca5f
lea ebx, [ebx]
mov esi, 0x4dfe98
lea edi, [esp + 0x9c]
call fcn.0041dcc0
test eax, eax
je 0x41ca5f
mov dword [esp + 0x18], 0x4fe304
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx - 4]
lea edi, [esp + 0x9c]
call fcn.0041dcc0
test eax, eax
jne 0x41c744
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
or dword [0x541a14], eax
mov eax, dword [esp + 0x18]
add eax, 8
cmp eax, 0x4fe34c
mov dword [esp + 0x18], eax
jl 0x41c721
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x41c700
jmp 0x41ca5f
mov esi, str.netengine_debug_option_stand_alone
call fcn.0041dcc0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x41c843
mov dword [0x541a18], eax
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov esi, 0x4dfe94
call fcn.0041dcc0
test eax, eax
jne 0x41ca94
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca5f
lea ecx, [ecx]
mov esi, 0x4dfe98
lea edi, [esp + 0x9c]
call fcn.0041dcc0
test eax, eax
je 0x41ca5f
mov dword [esp + 0x18], 0x4fe304
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx - 4]
lea edi, [esp + 0x9c]
call fcn.0041dcc0
test eax, eax
jne 0x41c814
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
or dword [0x541a18], eax
mov eax, dword [esp + 0x18]
add eax, 8
cmp eax, 0x4fe34c
mov dword [esp + 0x18], eax
jl 0x41c7f1
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x41c7d0
jmp 0x41ca5f
mov esi, str.DumpMsgPool
call fcn.0041dcc0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x41c88c
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov ecx, edi
push ecx
call fcn.004a27a0
sub eax, 1
add esp, 4
neg eax
sbb eax, eax
add eax, 1
mov dword [0x541a1c], eax
jmp 0x41ca5f
mov esi, str.ReportConnectionLog
call fcn.0041dcc0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x41c8d5
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov edx, edi
push edx
call fcn.004a27a0
sub eax, 1
add esp, 4
neg eax
sbb eax, eax
add eax, 1
mov dword [0x541a20], eax
jmp 0x41ca5f
mov esi, str.MaxSendQueDepth
call fcn.0041dcc0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x41c914
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov eax, edi
push eax
call fcn.004a27a0
add esp, 4
mov dword [0x541a24], eax
jmp 0x41ca5f
mov esi, str.PromptAtClose
call fcn.0041dcc0
test eax, eax
lea edi, [esp + 0x9c]
jne 0x41c95d
mov eax, dword [esp + 0x14]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov ecx, edi
push ecx
call fcn.004a27a0
sub eax, 1
add esp, 4
neg eax
sbb eax, eax
add eax, 1
mov dword [0x541a28], eax
jmp 0x41ca5f
mov esi, str.WritePerfLogToText
call fcn.0041dcc0
test eax, eax
jne 0x41c9a6
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca94
mov edx, edi
push edx
call fcn.004a27a0
sub eax, 1
add esp, 4
neg eax
sbb eax, eax
add eax, 1
mov dword [0x541a30], eax
jmp 0x41ca5f
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x84]
call fcn.00402750
mov dword [esp + 0x5b8], 0
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
je 0x41ca7d
mov ecx, edi
push ecx
lea ecx, [esp + 0x30]
call fcn.00402750
mov byte [esp + 0x5b8], 1
push eax
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0041cd80
mov byte [esp + 0x5b8], 2
push eax
push 0x541a34
lea ebx, [esp + 0x28]
call fcn.0041cc10
mov byte [esp + 0x5b8], 1
lea ecx, [esp + 0x48]
push ecx
call fcn.0041cae0
mov byte [esp + 0x5b8], 0
lea ecx, [esp + 0x2c]
call fcn.00402ed0
mov dword [esp + 0x5b8], 0xffffffff
lea ecx, [esp + 0x80]
call fcn.00402ed0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x41c2f4
jmp 0x41ca94
mov dword [esp + 0x5b8], 0xffffffff
lea ecx, [esp + 0x80]
call fcn.00402ed0
mov eax, dword [esp + 0x14]
lea edi, [esp + 0x9c]
call fcn.00458a40
test eax, eax
mov dword [esp + 0x14], eax
jne 0x41c170
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.004a2094
mov esp, ebp
pop ebp
ret