Function at 0x10003770
Capabilities:
Create directory
Get common file path
Get file size
Write file on windows

Disassembly:
push 0xffffffffffffffff
push 0x1003407c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x238
push ebx
push ebp
push esi
push edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_2
push 1
lea eax, [esp + 0x30]
xor ebx, ebx
push 0x1a
push eax
push ebx
mov dword [esp + 0x260], ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
cmp eax, ebx
jne 0x100037d3
lea ecx, [esp + 0x10]
mov dword [esp + 0x250], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffdfd
jmp 0x10003a80
lea ecx, [esp + 0x2c]
push str.EoRezocache
push ecx
lea edx, [esp + 0x18]
push str._s_s
push edx
call sub.MFC42.DLL_CString::Format
add esp, 0x10
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_2
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x18]
push eax
push str._sEoRezo
push ecx
mov byte [esp + 0x25c], 1
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x24]
add esp, 0xc
lea edx, [esp + 0x130]
push edx
push eax
call sub.MFC42.DLL_CFile::GetStatus
cmp eax, ebx
jne 0x10003839
mov ecx, dword [esp + 0x18]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edx, dword [esp + 0x10]
mov ebp, dword [sym.imp.KERNEL32.dll_CreateFileA]
push ebx
push 0x80
push 4
push ebx
push ebx
push 0x40000000
push edx
call ebp
mov esi, eax
cmp esi, ebx
je 0x100038ad
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, eax
mov eax, 0x4ec4ec4f
mul ecx
mov edi, edx
mov eax, ecx
xor edx, edx
mov ecx, 0x1a
div ecx
shr edi, 3
test edx, edx
je 0x100038db
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x10]
push edx
call sub.MFC42.DLL_CFile::Remove
mov eax, dword [esp + 0x10]
push ebx
push 0x80
push 4
push ebx
push ebx
push 0x40000000
push eax
call ebp
mov esi, eax
cmp esi, ebx
jne 0x100038db
lea ecx, [esp + 0x18]
mov byte [esp + 0x250], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x250], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffe00
jmp 0x10003a80
cmp edi, 0x14
jbe 0x100038e9
push ebx
push ebx
push 0x104
jmp 0x100038ed
push 2
push ebx
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea ecx, [esp + 0x28]
mov dword [esp + 0x24], ebx
push ecx
call sub.MFC42.DLL_CTime::GetTickCount
mov edx, dword [eax]
lea eax, [esp + 0x1c]
push str._d_m_y__H_M
push eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], edx
call sub.MFC42.DLL_CTime::Format
lea ecx, [esp + 0x14]
mov byte [esp + 0x250], 2
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x25c]
mov edi, dword [esp + 0x258]
mov edx, dword [esp + 0x1c]
push ecx
push edi
push edx
lea eax, [esp + 0x20]
push str._s__.8d__d
push eax
mov byte [esp + 0x264], 3
call sub.MFC42.DLL_CString::Format
mov ecx, dword [esp + 0x28]
add esp, 0x14
mov eax, dword [ecx - 8]
mov ecx, 0x19
cdq
idiv ecx
test edx, edx
je 0x1000398f
push 0x100540d0
lea ecx, [esp + 0x18]
call fcn.10032ddc
mov edx, dword [esp + 0x14]
mov ecx, 0x19
mov eax, dword [edx - 8]
cdq
idiv ecx
test edx, edx
jne 0x1000396e
push 0x100540cc
lea ecx, [esp + 0x18]
call fcn.10032ddc
mov eax, edi
shr eax, 0xc
shl eax, 0xc
sub edi, eax
cmp edi, 0x26
je 0x100039c3
cmp edi, 0x27
je 0x100039c3
cmp edi, 0x28
je 0x100039c3
cmp edi, 0x501
je 0x100039c3
cmp edi, 0x40
jne 0x10003a2a
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x24]
push ebx
push edx
mov ecx, dword [eax - 8]
push ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, ebx
jne 0x10003a2a
lea ecx, [esp + 0x14]
mov byte [esp + 0x250], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x250], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x250], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x250], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 0xfffffdff
jmp 0x10003a80
push esi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x14]
mov byte [esp + 0x250], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x250], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x250], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x250], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0x248]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x244
ret 8