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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x66fb3c
mov eax, dword fs:[0]
push eax
sub esp, 0x258
push ebx
push esi
push edi
mov eax, dword [0x6ee104]
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.00404096
and dword [esp + 0x270], 0
lea eax, [esp + 0x20]
push eax
call fcn.004518f1
mov ecx, eax
call fcn.00452618
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.00403f20
push str.SYSTEM_SELECT
lea ecx, [esp + 0x24]
call fcn.00404096
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0xa4]
push eax
mov dword [esp + 0x278], edi
call fcn.004518f1
mov ecx, eax
call fcn.00452595
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 + 0xa8]
call fcn.00403f20
or dword [esp + 0x270], 0xffffffff
push 0
push edi
lea ecx, [esp + 0x28]
call fcn.00403f20
push str.SYSTEM_CANCEL
lea ecx, [esp + 0x24]
call fcn.00404096
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0xa4]
push eax
mov dword [esp + 0x278], 3
call fcn.004518f1
mov ecx, eax
call fcn.00452595
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 + 0xa8]
call fcn.00403f20
or dword [esp + 0x270], 0xffffffff
push 0
push edi
lea ecx, [esp + 0x28]
call fcn.00403f20
push str.SYSTEM_INTERSECT
lea ecx, [esp + 0x24]
call fcn.00404096
lea eax, [esp + 0x20]
mov dword [esp + 0x270], 5
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.004518f1
mov ecx, eax
call fcn.00452595
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 + 0xa8]
call fcn.00403f20
or dword [esp + 0x270], 0xffffffff
push 0
push edi
lea ecx, [esp + 0x28]
call fcn.00403f20
mov edi, dword [ebx]
lea ecx, [esi + 0x1f8c]
push 2
add edi, 0x68
call fcn.004489c2
fmul qword [0x6b2170]
call fcn.0062e180
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.004489c2
fmul qword [0x6b2180]
call fcn.0062e180
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.004489c2
fmul qword [0x6b2180]
call fcn.0062e180
push eax
mov ecx, ebx
call dword [edi]
push str.sys_sys_title.ogg
lea ecx, [esp + 0x24]
call fcn.00404096
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.00403f20
mov edi, dword [ebx]
push 2
lea ecx, [esi + 0x1f8c]
add edi, 0x68
call fcn.004489c2
fmul qword [0x6b2170]
call fcn.0062e180
push eax
mov ecx, ebx
call dword [edi]
cmp dword [esi + 0x2058], 0
jge 0x401ef2
and dword [esi + 0x2058], 0
lea eax, [esp + 0x5c]
push eax
or edi, 0xffffffff
call fcn.004046ec
push 1
call fcn.00404a85
lea ecx, [esp + 0x5c]
mov bl, al
call fcn.0040476c
test bl, bl
je 0x401f1a
xor edi, edi
inc edi
jmp 0x401f3d
lea eax, [esp + 0x5c]
push eax
call fcn.004046ec
push 2
call fcn.00404a85
lea ecx, [esp + 0x5c]
mov bl, al
call fcn.0040476c
test bl, bl
je 0x401f3d
push 2
pop edi
xor edx, edx
cmp dword [esi + 0x2f40], edx
jne 0x401f72
cmp edi, 0xffffffff
je 0x401f72
mov ecx, edi
mov eax, esi
mov dword [esi + 0x1f90], edx
call fcn.00402c14
call fcn.00402d99
mov dword [esi + 0x2f40], 1
mov dword [esi + 0x2f58], edi
jmp 0x401f9d
cmp dword [esi + 0x1fd0], edx
je 0x401f9d
lea eax, [esi + 0x1f90]
mov ecx, dword [eax]
cmp ecx, 0x20
je 0x401f8c
cmp ecx, 0x10
jne 0x401f8e
mov dword [eax], edx
push 0x63
pop ecx
mov eax, esi
call fcn.00402c14
call fcn.00402d99
push 6
pop ecx
xor eax, eax
lea edi, [esi + 0x2f80]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x5c]
push eax
call fcn.004046ec
push 0
call fcn.00404a85
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x5c]
inc bl
call fcn.0040476c
xor edi, edi
inc edi
test bl, bl
je 0x401fd9
mov dword [esi + 0x2f80], edi
lea eax, [esp + 0x5c]
push eax
call fcn.004046ec
push edi
call fcn.00404a85
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x5c]
inc bl
call fcn.0040476c
test bl, bl
je 0x402004
mov dword [esi + 0x2f84], edi
lea eax, [esp + 0x5c]
push eax
call fcn.004046ec
push 2
call fcn.00404a85
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x5c]
inc bl
call fcn.0040476c
test bl, bl
je 0x402030
mov dword [esi + 0x2f88], edi
lea eax, [esp + 0x5c]
push eax
call fcn.004046ec
push 3
call fcn.00404a85
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x5c]
inc bl
call fcn.0040476c
test bl, bl
je 0x40205c
mov dword [esi + 0x2f8c], edi
lea eax, [esp + 0x5c]
push eax
call fcn.004046ec
push 4
call fcn.00404a85
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x5c]
inc bl
call fcn.0040476c
test bl, bl
je 0x402088
mov dword [esi + 0x2f90], edi
lea eax, [esp + 0x5c]
push eax
call fcn.004046ec
push 5
call fcn.00404a85
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x5c]
inc bl
call fcn.0040476c
test bl, bl
je 0x4020b4
mov dword [esi + 0x2f94], edi
call fcn.00402a8e
xor ebx, ebx
mov dword [esp + 0x14], ebx
cmp byte [esp + 0x1b], bl
je 0x4020f2
push 0x11c
call fcn.0043c971
pop ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x270], 8
cmp eax, ebx
je 0x4020ec
mov ecx, eax
call fcn.00453fc7
jmp 0x4020ee
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.0044420f
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0xc0]
mov byte [esp + 0x274], 0xb
call fcn.005d21e5
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0xc0]
call fcn.004438c3
lea eax, [esp + 0xbc]
mov dword [esi + 0x1f88], eax
call fcn.00403b67
mov ecx, eax
call fcn.004551a0
push ebx
test al, al
jne 0x402195
cmp dword [esi + 0x2f40], ebx
jne 0x402182
push edi
push 2
jmp 0x402197
mov eax, esi
push ebx
cmp dword [esi + 0x1fd0], ebx
je 0x402191
push 2
jmp 0x402199
push 3
jmp 0x402199
push ebx
push edi
mov eax, esi
call fcn.004029e6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
push eax
call dword [0x675360]
fldz
mov eax, dword [esi]
fstp dword [esi + 0x80994]
mov ecx, esi
call dword [eax + 0x10]
test al, al
je 0x402775
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 0x402214
call fcn.004027e5
test al, al
jne 0x402214
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 0x402224
mov eax, esi
call fcn.00402d99
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 0x402263
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.00402a8e
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 0x4023e0
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 0x4023e0
lea eax, [esp + 0x4c]
push eax
call fcn.004538d8
push eax
call dword [0x675388]
mov eax, dword [esi + 0x2058]
xor ebx, ebx
and dword [esp + 0x10], ebx
sub eax, ebx
je 0x402329
dec eax
je 0x40231a
dec eax
je 0x40230b
sub eax, 8
je 0x402301
dec eax
je 0x4022f2
dec eax
je 0x4022e3
sub eax, 0x57
jne 0x402336
mov ebx, 0x320
mov dword [esp + 0x10], 0x258
jmp 0x402336
mov ebx, 0x500
mov dword [esp + 0x10], 0x3c0
jmp 0x402336
mov ebx, 0x640
mov dword [esp + 0x10], 0x4b0
jmp 0x402336
mov dword [esp + 0x10], 0x5a0
jmp 0x402331
mov ebx, 0x500
mov dword [esp + 0x10], 0x2d0
jmp 0x402336
mov ebx, 0x640
mov dword [esp + 0x10], 0x384
jmp 0x402336
mov dword [esp + 0x10], 0x438
mov ebx, 0x780
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x4c]
cmp eax, ebx
jne 0x402354
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x10]
je 0x4023e0
push 0x6b1400
call fcn.00403b0a
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.0044fd1d
mov ecx, eax
call fcn.0045a94f
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 0x4023e0
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 0x40242f
cmp dword [esi + 0x2038], 0
jne 0x40242f
cmp dword [esi + 0x2378], 0
jne 0x40242f
lea ebx, [esi + 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x38]
test al, al
je 0x402456
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 0x402456
lea ebx, [esi + 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x3c]
test al, al
je 0x402456
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.004027e5
test al, al
je 0x402687
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 0x402687
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x40248d
call fcn.00453b02
call fcn.0045b0a1
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 0x4024ed
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
test al, al
je 0x4024ed
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 0x4024ed
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.0044ea27
test al, al
je 0x402514
push 0
lea ecx, [esi + 0x80380]
call fcn.0044f42d
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 0x40259d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
test al, al
jne 0x40259d
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test al, al
je 0x40259d
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 0x40257f
mov ecx, dword [esp + 0x14]
call fcn.00453cc9
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 0x40259d
mov ecx, dword [esp + 0x14]
call fcn.00453b0d
mov ecx, edi
call fcn.0044fd1d
mov ecx, eax
call fcn.00456183
test al, al
jne 0x4025ba
lea ecx, [esi + 0x368]
mov eax, dword [ecx]
call dword [eax + 8]
cmp byte [esi + 0x809c0], 1
jne 0x402668
lea ecx, [esi + 0x80998]
mov eax, dword [ecx]
call dword [eax + 0x1c]
test al, al
je 0x402605
lea eax, [esi + 0x80990]
mov ecx, dword [eax]
dec ecx
mov byte [esi + 0x809c0], 0
je 0x4025fa
dec ecx
jne 0x402764
mov dword [eax], 4
jmp 0x402764
mov dword [eax], 3
jmp 0x402764
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 [0x6b2180]
fadd dword [esi + 0x80994]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esi + 0x80994]
fld dword [esp + 0x10]
fld qword [0x6b2390]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x40265b
fsubr dword [esp + 0x10]
fstp dword [esi + 0x80994]
jmp 0x40265d
fstp st(0)
lea ecx, [esi + 0x80998]
jmp 0x40275f
lea eax, [esi + 0x80990]
mov ecx, dword [eax]
add ecx, 0xfffffffd
cmp ecx, 1
ja 0x402764
mov dword [eax], 5
jmp 0x402764
call fcn.0045b0d0
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 0x402709
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 0x402709
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
test al, al
je 0x402709
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 0x402709
mov eax, dword [ecx]
call dword [eax + 0xc]
lea ecx, [esi + 0x368]
mov eax, dword [ecx]
call dword [eax + 0xc]
test al, al
jne 0x402747
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
test al, al
jne 0x402747
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test al, al
je 0x402747
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.0044fd1d
mov ecx, eax
call fcn.00456183
test al, al
jne 0x402764
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 0x4021cf
xor ebx, ebx
lea ecx, [esp + 0xbc]
mov dword [esi + 0x1f88], ebx
mov byte [esp + 0x270], 0xa
call fcn.00444283
mov ecx, dword [esp + 0x14]
cmp ecx, ebx
je 0x40279d
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