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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x673f0c
mov eax, dword fs:[0]
push eax
sub esp, 0x2e8
mov eax, dword [0x6d35d0]
xor eax, esp
mov dword [esp + 0x2b0], eax
push ebx
push esi
push edi
mov eax, dword [0x6d35d0]
xor eax, esp
push eax
lea eax, [esp + 0x2f8]
mov dword fs:[0], eax
mov esi, ecx
push 9
xor ebx, ebx
push str.DebugMode
lea ecx, [esp + 0x6c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], ebx
mov byte [esp + 0x70], bl
call fcn.00404c00
mov dword [esp + 0x300], ebx
mov edi, dword [0xf62668]
lea eax, [esp + 0x64]
add edi, 0x14
push eax
lea ebx, [esp + 0x29c]
call fcn.004acaca
cmp dword [eax + 0x14], 0
jne 0x452882
xor edi, edi
xor ebx, ebx
mov dword [esp + 0xd8], edi
jmp 0x4528bd
cmp dword [eax + 0x18], 0x10
jb 0x45288d
mov eax, dword [eax + 4]
jmp 0x452890
add eax, 4
lea ecx, [esp + 0xcc]
push ecx
push 0x691abc
push eax
call fcn.0062e394
mov edx, dword [esp + 0xdc]
mov ebx, dword [esp + 0xd8]
add esp, 0xc
mov dword [esp + 0xd8], edx
xor edi, edi
cmp dword [esp + 0x2b0], 0x10
jb 0x4528d7
mov eax, dword [esp + 0x29c]
push eax
call fcn.0046efcb
add esp, 4
cmp ebx, edi
setne byte [esp + 0x5f]
mov dword [esp + 0x300], 0xffffffff
cmp dword [esp + 0x7c], 0x10
jb 0x4528fd
mov ecx, dword [esp + 0x68]
push ecx
call fcn.0046efcb
add esp, 4
push 0xb
push 0x6877d8
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], edi
mov byte [esp + 0x70], 0
call fcn.00404c00
mov dword [esp + 0x300], 1
mov edx, dword [esi + 0xdeda8]
mov edx, dword [edx]
lea ebx, [esi + 0xdeda8]
lea eax, [esp + 0x64]
push eax
mov ecx, ebx
call edx
mov dword [esp + 0x300], 0xffffffff
cmp dword [esp + 0x7c], 0x10
jb 0x452965
mov eax, dword [esp + 0x68]
push eax
call fcn.0046efcb
add esp, 4
push 0xb
push str.sys002.ogg
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], edi
mov byte [esp + 0x70], 0
call fcn.00404c00
mov dword [esp + 0x300], 2
mov edx, dword [esi + 0xdee48]
mov edx, dword [edx]
lea ecx, [esi + 0xdee48]
lea eax, [esp + 0x64]
push eax
call edx
mov dword [esp + 0x300], 0xffffffff
cmp dword [esp + 0x7c], 0x10
jb 0x4529cb
mov eax, dword [esp + 0x68]
push eax
call fcn.0046efcb
add esp, 4
push 0xb
push 0x6877cc
lea ecx, [esp + 0x6c]
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], edi
mov byte [esp + 0x70], 0
call fcn.00404c00
mov dword [esp + 0x300], 3
mov edx, dword [esi + 0xdeee8]
mov edx, dword [edx]
lea edi, [esi + 0xdeee8]
lea eax, [esp + 0x64]
push eax
mov ecx, edi
call edx
mov dword [esp + 0x300], 0xffffffff
cmp dword [esp + 0x7c], 0x10
jb 0x452a33
mov eax, dword [esp + 0x68]
push eax
call fcn.0046efcb
add esp, 4
mov ecx, dword [esi + 0x2070]
mov dword [esp + 0x48], ecx
fild dword [esp + 0x48]
fld qword [0x6a1600]
mov edx, dword [esi + 0x20ac]
mov eax, dword [esi + 0x2068]
fdiv st(1), st(0)
mov dword [esp + 0x48], edx
mov ecx, dword [esi + 0x2098]
mov ebx, dword [ebx]
fxch st(1)
fstp dword [esp + 0x58]
fild dword [esp + 0x48]
mov dword [esp + 0x48], eax
fstp dword [esp + 0x54]
fidivr dword [esp + 0x48]
mov dword [esp + 0x48], ecx
fmul dword [esp + 0x54]
fstp dword [esp + 0x50]
fild dword [esp + 0x48]
fmul dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul dword [esp + 0x58]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fmul qword [0x6a1520]
call fcn.00631650
mov edx, dword [ebx + 0x68]
push eax
lea ecx, [esi + 0xdeda8]
call edx
mov eax, dword [esi + 0x2070]
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
fld qword [0x6a1600]
mov ecx, dword [esi + 0x20ac]
mov edx, dword [esi + 0x2068]
fdiv st(1), st(0)
mov dword [esp + 0x48], ecx
mov eax, dword [esi + 0x2098]
mov ebx, dword [esi + 0xdee48]
fxch st(1)
fstp dword [esp + 0x58]
fild dword [esp + 0x48]
mov dword [esp + 0x48], edx
fstp dword [esp + 0x54]
fidivr dword [esp + 0x48]
mov dword [esp + 0x48], eax
fmul dword [esp + 0x54]
fstp dword [esp + 0x50]
fild dword [esp + 0x48]
fmul dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul dword [esp + 0x58]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fmul qword [0x6a1520]
call fcn.00631650
mov edx, dword [ebx + 0x68]
push eax
lea ecx, [esi + 0xdee48]
call edx
mov eax, dword [esi + 0x2070]
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
fld qword [0x6a1600]
mov ecx, dword [esi + 0x20ac]
mov edx, dword [esi + 0x2068]
fdiv st(1), st(0)
mov dword [esp + 0x48], ecx
mov eax, dword [esi + 0x2098]
fxch st(1)
fstp dword [esp + 0x58]
fild dword [esp + 0x48]
mov dword [esp + 0x48], edx
fstp dword [esp + 0x54]
fidivr dword [esp + 0x48]
fmul dword [esp + 0x54]
fstp dword [esp + 0x50]
mov ebx, dword [edi]
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
fmul dword [esp + 0x50]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul dword [esp + 0x58]
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fmul qword [0x6a1520]
call fcn.00631650
mov edx, dword [ebx + 0x68]
push eax
mov ecx, edi
call edx
xor edx, edx
cmp dword [esi + 0x20e0], edx
jge 0x452bcc
mov dword [esi + 0x20e0], edx
mov ecx, 0xc
cmp dword [esi + 0x2058], edx
jne 0x452be1
cmp dword [esi + 0x2fc8], edx
jne 0x452c30
mov eax, dword [esi + 0x2018]
cmp eax, 0x20
je 0x452bf1
cmp eax, 0x10
jne 0x452bf7
mov dword [esi + 0x2018], edx
mov eax, dword [esi + 0x20e8]
push esi
mov dword [esi + 0xdf494], ecx
mov dword [esi + 0xdf49c], eax
mov dword [esi + 0x20e8], 1
mov dword [esi + 0x20ec], 2
mov dword [esi + 0x20e0], ecx
mov byte [esi + 0xdf4a0], 1
call fcn.00454390
xor eax, eax
mov dword [esi + 0x3008], eax
mov dword [esi + 0x300c], eax
mov dword [esi + 0x3010], eax
mov dword [esi + 0x3014], eax
mov dword [esi + 0x3018], eax
mov dword [esi + 0x301c], eax
lea eax, [esp + 0x8c]
push eax
mov dword [esp + 0x8c], vtable.CChangeWindowManager.0
call fcn.00455f80
lea ecx, [esp + 0xb0]
push ecx
mov byte [esp + 0xac], 0
mov dword [esp + 0xb0], vtable.NekoGameSDK4th::Base::Thread::CCriticalSection.0
mov dword [esp + 0xcc], 0
call dword [0x6770b0]
lea edi, [esp + 0x8c]
call fcn.00425c70
mov ebx, dword [0x677358]
push 0
call ebx
push 1
mov edi, eax
call ebx
mov ecx, eax
xor edx, edx
mov eax, edi
call fcn.00455e60
test al, al
lea ecx, [esp + 0x88]
sete byte [esp + 0x47]
call fcn.00455920
cmp byte [esp + 0x47], 0
je 0x452ce5
mov dword [esi + 0x3008], 1
lea edx, [esp + 0x8c]
push edx
mov dword [esp + 0x8c], vtable.CChangeWindowManager.0
call fcn.00455f80
lea eax, [esp + 0xb0]
push eax
mov byte [esp + 0xac], 0
mov dword [esp + 0xb0], vtable.NekoGameSDK4th::Base::Thread::CCriticalSection.0
mov dword [esp + 0xcc], 0
call dword [0x6770b0]
lea edi, [esp + 0x8c]
call fcn.00425c70
push 0
call ebx
push 1
mov edi, eax
call ebx
mov ecx, eax
mov edx, 1
mov eax, edi
call fcn.00455e60
test al, al
lea ecx, [esp + 0x88]
sete byte [esp + 0x47]
call fcn.00455920
cmp byte [esp + 0x47], 0
je 0x452d71
mov dword [esi + 0x300c], 1
lea ecx, [esp + 0x8c]
push ecx
mov dword [esp + 0x8c], vtable.CChangeWindowManager.0
call fcn.00455f80
lea edx, [esp + 0xb0]
push edx
mov byte [esp + 0xac], 0
mov dword [esp + 0xb0], vtable.NekoGameSDK4th::Base::Thread::CCriticalSection.0
mov dword [esp + 0xcc], 0
call dword [0x6770b0]
lea edi, [esp + 0x8c]
call fcn.00425c70
push 0
call ebx
push 1
mov edi, eax
call ebx
mov ecx, eax
mov edx, 2
mov eax, edi
call fcn.00455e60
test al, al
lea ecx, [esp + 0x88]
sete byte [esp + 0x47]
call fcn.00455920
cmp byte [esp + 0x47], 0
je 0x452dfd
mov dword [esi + 0x3010], 1
lea eax, [esp + 0x8c]
push eax
mov dword [esp + 0x8c], vtable.CChangeWindowManager.0
call fcn.00455f80
lea ecx, [esp + 0xb0]
push ecx
mov byte [esp + 0xac], 0
mov dword [esp + 0xb0], vtable.NekoGameSDK4th::Base::Thread::CCriticalSection.0
mov dword [esp + 0xcc], 0
call dword [0x6770b0]
lea edi, [esp + 0x8c]
call fcn.00425c70
push 0
call ebx
push 1
mov edi, eax
call ebx
mov ecx, eax
mov edx, 3
mov eax, edi
call fcn.00455e60
test al, al
lea ecx, [esp + 0x88]
sete byte [esp + 0x47]
call fcn.00455920
cmp byte [esp + 0x47], 0
je 0x452e89
mov dword [esi + 0x3014], 1
lea edx, [esp + 0x8c]
push edx
mov dword [esp + 0x8c], vtable.CChangeWindowManager.0
call fcn.00455f80
lea eax, [esp + 0xb0]
push eax
mov byte [esp + 0xac], 0
mov dword [esp + 0xb0], vtable.NekoGameSDK4th::Base::Thread::CCriticalSection.0
mov dword [esp + 0xcc], 0
call dword [0x6770b0]
lea edi, [esp + 0x8c]
call fcn.00425c70
push 0
call ebx
push 1
mov edi, eax
call ebx
mov ecx, eax
mov edx, 4
mov eax, edi
call fcn.00455e60
test al, al
lea ecx, [esp + 0x88]
sete byte [esp + 0x47]
call fcn.00455920
cmp byte [esp + 0x47], 0
je 0x452f15
mov dword [esi + 0x3018], 1
lea ecx, [esp + 0x8c]
push ecx
mov dword [esp + 0x8c], vtable.CChangeWindowManager.0
call fcn.00455f80
lea edx, [esp + 0xb0]
push edx
mov byte [esp + 0xac], 0
mov dword [esp + 0xb0], vtable.NekoGameSDK4th::Base::Thread::CCriticalSection.0
mov dword [esp + 0xcc], 0
call dword [0x6770b0]
lea edi, [esp + 0x8c]
call fcn.00425c70
push 0
call ebx
push 1
mov edi, eax
call ebx
mov ecx, eax
mov edx, 5
mov eax, edi
call fcn.00455e60
test al, al
lea ecx, [esp + 0x88]
sete bl
call fcn.00455920
test bl, bl
je 0x452f9c
mov dword [esi + 0x301c], 1
mov eax, esi
call fcn.00454000
xor ebx, ebx
mov dword [esp + 0x60], ebx
cmp byte [esp + 0x5f], bl
je 0x45304d
cmp byte [0xf6273c], bl
je 0x452fc7
push 0x11c
call fcn.0062d956
jmp 0x453029
cmp dword [0xf62698], ebx
jne 0x45301f
push 0x30
mov byte [0xf6273c], 1
call fcn.0046ef9c
mov edi, eax
add esp, 4
cmp edi, ebx
je 0x453010
mov dword [edi], vtable.NekoGameSDK4th::Base::Allocator::CAllocatorManager.0
mov dword [edi + 4], ebx
mov dword [edi + 8], vtable.NekoGameSDK4th::Base::Allocator::CAllocator.0
lea eax, [edi + 0x14]
mov byte [edi + 0xc], 0
push eax
mov dword [edi + 0x10], vtable.NekoGameSDK4th::Base::Thread::CCriticalSection.0
mov dword [edi + 0x2c], ebx
call dword [0x6770b0]
jmp 0x453012
xor edi, edi
mov dword [0xf62698], edi
mov byte [0xf6273c], 0
push 0x11c
call fcn.0046eda1
mov dword [esp + 0x4c], eax
add esp, 4
mov dword [esp + 0x300], 4
cmp eax, ebx
je 0x453047
push eax
call fcn.004cf7cf
jmp 0x453049
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0xe0], 0x6965c8
mov dword [esp + 0xe4], 0x6965d8
mov dword [esp + 0x300], 5
mov dword [esp + 0xdc], vtable.NekoGameSDK4th::Base::Graphics::Graphics3D::CTrans3DFactory.0
lea ecx, [esp + 0xec]
mov byte [esp + 0x300], 6
push ecx
mov dword [esp + 0xec], esi
call fcn.004cbc37
mov byte [esp + 0x300], 7
lea edx, [esp + 0xe0]
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0xf4]
lea eax, [esp + 0xdc]
push eax
mov eax, dword [edx + 0x24]
lea ecx, [esp + 0xf8]
call eax
lea ecx, [esp + 0xec]
mov dword [esi + 0x2010], ecx
call fcn.00454d30
cmp byte [eax + 0x40], 0
jne 0x453273
cmp dword [esi + 0x2fc8], ebx
jne 0x453247
cmp byte [0xf6273c], 0
mov edi, dword [esi + 0x2010]
mov dword [esp + 0x48], 4
je 0x45310e
push 4
call fcn.0062d956
jmp 0x453130
cmp dword [0xf62698], ebx
jne 0x453129
mov byte [0xf6273c], 1
call fcn.0046ef62
mov byte [0xf6273c], 0
push 4
call fcn.0046eda1
add esp, 4
cmp eax, ebx
je 0x453142
lea edx, [esp + 0x29c]
mov dword [eax], edx
jmp 0x453144
xor eax, eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x2b0], ebx
lea eax, [esp + 0x48]
push eax
mov byte [esp + 0x304], 9
lea eax, [esp + 0x2a0]
mov dword [esp + 0x29c], ebx
call fcn.0049b5a8
add edi, 0x164
lea ecx, [esp + 0x298]
call fcn.004cc674
mov byte [esp + 0x300], 7
mov eax, dword [esp + 0x2a8]
cmp eax, ebx
je 0x4531ae
push eax
call fcn.0046efcb
add esp, 4
cmp byte [0xf6273d], 0
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x2b0], ebx
je 0x4531ef
mov ecx, dword [esp + 0x29c]
push ecx
call fcn.0062da20
mov ecx, dword [esi + 0x2010]
add esp, 4
push ebx
push 1
call fcn.004cbf5f
jmp 0x45356d
mov edx, dword [esp + 0x29c]
mov esi, dword [0xf62698]
push edx
call fcn.0046ee0e
cmp dword [0xf62670], ebx
jne 0x453230
mov ecx, dword [0xf62698]
mov byte [0xf6273d], 1
cmp ecx, ebx
je 0x453223
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov dword [0xf62698], ebx
mov byte [0xf6273d], 0
mov esi, dword [esp + 0x4c]
mov ecx, dword [esi + 0x2010]
push ebx
push 1
call fcn.004cbf5f
jmp 0x45356d
mov eax, dword [esi + 0x2010]
cmp dword [esi + 0x2058], ebx
je 0x453259
push 4
jmp 0x45325b
push 5
push eax
call fcn.004cbe26
mov ecx, dword [esi + 0x2010]
push ebx
push ebx
call fcn.004cbf5f
jmp 0x45356d
cmp byte [0xf6273c], 0
mov edi, dword [esi + 0x2010]
mov dword [esp + 0x48], 1
je 0x453293
push 4
call fcn.0062d956
jmp 0x4532b5
cmp dword [0xf62698], ebx
jne 0x4532ae
mov byte [0xf6273c], 1
call fcn.0046ef62
mov byte [0xf6273c], 0
push 4
call fcn.0046eda1
add esp, 4
cmp eax, ebx
je 0x4532c7
lea ecx, [esp + 0x29c]
mov dword [eax], ecx
jmp 0x4532c9
xor eax, eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x2b0], ebx
lea edx, [esp + 0x48]
mov byte [esp + 0x300], 0xb
push edx
lea eax, [esp + 0x2a0]
mov dword [esp + 0x29c], ebx
call fcn.0049b5a8
add edi, 0x164
lea ecx, [esp + 0x298]
call fcn.004cc674
mov byte [esp + 0x300], 7
mov eax, dword [esp + 0x2a8]
cmp eax, ebx
je 0x45337b
cmp byte [0xf6273d], 0
push eax
je 0x45333e
call fcn.0062da20
add esp, 4
jmp 0x45337b
mov esi, dword [0xf62698]
call fcn.0046ee0e
cmp dword [0xf62670], ebx
jne 0x453377
mov ecx, dword [0xf62698]
mov byte [0xf6273d], 1
cmp ecx, ebx
je 0x45336a
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov dword [0xf62698], ebx
mov byte [0xf6273d], 0
mov esi, dword [esp + 0x4c]
cmp byte [0xf6273d], 0
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x2b0], ebx
je 0x4533ab
mov eax, dword [esp + 0x29c]
push eax
call fcn.0062da20
add esp, 4
jmp 0x4533f0
mov ecx, dword [esp + 0x29c]
mov esi, dword [0xf62698]
push ecx
call fcn.0046ee0e
cmp dword [0xf62670], ebx
jne 0x4533ec
mov ecx, dword [0xf62698]
mov byte [0xf6273d], 1
cmp ecx, ebx
je 0x4533df
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [0xf62698], ebx
mov byte [0xf6273d], 0
mov esi, dword [esp + 0x4c]
cmp byte [0xf6273c], 0
mov edi, dword [esi + 0x2010]
mov byte [edi + 0x1a4], 1
je 0x45340f
push 4
call fcn.0062d956
jmp 0x453431
cmp dword [0xf62698], ebx
jne 0x45342a
mov byte [0xf6273c], 1
call fcn.0046ef62
mov byte [0xf6273c], 0
push 4
call fcn.0046eda1
add esp, 4
cmp eax, ebx
je 0x453443
lea ecx, [esp + 0x29c]
mov dword [eax], ecx
jmp 0x453445
xor eax, eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x2b0], ebx
mov byte [esp + 0x300], 0xd
add edi, 0x164
lea ecx, [esp + 0x298]
mov dword [esp + 0x298], 5
mov dword [esp + 0x2b4], ebx
mov dword [esp + 0x2b8], ebx
call fcn.004cc674
mov byte [esp + 0x300], 7
mov eax, dword [esp + 0x2a8]
cmp eax, ebx
je 0x4534f8
cmp byte [0xf6273d], 0
push eax
je 0x4534bb
call fcn.0062da20
add esp, 4
jmp 0x4534f8
mov esi, dword [0xf62698]
call fcn.0046ee0e
cmp dword [0xf62670], ebx
jne 0x4534f4
mov ecx, dword [0xf62698]
mov byte [0xf6273d], 1
cmp ecx, ebx
je 0x4534e7
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [0xf62698], ebx
mov byte [0xf6273d], 0
mov esi, dword [esp + 0x4c]
cmp byte [0xf6273d], 0
mov dword [esp + 0x2a8], ebx
mov dword [esp + 0x2ac], ebx
mov dword [esp + 0x2b0], ebx
je 0x453528
mov ecx, dword [esp + 0x29c]
push ecx
call fcn.0062da20
add esp, 4
jmp 0x45356d
mov edx, dword [esp + 0x29c]
mov esi, dword [0xf62698]
push edx
call fcn.0046ee0e
cmp dword [0xf62670], ebx
jne 0x453569
mov ecx, dword [0xf62698]
mov byte [0xf6273d], 1
cmp ecx, ebx
je 0x45355c
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov dword [0xf62698], ebx
mov byte [0xf6273d], 0
mov esi, dword [esp + 0x4c]
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
mov ecx, esi
call edx
push eax
call dword [0x677350]
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
test al, al
je 0x453bad
lea eax, [esi + 0x1c]
lea ecx, [esi + 0x410]
lea edx, [esi + 0x418]
mov dword [esp + 0x48], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], edx
lea ecx, [esi + 0xdf478]
lea eax, [esi + 0x420]
lea edx, [esi + 0x3f0]
mov dword [esp + 0x58], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
mov ebx, ecx
nop
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov ecx, esi
call edx
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x4c]
call eax
test al, al
jne 0x453629
call fcn.00453c70
test al, al
jne 0x453625
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx]
mov eax, dword [edx + 0x48]
push 1
call eax
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push 1
call eax
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx]
mov eax, dword [edx + 0x20]
push 1
call eax
mov esi, dword [esp + 0x4c]
cmp byte [esi + 0xdf4a0], 0
je 0x453638
push esi
call fcn.00454390
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
mov edi, dword [esi + 0x2018]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
cmp edi, eax
je 0x453685
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
mov dword [esi + 0x2018], eax
mov eax, esi
call fcn.00454000
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x50]
call eax
test al, al
jne 0x4537d9
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x78]
call eax
test al, al
jne 0x4537d9
lea ecx, [esp + 0x64]
push ecx
push ecx
call fcn.004cee12
add esp, 4
push eax
call dword [0x67734c]
mov eax, dword [esi + 0x20e0]
xor edi, edi
xor ebx, ebx
cmp eax, 0xc
ja case.0x4536f6.3
movzx edx, byte [eax + 0x453c1c]
jmp dword [edx*4 + 0x453c00]
mov edi, 0x500
mov ebx, 0x2d0
jmp case.0x4536f6.3
mov edi, 0x400
mov ebx, 0x240
jmp case.0x4536f6.3
mov ebx, 0x1c2
jmp 0x453739
mov edi, 0x500
mov ebx, 0x3c0
jmp case.0x4536f6.3
mov edi, 0x400
mov ebx, 0x300
jmp case.0x4536f6.3
mov ebx, 0x258
mov edi, 0x320
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x64]
cmp eax, edi
jne 0x453756
mov ecx, dword [esp + 0x70]
sub ecx, dword [esp + 0x68]
cmp ecx, ebx
je 0x4537d5
push 0x696578
call fcn.00426940
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
add esp, 4
mov ecx, esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
push 0
mov ecx, eax
mov eax, dword [edx + 0x20]
push 0
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
push ebx
mov ecx, eax
mov eax, dword [edx + 0x24]
push edi
call eax
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
call eax
mov ecx, dword [esi + 0x2010]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [esi + 0xded20]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [esi + 0xded24]
test ecx, ecx
je 0x4537d5
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ebx, dword [esp + 0x50]
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x4c]
call eax
test al, al
jne 0x453828
cmp dword [esi + 0x20c0], 0
jne 0x453828
mov edi, dword [esp + 0x48]
mov edx, dword [edi]
mov eax, dword [edx + 0x38]
mov ecx, edi
call eax
test al, al
je 0x453857
mov edx, dword [edi]
mov eax, dword [edx + 0x1c]
mov ecx, edi
call eax
fstp qword [esi + 0xc0]
mov edx, dword [edi]
mov eax, dword [edx + 0x10]
jmp 0x453853
mov edi, dword [esp + 0x48]
mov edx, dword [edi]
mov eax, dword [edx + 0x3c]
mov ecx, edi
call eax
test al, al
je 0x453857
mov edx, dword [edi]
fld qword [esi + 0xc0]
mov eax, dword [edx + 0x18]
sub esp, 8
mov ecx, edi
fstp qword [esp]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x14]
mov ecx, edi
call eax
call fcn.00453c70
mov edi, dword [esp + 0x4c]
test al, al
je 0x453a9b
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x50]
call eax
test al, al
jne 0x453a9b
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4538a4
mov edx, dword [eax + 0x114]
lea ecx, [eax + 0x114]
mov eax, dword [edx + 4]
call eax
call fcn.004d10ae
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
test al, al
je 0x453912
mov edx, dword [ebx]
mov eax, dword [edx + 0x18]
mov ecx, ebx
call eax
test al, al
je 0x453912
mov ecx, dword [edi + 0x2010]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [edi + 0xded20]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [edi + 0xded24]
test ecx, ecx
je 0x453912
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov edx, dword [edi + 0xdef90]
mov eax, dword [edx + 4]
lea ecx, [edi + 0xdef90]
call eax
cmp byte [edi + 0xdf440], 0
je 0x453970
lea ecx, [esp + 0x298]
lea esi, [edi + 0xdef8c]
push ecx
mov eax, esi
call fcn.004ae0e4
mov byte [esp + 0x300], 0xe
call fcn.004ae87d
mov byte [esp + 0x300], 7
cmp dword [esp + 0x2b0], 0x10
jb 0x453970
mov edx, dword [esp + 0x29c]
push edx
call fcn.0046efcb
add esp, 4
mov eax, dword [edi + 0x13958]
mov dword [esp + 0xd4], eax
fild dword [esp + 0xd4]
mov ecx, dword [edi + 0x1395c]
mov dword [esp + 0xd8], ecx
fdiv qword [0x6a1590]
fstp dword [esp + 0xcc]
fld dword [esp + 0xcc]
fmul qword [0x6a25d8]
call fcn.00631650
mov edx, dword [edi + 0xdef98]
lea ecx, [edi + 0xdef98]
mov esi, eax
mov eax, dword [edx + 0x98]
call eax
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], esi
mov edx, dword [edi + 0xdf13c]
mov eax, dword [edx + 0x98]
lea ecx, [edi + 0xdf13c]
call eax
mov dword [eax + 0x24], esi
mov dword [eax + 0x20], 0
mov dword [edi + 0xdf458], esi
mov esi, dword [esp + 0x54]
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov ecx, dword [edi + 0x2010]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
test al, al
jne 0x453a78
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
test al, al
jne 0x453a78
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov ecx, ebx
call eax
test al, al
je 0x453a78
mov ecx, dword [edi + 0x2010]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
call eax
mov esi, dword [esp + 0x60]
test esi, esi
je 0x453a59
mov eax, esi
call fcn.004cfafa
mov edx, dword [ebx]
mov eax, dword [edx + 8]
mov ecx, ebx
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x10]
mov ecx, ebx
call eax
test esi, esi
je 0x453a78
mov esi, dword [esp + 0x60]
call fcn.004cfca9
mov eax, dword [ebx + 8]
test eax, eax
je 0x453a84
mov eax, dword [eax + 0xc]
jmp 0x453a86
xor eax, eax
cmp byte [eax + 0x3d], 0
jne 0x453b98
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
jmp 0x453b93
call fcn.004d10e3
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
push 2
call eax
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
push 2
call eax
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
push 2
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
test al, al
je 0x453b31
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x50]
call eax
test al, al
jne 0x453b31
mov edx, dword [ebx]
mov eax, dword [edx + 0x18]
mov ecx, ebx
call eax
test al, al
je 0x453b31
mov ecx, dword [edi + 0x2010]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [edi + 0xded20]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [edi + 0xded24]
test ecx, ecx
je 0x453b31
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov esi, dword [esp + 0x54]
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
test al, al
jne 0x453b7b
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
test al, al
jne 0x453b7b
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov ecx, ebx
call eax
test al, al
je 0x453b7b
mov ecx, dword [edi + 0x2010]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 8]
mov ecx, ebx
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x10]
mov ecx, ebx
call eax
mov eax, dword [ebx + 8]
test eax, eax
je 0x453b87
mov eax, dword [eax + 0xc]
jmp 0x453b89
xor eax, eax
cmp byte [eax + 0x3d], 0
jne 0x453b98
mov edx, dword [esi]
mov ecx, esi
mov eax, dword [edx + 8]
call eax
mov edx, dword [edi]
mov eax, dword [edx + 0x10]
mov ecx, edi
call eax
mov esi, dword [esp + 0x4c]
test al, al
jne 0x4535d0
lea ecx, [esp + 0xec]
mov dword [esi + 0x2010], 0
mov byte [esp + 0x300], 6
call fcn.004cbd01
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x453bdb
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [esp + 0x2f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2b0]
xor ecx, esp
call fcn.0062c8b8
mov esp, ebp
pop ebp
ret