Function at 0x404fc0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x93d814]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0xef
push 0xef
push 0xef
call fcn.00448430
push 0xcf
push 0xcf
push 0xcf
mov dword [0xea81dc], eax
call fcn.00448430
push 0xbf
push 0xbf
push 0xbf
mov dword [0xea8024], eax
call fcn.00448430
push 0x5f
push 0x5f
push 0x5f
mov dword [0xea7fd4], eax
call fcn.00448430
push 0xf
push 0xf
push 0xf
mov dword [0xea81e0], eax
call fcn.00448430
push 0xf
push 0xf
push 0xff
mov dword [0xea7eb0], eax
call fcn.00448430
add esp, 0x48
mov dword [0xea89ec], eax
push 0x4c
push 0xc
push 0xff
call fcn.00448430
push 0xae
push 0x1b
push 0xf9
mov dword [0xea81b8], eax
call fcn.00448430
push 0x26
push 6
push 0x7f
mov dword [0xea81e4], eax
call fcn.00448430
push 0x21
push 0x4a
push 0xda
mov dword [0xea7fe4], eax
call fcn.00448430
push 0x98
push 0xd1
push 0
mov dword [0xea7fd0], eax
call fcn.00448430
push 0x4c
push 0x68
push 0
mov dword [0xea8018], eax
call fcn.00448430
add esp, 0x48
mov dword [0xea8014], eax
push 5
push 0xa9
push 0x74
call fcn.00448430
push 0xff
push 0xf
push 0xf
mov dword [0xea800c], eax
call fcn.00448430
push 0xff
push 0xb7
push 0x29
mov dword [0xea81fc], eax
call fcn.00448430
push 0x7f
mov dword [0xea7fd8], eax
push 0x5b
push 0x14
call fcn.00448430
push 0xd8
push 0x95
push 4
mov dword [0xea81d8], eax
call fcn.00448430
push 7
push 0xa7
push 0xe5
mov dword [0xea8344], eax
call fcn.00448430
add esp, 0x48
mov dword [0xea8020], eax
mov eax, dword [0xea81e0]
mov dword [0xea81f0], eax
mov eax, dword [0xea8024]
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
mov dword [0xea81f4], eax
mov eax, dword [0xea81b8]
push 0xffffffffffffffff
mov dword [0xea7fc4], eax
mov eax, dword [0xea7fd8]
push 0x12
mov dword [0xea7fc8], eax
mov eax, dword [0xea8018]
push 7
mov dword [0xea7fcc], eax
mov eax, dword [0xea7eb0]
push 0xf0
push 0x736364
mov dword [0xea7fc0], 0
mov dword [0xea7fdc], eax
call fcn.0040cc00
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x12
push 0xffffffffffffffff
push 0x30
push str.Segoe_UI
mov dword [0xea7fbc], eax
call fcn.0040cc00
add esp, 0x40
mov dword [0xea801c], eax
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x12
push 7
push 0x36
push str.Segoe_UI
call fcn.0040cc00
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x12
push 0xffffffffffffffff
push 0x18
push str.Segoe_UI
mov dword [0xea81e8], eax
call fcn.0040cc00
add esp, 0x40
mov dword [0xea7fe0], eax
push 0xffffffffffffffff
push 0
push 2
push 0xffffffffffffffff
push 0x13
push 0xffffffffffffffff
push 0x1c
push str.Arial
call fcn.0040cc00
push 0xffffffffffffffff
mov dword [0xea81ec], eax
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x12
push 0xffffffffffffffff
push 0x54
push str.Arial_Black
call fcn.0040cc00
add esp, 0x40
mov dword [0xea81f8], eax
call fcn.005c8acf
push 0x736390
mov esi, eax
lea eax, [ebp - 0xc]
push str.SaveData.dat
push eax
call fcn.005c8b8f
mov dword [esi], eax
add esp, 0xc
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x40528e
mov ecx, 0x51
mov dword [0xea8be0], 5
mov edi, 0xea8be8
mov dword [0xea8be4], 3
rep stosd dword es:[edi], eax
jmp 0x4055aa
push ebx
push eax
push 1
push 0x150
push 0xea8be0
call fcn.005c8daf
push dword [ebp - 0xc]
call fcn.005c8767
mov eax, dword [0xea8be4]
add esp, 0x14
mov edi, 0xea8bf4
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [0xea8be0]
lea eax, [eax + eax*2]
add eax, 0x29
add eax, ecx
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
lea ebx, [eax + 0x7e]
nop word [eax + eax]
mov ecx, dword [edi - 8]
lea edi, [edi + 0x24]
add ecx, dword [edi - 0x28]
add ecx, dword [edi - 0x30]
shr eax, 1
add ecx, ebx
add ecx, dword [edi - 0x24]
add ebx, 2
lea edx, [eax + eax*8]
mov eax, dword [edx*4 + 0xea8c08]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x18]
add eax, dword [edx*4 + 0xea8c04]
add eax, dword [edx*4 + 0xea8c00]
add eax, dword [edx*4 + 0xea8bfc]
add eax, dword [edx*4 + 0xea8bf8]
add eax, dword [edx*4 + 0xea8bf4]
add eax, dword [edx*4 + 0xea8bf0]
add eax, dword [edx*4 + 0xea8bec]
add eax, dword [edx*4 + 0xea8be8]
add eax, dword [edi - 0x30]
mov edx, dword [ebp - 8]
add eax, ecx
add edx, eax
add ecx, 5
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 8], edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
cmp ebx, 0x90
jl 0x4052e0
cmp edx, dword [0xea8d2c]
je 0x4055a9
xor eax, eax
mov dword [0xea8be0], 5
mov dword [0xea8be4], 3
mov ecx, 0x51
mov edi, 0xea8be8
rep stosd dword es:[edi], eax
mov eax, dword [0xea8be4]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [0xea8be0]
lea edx, [eax*2 + 0x29]
add edx, eax
add edx, ecx
xor ecx, ecx
xor ebx, ebx
mov dword [0xea8d2c], edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x10], ebx
mov eax, ecx
shr eax, 1
lea edi, [eax + eax*8]
mov eax, dword [ebp - 0x14]
add eax, 0x18
shl edi, 2
mov dword [ebp - 0x20], edi
mov esi, dword [edi + 0xea8be8]
add esi, edx
add esi, dword [ebx + 0xea8be8]
add eax, esi
mov dword [ebp - 0x24], esi
mov dword [0xea8d2c], eax
mov edx, dword [edi + 0xea8bec]
add edx, dword [ebx + 0xea8bec]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], edx
lea eax, [eax*2 + 0x31]
add eax, esi
add eax, edx
mov dword [0xea8d2c], eax
mov ebx, dword [ebx + 0xea8bf0]
add ebx, dword [edi + 0xea8bf0]
mov eax, dword [ebp - 0x2c]
add eax, 0x4b
add eax, ebx
add eax, esi
add esi, 0x66
add eax, edx
mov dword [0xea8d2c], eax
mov ecx, dword [edi + 0xea8bf4]
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x10]
lea eax, [ebx + eax*4]
mov edi, dword [edi + 0xea8bf4]
add eax, esi
add eax, edx
add edi, ecx
mov ecx, dword [ebp - 0x20]
add eax, edi
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x30], edi
mov esi, dword [ecx + 0xea8bf8]
mov eax, dword [eax + 0xea8be8]
add esi, eax
mov eax, dword [ebp - 0x18]
add eax, 0x82
add eax, edi
add eax, ebx
add eax, dword [ebp - 0x24]
add eax, edx
add eax, esi
mov dword [0xea8d2c], eax
mov eax, ecx
mov edx, dword [eax + 0xea8bfc]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xea8bec]
add edx, eax
lea eax, [esi + 0x9f]
add eax, edi
add eax, dword [ebp - 0x1c]
add eax, ebx
add eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x28]
add eax, edx
mov dword [0xea8d2c], eax
mov eax, ecx
mov ecx, dword [eax + 0xea8c00]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xea8bf0]
add ecx, eax
lea eax, [edx + ecx]
add eax, esi
add eax, edi
mov edi, dword [ebp - 0x28]
add eax, dword [ebp - 8]
add edi, 0xbd
add eax, ebx
add eax, dword [ebp - 0x24]
add eax, edi
mov edi, dword [ebp - 0x14]
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x20]
add dword [ebp - 0x2c], 3
add dword [ebp - 0x18], 5
add dword [ebp - 0x1c], 6
mov eax, dword [eax + 0xea8c04]
add dword [ebp - 8], 7
lea eax, [eax + edi*8]
mov edi, dword [ebp - 0x10]
add eax, dword [edi + 0xea8bf4]
add eax, edx
add eax, ecx
mov ecx, dword [ebp - 0x28]
add eax, esi
add eax, dword [ebp - 0x30]
add eax, ebx
mov ebx, edi
add eax, dword [ebp - 0x24]
add ecx, eax
lea eax, [ecx + 0xdc]
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + 0xea8c08]
mov eax, dword [ebx + 0xea8be8]
add edx, ecx
mov ecx, dword [ebp - 0x14]
add eax, 0xfc
add edx, ecx
add ebx, 0x24
add edx, eax
mov dword [ebp - 0x10], ebx
inc ecx
mov dword [0xea8d2c], edx
mov dword [ebp - 0x14], ecx
cmp ebx, 0x144
jl 0x4053c8
call fcn.005c8acf
push 0x7363a4
mov esi, eax
lea eax, [ebp - 8]
push str.SaveData.dat
push eax
call fcn.005c8b8f
mov dword [esi], eax
add esp, 0xc
mov eax, dword [ebp - 8]
test eax, eax
je 0x4055a9
push eax
push 1
push 0x150
push 0xea8be0
call fcn.005c89f1
push dword [ebp - 8]
call fcn.005c8767
add esp, 0x14
pop ebx
mov eax, dword [0xea8be0]
cmp eax, 8
ja 0x4055bf
mov ecx, dword [0xea8be4]
cmp ecx, 8
jbe 0x4055c9
mov eax, 5
mov ecx, 3
movss xmm3, dword [0x736678]
movss xmm4, dword [0x736728]
movss xmm0, dword [0x73668c]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mov dword [0xea81c0], ecx
mov dword [0xea81bc], eax
movd xmm1, ecx
comiss xmm3, xmm2
cvtdq2ps xmm1, xmm1
movss dword [0xea81c4], xmm2
movss dword [0xea81c8], xmm1
jb 0x40561b
mov dword [0xea81d0], 0
jmp 0x405646
comiss xmm2, xmm0
jb 0x40562c
mov dword [0xea81d0], 0x44160000
jmp 0x405646
comiss xmm2, xmm3
jbe 0x405646
comiss xmm0, xmm2
jbe 0x405646
subss xmm2, xmm3
mulss xmm2, xmm4
movss dword [0xea81d0], xmm2
comiss xmm3, xmm1
jb 0x405657
mov dword [0xea81d4], 0
jmp 0x405682
comiss xmm1, xmm0
jb 0x405668
mov dword [0xea81d4], 0x44160000
jmp 0x405682
comiss xmm1, xmm3
jbe 0x405682
comiss xmm0, xmm1
jbe 0x405682
subss xmm1, xmm3
mulss xmm1, xmm4
movss dword [0xea81d4], xmm1
xor esi, esi
xor edx, edx
cmp esi, 0x24
je 0x4056a7
cmp edx, 4
je 0x4056a7
lea ecx, [esi + edx]
xor eax, eax
cmp dword [ecx*4 + 0xea8be8], 1
sete al
mov dword [ecx*4 + 0xea8200], eax
inc edx
cmp edx, 9
jl 0x405686
add esi, 9
cmp esi, 0x51
jl 0x405684
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.005c33e1
mov esp, ebp
pop ebp
ret