Function at 0x40ed20
Capabilities:
Check if file exists
Create directory
Get file attributes
Get file size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x374
mov eax, dword [0x543fcc]
push ebx
push esi
push edi
push 0
mov dword [esp + 0x380], eax
lea eax, [esp + 0x16c]
push 0x104
push eax
mov ebx, ecx
call fcn.0040e900
add esp, 0xc
lea ecx, [esp + 0x168]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40ed90
push 0
lea edx, [esp + 0x16c]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x40ed90
xor al, al
mov ecx, dword [esp + 0x37c]
call fcn.004eee51
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edi, edi
push edi
lea eax, [esp + 0x16c]
push eax
mov ecx, eax
push ecx
push str._s_Statistics__s__05d.log
lea edx, [esp + 0x280]
push 0x104
push edx
call fcn.004edc35
add esp, 0x18
push edi
push 0x80
push 3
push edi
push 1
push 0x40000000
lea eax, [esp + 0x288]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x40ee60
lea ecx, [esp + 0x10]
push ecx
push esi
mov dword [esp + 0x18], 0
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push esi
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x40ee12
cmp dword [esp + 0x14], 0x3200000
jb 0x40ee60
inc edi
push edi
lea edx, [esp + 0x16c]
push edx
mov eax, edx
push eax
push str._s_Statistics__s__05d.log
lea ecx, [esp + 0x280]
push 0x104
push ecx
call fcn.004edc35
add esp, 0x18
push 0
push 0x80
push 3
push 0
push 1
push 0x40000000
lea edx, [esp + 0x288]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40ede1
lea eax, [esp + 0x270]
push 0x507acc
push eax
call fcn.004edf80
add esp, 8
test eax, eax
mov dword [esp + 0x40], eax
je 0x40f190
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x40ee8e
push eax
call ecx
add esp, 4
push 0
call fcn.004ee6c6
mov esi, dword [ebx]
mov dword [esp + 0x18], eax
sub eax, esi
push ebx
mov dword [esp + 0x18], eax
call fcn.004ef78f
mov esi, eax
mov ecx, 9
lea edi, [esp + 0x4c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1c]
push ecx
call fcn.004ef78f
mov esi, eax
mov eax, dword [esp + 0x1c]
cdq
mov ecx, 9
lea edi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xe10
idiv ecx
mov esi, 0x3c
mov edi, dword [esp + 0x4c]
mov ecx, eax
mov eax, edx
cdq
idiv esi
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x6c]
inc eax
push eax
mov eax, dword [esp + 0x74]
add ecx, 0x76c
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0x84]
push eax
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x94]
push edx
inc eax
push eax
add ecx, 0x76c
push ecx
push str._t___Server_Packet_Statistics_____n_tLog_Start_Time____:__04dyear__02dmon__02dday__02dhour__02dmin__02dsec_n_tCurrent_Log_Time__:__04dyear__02dmon__02dday__02dhour__02dmin__02dsec_n_tLog_Duration______:__02dhour__02dmin__02dsec_n_n
push edi
call fcn.004ee1db
mov eax, dword [esp + 0x60]
add esp, 0x50
lea esi, [ebx + 0x1000]
push esi
lea edx, [ebx + 0x10]
push edx
push eax
push str.Recv_Packet
push edi
call fcn.0040eb00
mov ecx, dword [esp + 0x24]
lea eax, [ebx + 0x1ff0]
push eax
push esi
push ecx
push str.Send_Packet
push edi
call fcn.0040eb00
fld qword [0x5079b0]
lea esi, [ebx + 0x1ff0]
fstp qword [esp + 0x40]
lea eax, [ebx + 0x3fd0]
fld qword [0x5079b0]
add esp, 0x28
cmp esi, eax
fstp qword [esp + 0x20]
fld qword [0x5079b0]
mov byte [esp + 0xf], 0
fstp qword [esp + 0x28]
fld qword [0x5079b0]
fstp qword [esp + 0x30]
je 0x40f0c9
fld qword [esi]
fld qword [0x5079b0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x40f0ae
fld qword [esi + 0x10]
sub esp, 0x18
fst qword [esp + 0x10]
lea edx, [esp + 0x100]
fld qword [0x507c70]
fmul st(1)
fstp qword [esp + 8]
fmul qword [0x507c68]
fstp qword [esp]
push str._16.4fMb__16.4fKb__16.4fBytes
push 0x7f
push edx
call fcn.004edc35
fld qword [esi + 0x18]
fld st(0)
add esp, 0xc
fstp qword [esp + 0x10]
lea eax, [esp + 0x80]
fld qword [0x507c70]
mov byte [esp + 0x17f], 0
fmul st(1)
fstp qword [esp + 8]
fmul qword [0x507c68]
fstp qword [esp]
push str._16.4fMb__16.4fKb__16.4fBytes
push 0x7f
push eax
call fcn.004edc35
fld qword [esi + 8]
movzx eax, byte [esp + 0x33]
add esp, 0x24
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0xec]
push edx
sub esp, 0x10
mov byte [esp + 0xff], 0
fstp qword [esp + 8]
fld qword [esi]
fstp qword [esp]
push eax
push eax
push str._t__3d_0x_02X__:__16.4f_Failed__16.4f__:_Total__16s__:_Compressed__16s__n
push edi
call fcn.004ee1db
fld qword [esp + 0x40]
fadd qword [esi]
add esp, 0x28
fstp qword [esp + 0x18]
fld qword [esp + 0x20]
fadd qword [esi + 8]
fstp qword [esp + 0x20]
fld qword [esp + 0x28]
fadd qword [esi + 0x10]
fstp qword [esp + 0x28]
fld qword [esp + 0x30]
fadd qword [esi + 0x18]
fstp qword [esp + 0x30]
mov dl, byte [esp + 0xf]
add esi, 0x20
inc dl
lea eax, [ebx + 0x3fd0]
cmp esi, eax
mov byte [esp + 0xf], dl
jne 0x40efc2
fld qword [esp + 0x28]
sub esp, 0x18
fstp qword [esp + 0x10]
lea eax, [esp + 0x100]
fld qword [esp + 0x40]
fmul qword [0x507c70]
fstp qword [esp + 8]
fld qword [esp + 0x40]
fmul qword [0x507c68]
fstp qword [esp]
push str._16.4fMb__16.4fKb__16.4fBytes
push 0x7f
push eax
call fcn.004edc35
fld qword [esp + 0x54]
fstp qword [esp + 0x1c]
add esp, 0xc
fld qword [esp + 0x48]
lea ecx, [esp + 0x80]
fmul qword [0x507c70]
mov byte [esp + 0x17f], 0
fstp qword [esp + 8]
fld qword [esp + 0x48]
fmul qword [0x507c68]
fstp qword [esp]
push str._16.4fMb__16.4fKb__16.4fBytes
push 0x7f
push ecx
call fcn.004edc35
fld qword [esp + 0x44]
add esp, 0x14
fstp qword [esp + 8]
lea edx, [esp + 0x78]
fld qword [esp + 0x28]
lea eax, [esp + 0xf8]
fstp qword [esp]
push edx
push eax
push str._n_Check_compression_status___not_actually_sent_n_Total_Data____________:__s_n_Total_Data_Compressed_:__s_n_Total_Count___________:__16.4f_Failed__16.4f__n_n_n
push edi
mov byte [esp + 0x107], 0
call fcn.004ee1db
mov ebx, dword [ebx + 8]
add esp, 0x20
test ebx, ebx
je 0x40f187
push edi
call ebx
add esp, 4
push edi
call fcn.004edfdf
add esp, 4
mov ecx, dword [esp + 0x37c]
mov al, 1
call fcn.004eee51
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret