Function at 0x402f70
Capabilities:
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x478486
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x12c
mov eax, dword [0x486090]
xor eax, dword [esp + 0x138]
mov edx, dword [esp + 0x148]
push ebx
push esi
mov esi, ecx
mov ecx, dword [esp + 0x148]
push edi
mov edi, dword [esp + 0x150]
mov dword [esp + 0x134], eax
mov eax, dword [esp + 0x148]
push edi
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x18], edx
call dword [0x47a0fc]
inc eax
push eax
call fcn.0043484f
xor ebx, ebx
add esp, 4
cmp eax, ebx
mov dword [esi + 0x14], eax
jne 0x403004
mov eax, dword [0x49e8c0]
push 0x30
mov ecx, 0x49e8c0
call dword [eax + 0xc]
push eax
push 0x47a4c0
push ebx
call dword [0x47a18c]
push ebx
call fcn.00434ab8
push ebp
mov ebp, dword [0x47a0f8]
push edi
push eax
call ebp
lea ecx, [esp + 0x24]
call fcn.0043a6c0
lea ecx, [esp + 0x14]
mov dword [esp + 0x144], ebx
call fcn.0043a6c0
push 0x104
lea ecx, [esp + 0x38]
push ecx
push ebx
mov byte [esp + 0x150], 1
call dword [0x47a0e0]
test eax, eax
je 0x40311a
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x28]
call fcn.0043aa40
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x18]
call fcn.0043aa40
push ebx
push 0x5c
lea ecx, [esp + 0x1c]
call fcn.0043a720
cmp eax, ebx
jl 0x403096
mov ecx, dword [esp + 0x1c]
sub ecx, eax
dec ecx
push ecx
lea ecx, [esp + 0x18]
call fcn.0043a8b0
push ebx
push 0x5c
lea ecx, [esp + 0x1c]
call fcn.0043a720
cmp eax, ebx
jge 0x403075
lea ecx, [esp + 0x14]
lea edi, [esi + 0x80]
push ecx
mov ecx, edi
call fcn.0043aa80
mov edx, dword [edi]
push ebx
mov ecx, edi
call dword [edx + 0xc]
push eax
lea ecx, [esp + 0x2c]
call fcn.0043a760
push eax
lea ecx, [esp + 0x28]
call fcn.0043a870
lea eax, [esp + 0x24]
push eax
lea ecx, [esi + 0x70]
call fcn.0043aa80
lea edi, [esi + 0x420]
push str.MOIRE
lea ecx, [esi + 0x90]
mov byte [edi], bl
call fcn.0043aa40
push str.mo_wave.pck
push edi
call ebp
push str.mo_gra.pck
lea ecx, [esi + 0x430]
push ecx
call ebp
push str.moire___Ver_1.00.00
lea ecx, [esi + 0x60]
call fcn.0043aa40
push str.mo_save.sav
lea edx, [esi + 0x440]
push edx
call ebp
xor edi, edi
pop ebp
lea ecx, [ecx]
mov ecx, dword [esi + edi*4 + 0xcc]
cmp ecx, ebx
je 0x403138
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [esi + edi*4 + 0xcc], ebx
cmp edi, 7
ja case.default.0x403141
jmp dword [edi*4 + 0x40331c]
push 0x14
call fcn.0043484f
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x140], 2
je 0x40328b
mov ecx, eax
call fcn.00425b60
jmp 0x40328d
push 0x3cc
call fcn.0043484f
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x140], 3
je 0x40328b
mov ecx, eax
call fcn.00423f30
jmp 0x40328d
push 0x374
call fcn.0043484f
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x140], 4
je 0x40328b
mov ecx, eax
call fcn.00421290
jmp 0x40328d
push 0xdf98
call fcn.0043484f
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x140], 5
je 0x40328b
mov ecx, eax
call fcn.00425d40
jmp 0x40328d
push 0x68
call fcn.0043484f
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x140], 6
je 0x40328b
mov ecx, eax
call fcn.0042fe80
jmp 0x40328d
push 0x3a8
call fcn.0043484f
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x140], 7
je 0x40328b
mov ecx, eax
call fcn.00432580
jmp 0x40328d
push 0x70
call fcn.0043484f
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x140], 8
je 0x40328b
mov ecx, eax
call fcn.004318c0
jmp 0x40328d
push 0x37c
call fcn.0043484f
add esp, 4
mov dword [esp + 0xc], eax
cmp eax, ebx
mov byte [esp + 0x140], 9
je 0x40328b
mov ecx, eax
call fcn.0042d500
jmp 0x40328d
xor eax, eax
mov byte [esp + 0x140], 1
mov dword [esi + edi*4 + 0xcc], eax
mov ecx, dword [esi + edi*4 + 0xcc]
cmp ecx, ebx
je 0x4032ac
mov edx, dword [ecx]
call dword [edx + 4]
inc edi
cmp edi, 9
jl 0x403120
mov ecx, esi
mov dword [esi + 0xc8], ebx
call fcn.00402650
lea ecx, [esp + 0x10]
mov byte [esp + 0x140], bl
call fcn.0043a700
lea ecx, [esp + 0x20]
mov dword [esp + 0x140], 0xffffffff
call fcn.0043a700
mov ecx, dword [esp + 0x138]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x134]
xor ecx, dword [esp + 0x144]
pop edi
pop esi
mov eax, 1
pop ebx
call fcn.0043488e
add esp, 0x138
ret 0x10