Function at 0x453ae0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x408
mov eax, dword [0x49b470]
xor eax, esp
mov dword [esp + 0x404], eax
mov eax, dword [0x4b5af0]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push edi
test eax, eax
jne 0x453b08
call ebx
push 0x50c
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
xor eax, eax
mov ecx, 0x143
mov edi, esi
rep stosd dword es:[edi], eax
mov eax, dword [0x4b3d88]
mov dword [esi], eax
mov ecx, dword [0x4b3d8c]
mov dword [esi + 4], ecx
mov edx, dword [0x4b3d90]
mov dword [esi + 8], edx
mov eax, dword [0x4b3d94]
mov dword [esi + 0xc], eax
mov ecx, dword [0x4b3d98]
mov dword [esi + 0x10], ecx
mov edx, dword [0x4b3da4]
mov dword [esi + 0x14], edx
mov eax, dword [0x4b3da8]
mov dword [esi + 0x18], eax
mov ecx, dword [0x4b3dac]
mov dword [esi + 0x1c], ecx
mov edx, dword [0x4b41b4]
mov dword [esi + 0x20], edx
mov eax, dword [0x4b3d9c]
mov dword [esi + 0x24], eax
mov ecx, dword [0x4b3da0]
mov eax, 0x4b3d58
mov edx, esi
sub edx, eax
mov dword [esi + 0x28], ecx
add edx, 0x2c
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x453b90
mov eax, 0x4b3d58
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x453ba2
mov ecx, dword [0x4b3d78]
sub eax, edx
mov edx, dword [0x4b557c]
add eax, 4
shr eax, 2
mov dword [esi + eax*4 + 0x2c], ecx
mov ecx, dword [0x4b5234]
add eax, 0xb
mov dword [esi + eax*4 + 4], edx
mov edx, dword [0x4b3044]
inc eax
mov dword [esi + eax*4 + 4], ecx
mov ecx, dword [0x4b41e4]
inc eax
mov dword [esi + eax*4 + 4], edx
inc eax
mov dword [esi + eax*4 + 4], ecx
mov edx, dword [0x4b41bc]
inc eax
mov dword [esi + eax*4 + 4], edx
mov ecx, dword [0x4b41c0]
inc eax
mov dword [esi + eax*4 + 4], ecx
mov edx, dword [0x4b41c4]
inc eax
mov dword [esi + eax*4 + 4], edx
mov ecx, dword [0x4b41c8]
inc eax
mov dword [esi + eax*4 + 4], ecx
mov edx, dword [0x4b41d0]
inc eax
mov dword [esi + eax*4 + 4], edx
mov ecx, dword [0x4b41d4]
inc eax
mov dword [esi + eax*4 + 4], ecx
mov edx, dword [0x4b41d8]
inc eax
inc eax
mov dword [esi + eax*4], edx
mov ecx, dword [0x4b41dc]
inc eax
mov dword [esi + eax*4], ecx
inc eax
xor ecx, ecx
mov edx, dword [ecx + 0x4b3db0]
mov dword [esi + eax*4], edx
add ecx, 4
inc eax
cmp ecx, 0x200
jb 0x453c43
lea ecx, [esi + eax*4]
xor eax, eax
lea ecx, [ecx]
mov edx, dword [eax + 0x4b3fb0]
mov dword [ecx], edx
add eax, 4
add ecx, 4
cmp eax, 0x200
jb 0x453c60
push 0x4b3848
lea eax, [esp + 0x14]
push str._s_save_system.dat
push eax
call fcn.0045f116
add esp, 0xc
push 0
push 0x80000080
push 4
push 0
push 0
push 0x40000000
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
push 0
push 0x50c
push 0
mov edi, eax
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LockFile]
push 0
test eax, eax
jne 0x453cdc
mov edx, dword [0x4b3c9c]
push 0x48ba48
push 0x4958f0
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x453d1b
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [esp + 0x10]
push eax
push 0x50c
push esi
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push edi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push 0
push 0x50c
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_UnlockFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x4b5af0]
test eax, eax
jne 0x453d2d
call ebx
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [esp + 0x410]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0045f0aa
add esp, 0x408
ret