Function at 0x4059a0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x93d814]
xor eax, ebp
mov dword [ebp - 4], eax
push 1
call fcn.00455c10
push 1
push 1
call fcn.00456450
push 0
call fcn.0045a160
push 1
call fcn.0043c710
push 0x7362cc
call fcn.00456e70
push 0x65
call fcn.004560c0
push 1
call fcn.00451020
push 0x3c
push 0x10
push 0x2d0
push 0x500
call fcn.0043c7f0
add esp, 0x30
call fcn.0045a3f0
test eax, eax
je 0x405a1b
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005c33e1
mov esp, ebp
pop ebp
ret 0x10
push ebx
push esi
push edi
push 0xfffffffffffffffe
call fcn.0043bff0
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 4
nop
call fcn.0045a420
test eax, eax
jne 0x4063e8
push eax
call fcn.0041ead0
add esp, 4
test eax, eax
jne 0x4063e8
lea eax, [ebp - 0x104]
push eax
call fcn.00450aa0
add esp, 4
xor eax, eax
nop
cmp byte [ebp + eax - 0x104], 1
jne 0x405a73
inc dword [eax*4 + 0xea7ab0]
jmp 0x405a7e
mov dword [eax*4 + 0xea7ab0], 0
inc eax
cmp eax, 0x100
jl 0x405a60
mov eax, dword [0xea93e4]
cmp eax, 0x5a
ja case.0x405a9b.1
movzx eax, byte [eax + 0x4066d4]
jmp dword [eax*4 + 0x4066a8]
call fcn.00404fc0
mov dword [0xea93e4], 0xa
push 1
push dword [0xea81dc]
push 0x2d0
push 0x500
push 0
push 0
call fcn.0041f260
push 0
push 0
push dword [0xea7fbc]
push 1
push 0x7362cc
push 0xc8
push 0xc5
call fcn.0040ddf0
push 0
push 0
push dword [0xea801c]
push 1
push str.Press_Enter
push 0x1f4
push 0x20a
call fcn.0040ddf0
add esp, 0x50
cmp dword [0xea7b20], 1
jne 0x406276
mov dword [0xea93e4], 0x14
jmp 0x406276
inc dword [0xea8010]
push 1
push dword [0xea81dc]
push 0x2d0
push 0x500
push 0
push 0
call fcn.0041f260
push 0
push 0
push dword [0xea7fbc]
push 1
push 0x7362cc
push 0xc8
push 0xc5
call fcn.0040ddf0
push 0
push 0
push dword [0xea801c]
push 1
push str.Press_Enter
push 0x1f4
push 0x20a
call fcn.0040ddf0
add esp, 0x50
call fcn.00401050
cmp dword [0xea8010], 0x1e
jne 0x406276
push dword [0xea7fbc]
call fcn.0040d3c0
mov dword [0xea93e4], 0x1e
jmp 0x406273
dec dword [0xea8010]
call fcn.004021e0
call fcn.00401050
cmp dword [0xea8010], 0
jne 0x406276
mov dword [0xea93e4], 0x28
jmp 0x406276
call fcn.004094e0
call fcn.004021e0
cmp dword [0xea7b20], 1
jne 0x406276
cmp dword [0xea81cc], 0
jne 0x406276
mov eax, dword [0xea81bc]
add eax, 0xfffffffb
cmp eax, 3
ja 0x406276
cmp dword [0xea81c0], 4
jge 0x406276
mov dword [0xea93e4], 0x32
jmp 0x406276
inc dword [0xea8010]
call fcn.004021e0
call fcn.00401050
cmp dword [0xea8010], 0x1e
jne 0x406276
mov dword [0xea93e4], 0x3c
jmp 0x406276
call fcn.004056d0
call fcn.00401050
mov dword [0xea93e4], 0x46
jmp 0x406276
dec dword [0xea8010]
call fcn.00404d40
call fcn.00401050
cmp dword [0xea8010], 0
jne 0x406276
mov dword [0xea93e4], 0x50
jmp 0x406276
call fcn.00407770
call fcn.00406730
mov eax, dword [0xea7ff8]
mov esi, dword [0xea8004]
mov edi, dword [0xea7ffc]
test eax, eax
jne 0x405cfd
cmp dword [0xea7b20], 1
jne 0x405d72
test edi, edi
jne 0x405d72
test esi, esi
jne 0x405d7a
cmp dword [0xea7eb4], edi
jne 0x405e1a
mov eax, 1
mov dword [0xea7ff8], eax
jmp 0x405d2d
cmp dword [0xea7b20], 1
jne 0x405d25
test edi, edi
jne 0x405d72
test esi, esi
jne 0x405d25
mov dword [0xea7fe8], esi
mov dword [0xea7fec], esi
mov dword [0xea7ff8], esi
jmp 0x405eee
test edi, edi
jne 0x405d72
test esi, esi
jne 0x405d7a
movss xmm0, dword [0xea7ff0]
movss xmm1, dword [0xea7ff4]
divss xmm0, dword [0x7366d8]
divss xmm1, dword [0x7366d8]
addss xmm0, dword [0xea7fe8]
addss xmm1, dword [0xea7fec]
movss dword [0xea7fe8], xmm0
movss dword [0xea7fec], xmm1
jmp 0x405e2a
test esi, esi
je 0x405e1a
movss xmm0, dword [0xea7fe8]
movss xmm2, dword [0x736698]
comiss xmm2, xmm0
movss xmm4, dword [0x736648]
jbe 0x405da3
addss xmm0, xmm4
movss dword [0xea7fe8], xmm0
movss xmm3, dword [0x7366a0]
comiss xmm0, xmm3
jbe 0x405dbc
subss xmm0, xmm4
movss dword [0xea7fe8], xmm0
movss xmm1, dword [0xea7fec]
comiss xmm2, xmm1
jbe 0x405dd5
addss xmm1, xmm4
movss dword [0xea7fec], xmm1
comiss xmm1, xmm3
jbe 0x405de6
subss xmm1, xmm4
movss dword [0xea7fec], xmm1
comiss xmm0, xmm2
movss xmm4, dword [0x73669c]
jb 0x405e03
comiss xmm3, xmm0
jb 0x405e03
movaps xmm0, xmm4
movss dword [0xea7fe8], xmm0
comiss xmm1, xmm2
jb 0x405e2a
comiss xmm3, xmm1
jb 0x405e2a
movaps xmm1, xmm4
movss dword [0xea7fec], xmm1
jmp 0x405e2a
movss xmm1, dword [0xea7fec]
movss xmm0, dword [0xea7fe8]
movss xmm2, dword [0x7367a4]
comiss xmm2, xmm0
movss xmm3, dword [0x7366a4]
jbe 0x405e4b
mov dword [0xea7fe8], 0xbf800000
jmp 0x405e5a
comiss xmm0, xmm3
jbe 0x405e5a
mov dword [0xea7fe8], 0x41200000
comiss xmm2, xmm1
jbe 0x405e6b
mov dword [0xea7fec], 0xbf800000
jmp 0x405e7a
comiss xmm1, xmm3
jbe 0x405e7a
mov dword [0xea7fec], 0x41200000
test eax, eax
je 0x405eee
call fcn.00406890
test eax, eax
jne 0x405edd
test edi, edi
jne 0x405e97
mov dword [0xea7ffc], 1
jmp 0x405eee
mov eax, dword [0xea8000]
cmp eax, 0x5a
jge 0x405ea9
inc eax
mov dword [0xea8000], eax
jmp 0x405eee
mov dword [0xea7fe8], 0
mov dword [0xea7fec], 0
mov dword [0xea7ff8], 0
mov dword [0xea7ffc], 0
mov dword [0xea8000], 0
jmp 0x405eee
cmp eax, 2
mov eax, 1
cmove esi, eax
mov dword [0xea8004], esi
call fcn.00404d40
cmp dword [0xea7ae8], 1
jne 0x405f21
cmp dword [0xea8004], 0
jne 0x405f2e
cmp dword [0xea7eb4], 0
jne 0x406276
mov dword [0xea93e4], 0x5a
jmp 0x406276
cmp dword [0xea8004], 0
je 0x406276
mov eax, dword [0xea8008]
cmp eax, 0x96
jge 0x405f45
inc eax
mov dword [0xea8008], eax
jmp 0x406276
mov edx, dword [0xea81c0]
mov eax, dword [0xea81bc]
mov dword [0xea8be4], edx
mov dword [0xea8be0], eax
mov dword [0xea8008], 0
lea ecx, [eax + edx*8]
add ecx, edx
mov dword [ecx*4 + 0xea8be8], 1
mov eax, dword [0xea8be4]
mov dword [ecx*4 + 0xea8200], 1
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 - 0x114], ecx
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x110], ebx
nop dword [eax]
mov eax, ecx
mov ecx, dword [ebp - 0x124]
shr eax, 1
add ecx, 0x4b
lea edi, [eax + eax*8]
mov eax, dword [ebp - 0x114]
add eax, 0x18
shl edi, 2
mov dword [ebp - 0x118], edi
mov esi, dword [edi + 0xea8be8]
add esi, edx
add esi, dword [ebx + 0xea8be8]
add eax, esi
mov dword [ebp - 0x11c], esi
mov dword [0xea8d2c], eax
mov edx, dword [edi + 0xea8bec]
add edx, dword [ebx + 0xea8bec]
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x120], edx
lea eax, [eax*2 + 0x31]
add eax, edx
add eax, esi
mov dword [0xea8d2c], eax
lea eax, [esi + edx]
mov ebx, dword [ebx + 0xea8bf0]
add ebx, dword [edi + 0xea8bf0]
add eax, ebx
mov dword [ebp - 0x134], ebx
add eax, ecx
mov ecx, dword [ebp - 0x118]
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x110]
mov edi, dword [edi + 0xea8bf4]
mov eax, dword [eax + 0xea8bf4]
add edi, eax
mov eax, dword [ebp - 0x114]
lea eax, [eax*4 + 0x66]
add eax, edi
add eax, ebx
add eax, esi
add eax, edx
mov dword [0xea8d2c], eax
mov esi, dword [ecx + 0xea8bf8]
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x128]
add ecx, 0x82
mov eax, dword [eax + 0xea8be8]
add esi, eax
lea eax, [esi + edi]
add eax, ebx
add eax, dword [ebp - 0x11c]
add eax, edx
add eax, ecx
mov ecx, dword [ebp - 0x12c]
mov dword [0xea8d2c], eax
add ecx, 0x9f
mov eax, dword [ebp - 0x118]
mov edx, dword [eax + 0xea8bfc]
mov eax, dword [ebp - 0x110]
mov eax, dword [eax + 0xea8bec]
add edx, eax
lea eax, [edx + esi]
add eax, edi
add eax, ebx
add eax, dword [ebp - 0x11c]
add eax, dword [ebp - 0x120]
add eax, ecx
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 0xea8c00]
mov eax, dword [ebp - 0x110]
mov eax, dword [eax + 0xea8bf0]
add ecx, eax
lea eax, [edx + esi]
add eax, edi
add eax, ebx
mov ebx, dword [ebp - 0x130]
add eax, ecx
add eax, dword [ebp - 0x11c]
add eax, dword [ebp - 0x120]
add ebx, 0xbd
add eax, ebx
add dword [ebp - 0x124], 3
mov ebx, dword [ebp - 0x114]
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x128], 5
add dword [ebp - 0x12c], 6
add dword [ebp - 0x130], 7
mov eax, dword [eax + 0xea8c04]
lea eax, [eax + ebx*8]
mov ebx, dword [ebp - 0x110]
add eax, dword [ebx + 0xea8bf4]
add eax, edx
add eax, esi
add eax, edi
add eax, dword [ebp - 0x134]
add eax, ecx
mov ecx, dword [ebp - 0x120]
add eax, dword [ebp - 0x11c]
add ecx, eax
lea eax, [ecx + 0xdc]
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x118]
mov edx, dword [eax + 0xea8c08]
mov eax, dword [ebx + 0xea8be8]
add edx, ecx
mov ecx, dword [ebp - 0x114]
add eax, 0xfc
add edx, ecx
add ebx, 0x24
add edx, eax
mov dword [ebp - 0x110], ebx
inc ecx
mov dword [0xea8d2c], edx
mov dword [ebp - 0x114], ecx
cmp ebx, 0x144
jl 0x405fd0
call fcn.005c8acf
push 0x7363a4
mov esi, eax
lea eax, [ebp - 0x108]
push str.SaveData.dat
push eax
call fcn.005c8b8f
mov dword [esi], eax
add esp, 0xc
mov eax, dword [ebp - 0x108]
test eax, eax
je 0x406232
push eax
push 1
push 0x150
push 0xea8be0
call fcn.005c89f1
push dword [ebp - 0x108]
call fcn.005c8767
add esp, 0x14
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [0xea93e4], 0x5a
jmp 0x406276
inc dword [0xea8010]
call fcn.00404d40
call fcn.00401050
cmp dword [0xea8010], 0x1e
jne 0x406276
mov dword [0xea93e4], 0x1e
jmp 0x406276
push 0x736634
call fcn.0045a1d0
add esp, 4
cmp dword [0xea79b4], 0
jne 0x4062a2
cmp dword [0xea79ac], 0
je 0x4062dd
push 0
call fcn.0040bb90
mov ecx, dword [0xea79b0]
add esp, 4
sub ecx, eax
add ecx, 0x3e8
jmp 0x4062d6
push 0
call fcn.0040bb90
movd xmm1, dword [0xea79b4]
add esp, 4
movd xmm0, dword [0xea79b0]
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, qword [0x736670]
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
sub ecx, eax
test ecx, ecx
jle 0x4062dd
push ecx
call ebx
push 0
call fcn.0040bb90
mov esi, dword [0xea79b4]
add esp, 4
mov ecx, dword [0xea79b0]
test esi, esi
cmove ecx, eax
mov dword [0xea79b0], ecx
mov ecx, eax
sub ecx, dword [0xea79ac]
mov dword [esi*4 + 0xea79b8], ecx
mov dword [0xea79ac], eax
cmp esi, 0x3b
jne 0x4063b8
xorps xmm0, xmm0
mov eax, 0xea79bc
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [eax - 4]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [eax]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [eax + 4]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [eax + 8]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [eax + 0xc]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [eax + 0x10]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [eax + 0x14]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [eax + 0x18]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [eax + 0x1c]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [eax + 0x20]
add eax, 0x28
addsd xmm0, xmm1
cmp eax, 0xea7aac
jl 0x406323
divsd xmm0, qword [0x736680]
movsd qword [0xea7aa8], xmm0
inc esi
mov eax, 0x88888889
imul esi
add edx, esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 2
sub esi, eax
mov dword [0xea79b4], esi
call fcn.0043b560
jmp 0x405a30
mov edx, dword [0xea81bc]
mov eax, dword [0xea81c0]
mov dword [0xea8be0], edx
mov dword [0xea8be4], eax
lea esi, [edx*2 + 0x29]
lea ecx, [eax*8]
add esi, edx
sub ecx, eax
add esi, ecx
xor ecx, ecx
xor edx, edx
mov dword [0xea8d2c], esi
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x114], edx
mov eax, ecx
shr eax, 1
lea ebx, [eax + eax*8]
shl ebx, 2
lea eax, [ecx + 0x18]
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0x118], ebx
mov edi, dword [ebx + 0xea8be8]
add edi, dword [edx + 0xea8be8]
add edi, esi
add eax, edi
mov dword [ebp - 0x11c], edi
mov dword [0xea8d2c], eax
lea eax, [ecx*2 + 0x31]
add eax, edi
mov esi, dword [ebx + 0xea8bec]
add esi, dword [edx + 0xea8bec]
add eax, esi
mov dword [ebp - 0x130], esi
mov dword [0xea8d2c], eax
mov edx, dword [edx + 0xea8bf0]
add edx, dword [ebx + 0xea8bf0]
mov eax, dword [ebp - 0x12c]
add eax, 0x4b
mov dword [ebp - 0x108], edx
add eax, edx
add eax, edi
add edi, 0x66
add eax, esi
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x114]
mov ebx, dword [ebx + 0xea8bf4]
mov eax, dword [eax + 0xea8bf4]
add ebx, eax
mov eax, ecx
mov ecx, dword [ebp - 0x118]
lea eax, [edx + eax*4]
add eax, edi
add eax, ebx
add eax, esi
mov dword [0xea8d2c], eax
mov edi, dword [ecx + 0xea8bf8]
mov eax, dword [ebp - 0x114]
mov eax, dword [eax + 0xea8be8]
add edi, eax
mov eax, dword [ebp - 0x128]
add eax, 0x82
add eax, ebx
add eax, edx
add eax, edi
add eax, dword [ebp - 0x11c]
add eax, esi
mov dword [0xea8d2c], eax
mov eax, ecx
mov ecx, dword [ebp - 0x130]
add ecx, 0x9f
mov esi, dword [eax + 0xea8bfc]
mov eax, dword [ebp - 0x114]
mov eax, dword [eax + 0xea8bec]
add esi, eax
mov eax, dword [ebp - 0x124]
add eax, edi
add eax, ebx
add eax, edx
add eax, esi
add eax, dword [ebp - 0x11c]
add eax, ecx
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x118]
mov edx, dword [eax + 0xea8c00]
mov eax, dword [ebp - 0x114]
mov eax, dword [eax + 0xea8bf0]
add edx, eax
mov eax, dword [ebp - 0x120]
add eax, 0xbd
add eax, esi
add eax, edi
add eax, ebx
add eax, dword [ebp - 0x108]
add eax, dword [ebp - 0x11c]
add eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x110]
add eax, edx
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x118]
add dword [ebp - 0x12c], 3
add dword [ebp - 0x128], 5
add dword [ebp - 0x124], 6
mov eax, dword [eax + 0xea8c04]
add dword [ebp - 0x120], 7
lea ecx, [eax + ecx*8]
add ecx, esi
add ecx, edi
add ecx, ebx
add ecx, dword [ebp - 0x108]
add ecx, dword [ebp - 0x11c]
add ecx, dword [ebp - 0x130]
add ecx, edx
mov edx, dword [ebp - 0x114]
add ecx, dword [edx + 0xea8bf4]
lea eax, [ecx + 0xdc]
mov dword [0xea8d2c], eax
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 0xea8c08]
add eax, ecx
mov ecx, dword [ebp - 0x110]
add eax, dword [edx + 0xea8be8]
add edx, 0x24
mov dword [ebp - 0x114], edx
lea esi, [ecx + 0xfc]
inc ecx
add esi, eax
mov dword [ebp - 0x110], ecx
mov dword [0xea8d2c], esi
cmp edx, 0x144
jl 0x406440
call fcn.005c8acf
push 0x7363a4
mov esi, eax
lea eax, [ebp - 0x10c]
push str.SaveData.dat
push eax
call fcn.005c8b8f
add esp, 0xc
mov dword [esi], eax
mov eax, dword [ebp - 0x10c]
pop edi
pop esi
pop ebx
test eax, eax
je 0x406691
push eax
push 1
push 0x150
push 0xea8be0
call fcn.005c89f1
push dword [ebp - 0x10c]
call fcn.005c8767
add esp, 0x14
call fcn.0045a360
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
call fcn.005c33e1
mov esp, ebp
pop ebp
ret 0x10