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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x6761cf
mov eax, dword fs:[0]
push eax
sub esp, 0x260
push ebx
push esi
push edi
mov eax, dword [0x6f2bf0]
xor eax, esp
push eax
lea eax, [esp + 0x270]
mov dword fs:[0], eax
mov esi, ecx
push str.DebugMode
lea ecx, [esp + 0x28]
call fcn.004040f0
and dword [esp + 0x278], 0
lea eax, [esp + 0x24]
push eax
call fcn.0045947d
mov ecx, eax
call fcn.0045a1f8
test eax, eax
setne byte [esp + 0x1b]
or dword [esp + 0x278], 0xffffffff
xor edi, edi
push 0
inc edi
push edi
lea ecx, [esp + 0x2c]
call fcn.00403f7a
push str.SYSTEM_SELECT
lea ecx, [esp + 0x28]
call fcn.004040f0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x280], edi
call fcn.0045947d
mov ecx, eax
call fcn.0045a175
lea ebx, [esi + 0x8019c]
mov byte [esp + 0x278], 2
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx]
push 0
push edi
lea ecx, [esp + 0x6c]
call fcn.00403f7a
or dword [esp + 0x278], 0xffffffff
push 0
push edi
lea ecx, [esp + 0x2c]
call fcn.00403f7a
push str.SYSTEM_CANCEL
lea ecx, [esp + 0x28]
call fcn.004040f0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x280], 3
call fcn.0045947d
mov ecx, eax
call fcn.0045a175
lea ecx, [esi + 0x8023c]
mov byte [esp + 0x278], 4
mov edx, dword [ecx]
push eax
call dword [edx]
push 0
push edi
lea ecx, [esp + 0x6c]
call fcn.00403f7a
or dword [esp + 0x278], 0xffffffff
push 0
push edi
lea ecx, [esp + 0x2c]
call fcn.00403f7a
push str.SYSTEM_INTERSECT
lea ecx, [esp + 0x28]
call fcn.004040f0
lea eax, [esp + 0x24]
mov dword [esp + 0x278], 5
push eax
lea eax, [esp + 0x68]
push eax
call fcn.0045947d
mov ecx, eax
call fcn.0045a175
lea ecx, [esi + 0x802dc]
mov byte [esp + 0x278], 6
mov edx, dword [ecx]
push eax
call dword [edx]
push 0
push edi
lea ecx, [esp + 0x6c]
call fcn.00403f7a
or dword [esp + 0x278], 0xffffffff
push 0
push edi
lea ecx, [esp + 0x2c]
call fcn.00403f7a
mov edi, dword [ebx]
lea ecx, [esi + 0x1f8c]
push 2
add edi, 0x68
call fcn.0045089c
fmul qword [0x6b9ea8]
call fcn.005f5310
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.0045089c
fmul qword [0x6b9e90]
call fcn.005f5310
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.0045089c
fmul qword [0x6b9e90]
call fcn.005f5310
push eax
mov ecx, ebx
call dword [edi]
push str.sys_sys_title.ogg
lea ecx, [esp + 0x28]
call fcn.004040f0
lea ecx, [esp + 0x24]
lea ebx, [esi + 0xc8]
mov dword [esp + 0x278], 7
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax]
or dword [esp + 0x278], 0xffffffff
push 0
push 1
lea ecx, [esp + 0x2c]
call fcn.00403f7a
mov edi, dword [ebx]
push 2
lea ecx, [esi + 0x1f8c]
add edi, 0x68
call fcn.0045089c
fmul qword [0x6b9ea8]
call fcn.005f5310
push eax
mov ecx, ebx
call dword [edi]
cmp dword [esi + 0x2058], 0
jge 0x401f12
and dword [esi + 0x2058], 0
xor edx, edx
cmp dword [esi + 0x1fd0], edx
jne 0x401f24
cmp dword [esi + 0x2f40], edx
jne 0x401f47
lea eax, [esi + 0x1f90]
mov ecx, dword [eax]
cmp ecx, 0x20
je 0x401f36
cmp ecx, 0x10
jne 0x401f38
mov dword [eax], edx
push 0xc
pop ecx
mov eax, esi
call fcn.00402c41
call fcn.00402db0
push 6
pop ecx
xor eax, eax
lea edi, [esi + 0x2f80]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x80]
push eax
call fcn.00404747
push 0
call fcn.00404ae0
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x80]
inc bl
call fcn.004047c7
xor edi, edi
inc edi
test bl, bl
je 0x401f89
mov dword [esi + 0x2f80], edi
lea eax, [esp + 0x80]
push eax
call fcn.00404747
push edi
call fcn.00404ae0
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x80]
inc bl
call fcn.004047c7
test bl, bl
je 0x401fba
mov dword [esi + 0x2f84], edi
lea eax, [esp + 0x80]
push eax
call fcn.00404747
push 2
call fcn.00404ae0
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x80]
inc bl
call fcn.004047c7
test bl, bl
je 0x401fec
mov dword [esi + 0x2f88], edi
lea eax, [esp + 0x80]
push eax
call fcn.00404747
push 3
call fcn.00404ae0
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x80]
inc bl
call fcn.004047c7
test bl, bl
je 0x40201e
mov dword [esi + 0x2f8c], edi
lea eax, [esp + 0x80]
push eax
call fcn.00404747
push 4
call fcn.00404ae0
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x80]
inc bl
call fcn.004047c7
test bl, bl
je 0x402050
mov dword [esi + 0x2f90], edi
lea eax, [esp + 0x80]
push eax
call fcn.00404747
push 5
call fcn.00404ae0
mov bl, al
neg bl
sbb bl, bl
lea ecx, [esp + 0x80]
inc bl
call fcn.004047c7
test bl, bl
je 0x402082
mov dword [esi + 0x2f94], edi
call fcn.00402abb
xor ebx, ebx
mov dword [esp + 0x20], ebx
cmp byte [esp + 0x1b], bl
je 0x4020c0
push 0x11c
call fcn.00444afc
pop ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x278], 8
cmp eax, ebx
je 0x4020ba
mov ecx, eax
call fcn.0045bbb1
jmp 0x4020bc
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x48], vtable.CSceneFactory.0
mov dword [esp + 0x4c], vtable.CSceneFactory.1.0
mov dword [esp + 0x278], 9
mov dword [esp + 0x40], vtable.NekoGameSDK4th::Base::Graphics::Graphics3D::CTrans3DFactory.0
mov byte [esp + 0x278], 0xa
lea ecx, [esp + 0xc4]
mov dword [esp + 0x50], esi
call fcn.0044c1e3
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0xc8]
mov byte [esp + 0x27c], 0xb
call fcn.0045d1dc
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0xc8]
call fcn.0044b82e
lea eax, [esp + 0xc4]
mov dword [esi + 0x1f88], eax
call fcn.00403bc1
mov ecx, eax
call fcn.0045cd7e
push ebx
test al, al
jne 0x402163
cmp dword [esi + 0x2f40], ebx
jne 0x402150
push edi
push 2
jmp 0x402165
mov eax, esi
push ebx
cmp dword [esi + 0x1fd0], ebx
je 0x40215f
push 2
jmp 0x402167
push 3
jmp 0x402167
push ebx
push edi
mov eax, esi
call fcn.00402a13
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
push eax
call dword [0x67d33c]
fldz
mov eax, dword [esi]
fstp dword [esi + 0x80994]
mov ecx, esi
call dword [eax + 0x10]
test al, al
je 0x4027a2
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 0x4021e0
call fcn.00402812
test al, al
jne 0x4021e0
lea ecx, [esi + 0x390]
mov eax, dword [ecx]
push 1
call dword [eax + 0x48]
lea ecx, [esi + 0x388]
mov eax, dword [ecx]
push 1
call dword [eax + 0x14]
lea ecx, [esi + 0x398]
mov eax, dword [ecx]
push 1
call dword [eax + 0x20]
cmp byte [esi + 0x80940], 0
je 0x4021f0
mov eax, esi
call fcn.00402db0
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 0x40222f
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.00402abb
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 0x402398
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 0x402398
lea eax, [esp + 0x54]
push eax
call fcn.0045b4c2
push eax
call dword [0x67d340]
mov eax, dword [esi + 0x2058]
xor ebx, ebx
and dword [esp + 0x14], ebx
sub eax, ebx
je 0x4022e1
dec eax
je 0x4022d2
dec eax
je 0x4022c3
sub eax, 8
je 0x4022b9
dec eax
je 0x4022aa
dec eax
jne 0x4022ee
mov ebx, 0x320
mov dword [esp + 0x14], 0x258
jmp 0x4022ee
mov ebx, 0x400
mov dword [esp + 0x14], 0x300
jmp 0x4022ee
mov dword [esp + 0x14], 0x3c0
jmp 0x4022e9
mov ebx, 0x320
mov dword [esp + 0x14], 0x1c2
jmp 0x4022ee
mov ebx, 0x400
mov dword [esp + 0x14], 0x240
jmp 0x4022ee
mov dword [esp + 0x14], 0x2d0
mov ebx, 0x500
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x54]
cmp eax, ebx
jne 0x40230c
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x14]
je 0x402398
push 0x6b9130
call fcn.00403b64
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 + 0x14]
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 + 0x48], al
push dword [esp + 0x48]
mov ecx, edi
call fcn.0045787d
mov ecx, eax
call fcn.0046250c
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 0x402398
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 0x4023e7
cmp dword [esi + 0x2038], 0
jne 0x4023e7
cmp dword [esi + 0x2378], 0
jne 0x4023e7
lea ebx, [esi + 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x38]
test al, al
je 0x40240e
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 0x40240e
lea ebx, [esi + 0x1c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x3c]
test al, al
je 0x40240e
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.00402812
test al, al
je 0x4026b8
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 0x4026b8
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x402445
call fcn.0045b6ec
call fcn.00462c47
lea ecx, [esi + 0x388]
mov eax, dword [ecx]
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 0x4024a3
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
test al, al
je 0x4024a3
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 0x4024a3
mov eax, dword [ecx]
call dword [eax + 0xc]
lea ecx, [esi + 0x80384]
mov eax, dword [ecx]
call dword [eax + 4]
lea ebx, [esi + 0x80380]
mov ecx, ebx
call fcn.004565c7
test al, al
je 0x4024c8
push 0
mov ecx, ebx
call fcn.00456fcd
mov eax, dword [esi + 0x2064]
sub eax, 0
je 0x4024ea
dec eax
je 0x4024e0
mov dword [esp + 0x14], 0xc
jmp 0x4024f2
mov dword [esp + 0x14], 0xe
jmp 0x4024f2
mov dword [esp + 0x14], 0x12
mov eax, dword [esi + 0x1f90]
cmp eax, 0x10
je 0x402502
cmp eax, 0x20
jne 0x402525
mov ecx, edi
call fcn.0045787d
mov ecx, eax
call fcn.0045dd87
fstp dword [esp + 0x1c]
fild dword [esp + 0x14]
fmul dword [esp + 0x1c]
call fcn.005f5310
mov dword [esp + 0x14], eax
mov ecx, ebx
call fcn.00456588
push 0
push dword [esp + 0x18]
mov ecx, eax
call fcn.00462f15
mov ecx, ebx
call fcn.00456593
push 0
push dword [esp + 0x18]
mov ecx, eax
call fcn.00462f15
push dword [esp + 0x14]
mov ecx, ebx
call fcn.004565ba
lea ebx, [esi + 0x368]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
mov ecx, dword [esi + 0x1f88]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
test al, al
jne 0x4025d5
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
test al, al
jne 0x4025d5
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test al, al
je 0x4025d5
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]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4025ba
call fcn.0045b8b3
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x10]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4025d5
call fcn.0045b6f7
mov ecx, edi
call fcn.0045787d
mov ecx, eax
call fcn.0045dd6b
test al, al
jne 0x4025ee
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
lea ebx, [esi + 0x809c0]
cmp byte [ebx], 1
jne 0x402699
lea ecx, [esi + 0x80998]
mov eax, dword [ecx]
call dword [eax + 0x1c]
test al, al
je 0x402637
lea eax, [esi + 0x80990]
mov ecx, dword [eax]
dec ecx
mov byte [ebx], 0
je 0x40262c
dec ecx
jne 0x402791
mov dword [eax], 4
jmp 0x402791
mov dword [eax], 3
jmp 0x402791
lea ebx, [esi + 0x80998]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fdiv qword [0x6b9e90]
fadd dword [esi + 0x80994]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esi + 0x80994]
fld dword [esp + 0x14]
fld qword [0x6ba0e0]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x402692
fsubr dword [esp + 0x14]
fstp dword [esi + 0x80994]
jmp 0x40278a
fstp st(0)
jmp 0x40278a
lea eax, [esi + 0x80990]
mov ecx, dword [eax]
add ecx, 0xfffffffd
cmp ecx, 1
ja 0x402791
mov dword [eax], 5
jmp 0x402791
call fcn.00462c76
lea ecx, [esi + 0x388]
mov eax, dword [ecx]
push 2
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 0x402738
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 0x402738
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
test al, al
je 0x402738
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 0x402738
mov eax, dword [ecx]
call dword [eax + 0xc]
lea ebx, [esi + 0x368]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
test al, al
jne 0x402778
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
test al, al
jne 0x402778
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
test al, al
je 0x402778
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.0045787d
mov ecx, eax
call fcn.0045dd6b
test al, al
jne 0x402791
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
test al, al
jne 0x402197
xor ebx, ebx
lea ecx, [esp + 0xc4]
mov dword [esi + 0x1f88], ebx
mov byte [esp + 0x278], 0xa
call fcn.0044c257
mov ecx, dword [esp + 0x20]
cmp ecx, ebx
je 0x4027ca
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x270]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret