Function at 0x401cc9
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x67334a
mov eax, dword fs:[0]
push eax
sub esp, 0x258
push ebx
push esi
push edi
mov eax, dword [0x6f2fc4]
xor eax, esp
push eax
lea eax, [esp + 0x268]
mov dword fs:[0], eax
mov esi, ecx
push str.DebugMode
lea ecx, [esp + 0x24]
call fcn.00403fb6
and dword [esp + 0x270], 0
lea eax, [esp + 0x20]
push eax
call fcn.0045733f
mov ecx, eax
call fcn.0045803f
test eax, eax
setne byte [esp + 0x1b]
or dword [esp + 0x270], 0xffffffff
xor edi, edi
push 0
inc edi
push edi
lea ecx, [esp + 0x28]
call fcn.00403e40
push str.SYSTEM_SELECT
lea ecx, [esp + 0x24]
call fcn.00403fb6
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x60]
push eax
mov dword [esp + 0x278], edi
call fcn.0045733f
mov ecx, eax
call fcn.00457fbc
lea ebx, [esi + 0x8019c]
mov byte [esp + 0x270], 2
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx]
push 0
push edi
lea ecx, [esp + 0x64]
call fcn.00403e40
or dword [esp + 0x270], 0xffffffff
push 0
push edi
lea ecx, [esp + 0x28]
call fcn.00403e40
push str.SYSTEM_CANCEL
lea ecx, [esp + 0x24]
call fcn.00403fb6
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x60]
push eax
mov dword [esp + 0x278], 3
call fcn.0045733f
mov ecx, eax
call fcn.00457fbc
lea ecx, [esi + 0x8023c]
mov byte [esp + 0x270], 4
mov edx, dword [ecx]
push eax
call dword [edx]
push 0
push edi
lea ecx, [esp + 0x64]
call fcn.00403e40
or dword [esp + 0x270], 0xffffffff
push 0
push edi
lea ecx, [esp + 0x28]
call fcn.00403e40
push str.SYSTEM_INTERSECT
lea ecx, [esp + 0x24]
call fcn.00403fb6
lea eax, [esp + 0x20]
mov dword [esp + 0x270], 5
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0045733f
mov ecx, eax
call fcn.00457fbc
lea ecx, [esi + 0x802dc]
mov byte [esp + 0x270], 6
mov edx, dword [ecx]
push eax
call dword [edx]
push 0
push edi
lea ecx, [esp + 0x64]
call fcn.00403e40
or dword [esp + 0x270], 0xffffffff
push 0
push edi
lea ecx, [esp + 0x28]
call fcn.00403e40
mov edi, dword [ebx]
lea ecx, [esi + 0x1f8c]
push 2
add edi, 0x68
call fcn.0044d66e
fmul qword [0x6b6458]
call fcn.00631790
push eax
mov ecx, ebx
call dword [edi]
lea ebx, [esi + 0x8023c]
mov edi, dword [ebx]
push 2
lea ecx, [esi + 0x1f8c]
add edi, 0x68
call fcn.0044d66e
fmul qword [0x6b6458]
call fcn.00631790
push eax
mov ecx, ebx
call dword [edi]
lea ebx, [esi + 0x802dc]
mov edi, dword [ebx]
push 2
lea ecx, [esi + 0x1f8c]
add edi, 0x68
call fcn.0044d66e
fmul qword [0x6b6478]
call fcn.00631790
push eax
mov ecx, ebx
call dword [edi]
push str.sys_sys_title.ogg
lea ecx, [esp + 0x24]
call fcn.00403fb6
lea ecx, [esp + 0x20]
lea ebx, [esi + 0xc8]
mov dword [esp + 0x270], 7
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax]
or dword [esp + 0x270], 0xffffffff
push 0
push 1
lea ecx, [esp + 0x28]
call fcn.00403e40
mov edi, dword [ebx]
push 2
lea ecx, [esi + 0x1f8c]
add edi, 0x68
call fcn.0044d66e
fmul qword [0x6b6458]
call fcn.00631790
push eax
mov ecx, ebx
call dword [edi]
xor ebx, ebx
cmp dword [esi + 0x2058], ebx
jge 0x401f49
mov dword [esi + 0x2058], ebx
cmp dword [esi + 0x1fd0], ebx
jne 0x401f59
cmp dword [esi + 0x2f40], ebx
jne 0x401f7c
lea eax, [esi + 0x1f90]
mov ecx, dword [eax]
cmp ecx, 0x20
je 0x401f6b
cmp ecx, 0x10
jne 0x401f6d
mov dword [eax], ebx
push 0x63
pop ecx
mov eax, esi
call fcn.00402be6
call fcn.00402d65
push 6
pop ecx
xor eax, eax
lea edi, [esi + 0x2f80]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x78]
push eax
call fcn.00404682
push ebx
call fcn.00404a1b
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x78]
inc bl
call fcn.00404702
xor edi, edi
inc edi
test bl, bl
je 0x401fb7
mov dword [esi + 0x2f80], edi
lea eax, [esp + 0x78]
push eax
call fcn.00404682
push edi
call fcn.00404a1b
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x78]
inc bl
call fcn.00404702
test bl, bl
je 0x401fe2
mov dword [esi + 0x2f84], edi
lea eax, [esp + 0x78]
push eax
call fcn.00404682
push 2
call fcn.00404a1b
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x78]
inc bl
call fcn.00404702
test bl, bl
je 0x40200e
mov dword [esi + 0x2f88], edi
lea eax, [esp + 0x78]
push eax
call fcn.00404682
push 3
call fcn.00404a1b
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x78]
inc bl
call fcn.00404702
test bl, bl
je 0x40203a
mov dword [esi + 0x2f8c], edi
lea eax, [esp + 0x78]
push eax
call fcn.00404682
push 4
call fcn.00404a1b
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x78]
inc bl
call fcn.00404702
test bl, bl
je 0x402066
mov dword [esi + 0x2f90], edi
lea eax, [esp + 0x78]
push eax
call fcn.00404682
push 5
call fcn.00404a1b
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x78]
inc bl
call fcn.00404702
test bl, bl
je 0x402092
mov dword [esi + 0x2f94], edi
call fcn.00402a6c
xor ebx, ebx
mov dword [esp + 0x14], ebx
cmp byte [esp + 0x1b], bl
je 0x4020d0
push 0x11c
call fcn.004406f1
pop ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x270], 8
cmp eax, ebx
je 0x4020ca
mov ecx, eax
call fcn.004598fe
jmp 0x4020cc
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], vtable.CSceneFactory.0
mov dword [esp + 0x44], vtable.CSceneFactory.1.0
mov dword [esp + 0x270], 9
mov dword [esp + 0x3c], vtable.NekoGameSDK4th::Base::Graphics::Graphics3D::CTrans3DFactory.0
mov byte [esp + 0x270], 0xa
lea ecx, [esp + 0xbc]
mov dword [esp + 0x48], esi
call fcn.0044902c
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0xc0]
mov byte [esp + 0x274], 0xb
call fcn.0044a689
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0xc0]
call fcn.00448739
lea eax, [esp + 0xbc]
mov dword [esi + 0x1f88], eax
call fcn.00403a87
mov ecx, eax
call fcn.0045aad8
push ebx
test al, al
jne 0x402173
cmp dword [esi + 0x2f40], ebx
jne 0x402160
push edi
push 2
jmp 0x402175
mov eax, esi
push ebx
cmp dword [esi + 0x1fd0], ebx
je 0x40216f
push 2
jmp 0x402177
push 3
jmp 0x402177
push ebx
push edi
mov eax, esi
call fcn.004029c4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
push eax
call dword [0x679388]
fldz
mov eax, dword [esi]
fstp dword [esi + 0x80994]
mov ecx, esi
call dword [eax + 0x10]
test al, al
je 0x402753
lea ebx, [esi + 0x388]
lea edi, [esi + 0x80914]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x4c]
test al, al
jne 0x4021f2
call fcn.004027c3
test al, al
jne 0x4021f2
lea ecx, [esi + 0x390]
mov eax, dword [ecx]
push 1
call dword [eax + 0x48]
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax + 0x14]
lea ecx, [esi + 0x398]
mov eax, dword [ecx]
push 1
call dword [eax + 0x20]
cmp byte [esi + 0x80940], 0
je 0x402202
mov eax, esi
call fcn.00402d65
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax]
mov ebx, dword [esi + 0x1f90]
mov ecx, eax
call dword [edx + 0x7c]
cmp ebx, eax
je 0x402241
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
mov dword [esi + 0x1f90], eax
call fcn.00402a6c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x50]
test al, al
jne 0x4023be
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x78]
test al, al
jne 0x4023be
lea eax, [esp + 0x4c]
push eax
call fcn.0045920f
push eax
call dword [0x679384]
mov eax, dword [esi + 0x2058]
xor ebx, ebx
and dword [esp + 0x10], ebx
sub eax, ebx
je 0x402307
dec eax
je 0x4022f8
dec eax
je 0x4022e9
sub eax, 8
je 0x4022df
dec eax
je 0x4022d0
dec eax
je 0x4022c1
sub eax, 0x57
jne 0x402314
mov ebx, 0x320
mov dword [esp + 0x10], 0x258
jmp 0x402314
mov ebx, 0x500
mov dword [esp + 0x10], 0x3c0
jmp 0x402314
mov ebx, 0x640
mov dword [esp + 0x10], 0x4b0
jmp 0x402314
mov dword [esp + 0x10], 0x5a0
jmp 0x40230f
mov ebx, 0x500
mov dword [esp + 0x10], 0x2d0
jmp 0x402314
mov ebx, 0x640
mov dword [esp + 0x10], 0x384
jmp 0x402314
mov dword [esp + 0x10], 0x438
mov ebx, 0x780
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x4c]
cmp eax, ebx
jne 0x402332
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x10]
je 0x4023be
push 0x6b56c4
call fcn.00403fd8
mov eax, dword [esi]
pop ecx
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax]
push 0
push 0
mov ecx, eax
call dword [edx + 0x20]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
push dword [esp + 0x10]
mov edx, dword [eax]
push ebx
mov ecx, eax
call dword [edx + 0x24]
cmp dword [esi + 0x2060], 0
push 0
sete al
mov byte [esp + 0x20], al
push dword [esp + 0x20]
mov ecx, edi
call fcn.00454c74
mov ecx, eax
call fcn.0045f70d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
mov ecx, dword [esi + 0x1f88]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [esi + 0x80114]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [esi + 0x80118]
test ecx, ecx
je 0x4023be
mov eax, dword [ecx]
call dword [eax + 0xc]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x4c]
test al, al
jne 0x40240d
cmp dword [esi + 0x2038], 0
jne 0x40240d
cmp dword [esi + 0x2378], 0
jne 0x40240d
lea ebx, [esi + 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x38]
test al, al
je 0x402434
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
fstp qword [esi + 0xc0]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
jmp 0x402434
lea ebx, [esi + 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x3c]
test al, al
je 0x402434
fld qword [esi + 0xc0]
mov eax, dword [ebx]
push ecx
push ecx
mov ecx, ebx
fstp qword [esp]
call dword [eax + 0x18]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
call fcn.004027c3
test al, al
je 0x402665
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x50]
test al, al
jne 0x402665
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x40246b
call fcn.00459439
call fcn.0045fe42
lea ebx, [esi + 0x388]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lea ecx, [esi + 0x390]
mov eax, dword [ecx]
call dword [eax]
lea ecx, [esi + 0x398]
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
test al, al
je 0x4024cb
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
test al, al
je 0x4024cb
mov ecx, dword [esi + 0x1f88]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [esi + 0x80114]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [esi + 0x80118]
test ecx, ecx
je 0x4024cb
mov eax, dword [ecx]
call dword [eax + 0xc]
lea ecx, [esi + 0x80384]
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esi + 0x80380]
call fcn.0045397e
test al, al
je 0x4024f2
push 0
lea ecx, [esi + 0x80380]
call fcn.00454384
lea ecx, [esi + 0x368]
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esi + 0x1f88]
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esi + 0x368]
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esi + 0x368]
mov eax, dword [ecx]
call dword [eax + 0xc]
test al, al
jne 0x40257b
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
test al, al
jne 0x40257b
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test al, al
je 0x40257b
mov eax, dword [edi]
push 0xff000000
mov ecx, edi
call dword [eax]
mov ecx, dword [esi + 0x1f88]
mov eax, dword [ecx]
call dword [eax + 8]
cmp dword [esp + 0x14], 0
je 0x40255d
mov ecx, dword [esp + 0x14]
call fcn.00459600
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x10]
cmp dword [esp + 0x14], 0
je 0x40257b
mov ecx, dword [esp + 0x14]
call fcn.00459444
mov ecx, edi
call fcn.00454c74
mov ecx, eax
call fcn.0045af9d
test al, al
jne 0x402598
lea ecx, [esi + 0x368]
mov eax, dword [ecx]
call dword [eax + 8]
cmp byte [esi + 0x809c0], 1
jne 0x402646
lea ecx, [esi + 0x80998]
mov eax, dword [ecx]
call dword [eax + 0x1c]
test al, al
je 0x4025e3
lea eax, [esi + 0x80990]
mov ecx, dword [eax]
dec ecx
mov byte [esi + 0x809c0], 0
je 0x4025d8
dec ecx
jne 0x402742
mov dword [eax], 4
jmp 0x402742
mov dword [eax], 3
jmp 0x402742
lea ecx, [esi + 0x80998]
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fdiv qword [0x6b6468]
fadd dword [esi + 0x80994]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esi + 0x80994]
fld dword [esp + 0x10]
fld qword [0x6b6610]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x402639
fsubr dword [esp + 0x10]
fstp dword [esi + 0x80994]
jmp 0x40263b
fstp st(0)
lea ecx, [esi + 0x80998]
jmp 0x40273d
lea eax, [esi + 0x80990]
mov ecx, dword [eax]
add ecx, 0xfffffffd
cmp ecx, 1
ja 0x402742
mov dword [eax], 5
jmp 0x402742
call fcn.0045fe71
lea ebx, [esi + 0x388]
mov eax, dword [ebx]
push 2
mov ecx, ebx
call dword [eax + 0x18]
lea ecx, [esi + 0x390]
mov eax, dword [ecx]
push 2
call dword [eax + 0x4c]
lea ecx, [esi + 0x398]
mov eax, dword [ecx]
push 2
call dword [eax + 0x24]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
test al, al
je 0x4026e7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x50]
test al, al
jne 0x4026e7
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
test al, al
je 0x4026e7
mov ecx, dword [esi + 0x1f88]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [esi + 0x80114]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [esi + 0x80118]
test ecx, ecx
je 0x4026e7
mov eax, dword [ecx]
call dword [eax + 0xc]
lea ecx, [esi + 0x368]
mov eax, dword [ecx]
call dword [eax + 0xc]
test al, al
jne 0x402725
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
test al, al
jne 0x402725
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test al, al
je 0x402725
mov ecx, dword [esi + 0x1f88]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x10]
mov ecx, edi
call fcn.00454c74
mov ecx, eax
call fcn.0045af9d
test al, al
jne 0x402742
lea ecx, [esi + 0x368]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
test al, al
jne 0x4021ad
xor ebx, ebx
lea ecx, [esp + 0xbc]
mov dword [esi + 0x1f88], ebx
mov byte [esp + 0x270], 0xa
call fcn.004490a0
mov ecx, dword [esp + 0x14]
cmp ecx, ebx
je 0x40277b
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x268]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret