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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51e8ea
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x56858c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0xffffffffffffffff
mov esi, ecx
xor ebx, ebx
push ebx
mov dword [ebp - 0x5c], esi
call fcn.004c34e0
mov dword [esi], vtable.GuiControl::GuiSaveLoadConfirm::SaveLoadConfirmDialog.0
mov dword [ebp - 4], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x7c], ebx
lea eax, [esi + 0x80]
mov dword [ebp - 0x44], eax
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], ebx
mov dword [esi + 0x94], ebx
mov dword [esi + 0xa4], ebx
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xac], ebx
push fcn.0044c8c0
push 0x43ea20
push 4
lea eax, [esi + 0xb0]
push 0x10
push eax
mov byte [ebp - 4], 5
mov dword [ebp - 0x4c], eax
call fcn.00504bc1
mov dword [esi + 0xf0], ebx
mov dword [esi + 0xf4], ebx
mov dword [esi + 0xf8], ebx
push 0x10
mov byte [ebp - 4], 7
call fcn.00503a77
add esp, 4
cmp eax, ebx
je 0x4cce6c
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
jmp 0x4cce6e
xor eax, eax
push eax
lea ecx, [esi + 0xa4]
call fcn.004af810
push 1
call fcn.00503a77
add esp, 4
push 1
push eax
lea ecx, [ebp - 0x8c]
call fcn.004b0360
mov byte [ebp - 4], 8
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x48], 0x564dec
mov dword [ebp - 0x34], 2
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x60], ebx
cmp dword [eax], ebx
jle 0x4cd15c
mov dword [ebp - 0x70], ebx
mov ecx, dword [ebp - 0x8c]
cmp ecx, ebx
jne 0x4ccecf
xor eax, eax
jmp 0x4ccee9
mov eax, dword [ebp - 0x84]
cmp eax, ebx
je 0x4ccede
mov eax, dword [eax + 0xc]
jmp 0x4ccee0
xor eax, eax
imul eax, dword [ebp - 0x88]
add eax, ecx
mov ecx, dword [ebp - 0x48]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx - 4]
push edx
mov edx, dword [ebp - 0x60]
push edx
mov edx, dword [ebp - 0x5c]
push ecx
push edx
lea ecx, [ebp - 0x40]
push ecx
mov ecx, eax
call fcn.004cb800
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 9
cmp eax, ebx
jne 0x4ccf16
xor ecx, ecx
jmp 0x4ccf2a
mov ecx, dword [ebp - 0x38]
cmp ecx, ebx
je 0x4ccf22
mov ecx, dword [ecx + 0xc]
jmp 0x4ccf24
xor ecx, ecx
imul ecx, dword [ebp - 0x3c]
add ecx, eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
lea eax, [ebp - 0x20]
push eax
call edx
push eax
lea eax, [ebp - 0x30]
push eax
mov ecx, eax
push ecx
call dword [0x526388]
push 0xc
call fcn.00503a77
add esp, 4
cmp eax, ebx
je 0x4ccf83
mov edx, dword [ebp - 0x40]
cmp edx, ebx
jne 0x4ccf5c
xor ecx, ecx
jmp 0x4ccf70
mov ecx, dword [ebp - 0x38]
cmp ecx, ebx
je 0x4ccf68
mov ecx, dword [ecx + 0xc]
jmp 0x4ccf6a
xor ecx, ecx
imul ecx, dword [ebp - 0x3c]
add ecx, edx
mov ecx, dword [ecx + 4]
mov dword [eax], vtable.GuiControl::ClickedEvent.0
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov esi, eax
jmp 0x4ccf85
xor esi, esi
xor edi, edi
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x6c], edi
cmp esi, ebx
je 0x4ccfc9
push 0x18
mov dword [ebp - 0x74], esi
call fcn.00503a77
add esp, 4
cmp eax, ebx
je 0x4ccfad
mov dword [eax], vtable.yaneuraoGameSDK3rd::YTL::nonarray_ref_object_class_GuiControl::ClickedEvent_.0
mov dword [eax + 0x14], esi
jmp 0x4ccfaf
xor eax, eax
mov ecx, 1
mov dword [eax + 4], ecx
mov byte [eax + 8], cl
mov edi, eax
mov dword [eax + 0xc], 0xc
mov dword [ebp - 0x6c], edi
mov dword [eax + 0x10], ecx
mov edx, dword [ebp - 0x74]
sub esp, 0xc
mov eax, esp
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x64], esp
mov dword [eax], edx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
cmp edi, ebx
je 0x4ccfe7
inc dword [edi + 4]
mov ecx, dword [ebp - 0x40]
cmp ecx, ebx
jne 0x4ccff2
xor eax, eax
jmp 0x4cd006
mov eax, dword [ebp - 0x38]
cmp eax, ebx
je 0x4ccffe
mov eax, dword [eax + 0xc]
jmp 0x4cd000
xor eax, eax
imul eax, dword [ebp - 0x3c]
add eax, ecx
mov ecx, eax
call fcn.004aef10
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], eax
cmp eax, ebx
je 0x4cd026
inc dword [eax + 4]
mov ecx, dword [ebp - 0x5c]
lea edx, [ebp - 0x80]
push edx
add ecx, 0xc
mov byte [ebp - 4], 0xb
call fcn.0044ca40
mov esi, dword [ebp - 0x78]
mov byte [ebp - 4], 0xa
cmp esi, ebx
je 0x4cd068
dec dword [esi + 4]
jne 0x4cd062
cmp byte [esi + 8], 0
je 0x4cd057
mov eax, dword [esi]
mov edx, dword [eax]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 4]
push 1
mov ecx, esi
call edx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x80], ebx
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], edi
cmp edi, ebx
je 0x4cd07b
inc dword [edi + 4]
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0xa4]
cmp edx, ebx
jne 0x4cd08c
xor ecx, ecx
jmp 0x4cd0ab
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + 0xac]
cmp eax, ebx
je 0x4cd09e
mov eax, dword [eax + 0xc]
jmp 0x4cd0a0
xor eax, eax
mov ecx, dword [ecx + 0xa8]
imul ecx, eax
add ecx, edx
lea edx, [ebp - 0x58]
push edx
mov byte [ebp - 4], 0xc
call fcn.0044ca40
mov esi, dword [ebp - 0x50]
mov byte [ebp - 4], 0xa
cmp esi, ebx
je 0x4cd0e7
dec dword [esi + 4]
jne 0x4cd0e1
cmp byte [esi + 8], 0
je 0x4cd0d6
mov eax, dword [esi]
mov edx, dword [eax]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 4]
push 1
mov ecx, esi
call edx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x58], ebx
mov byte [ebp - 4], 9
cmp edi, ebx
je 0x4cd113
dec dword [edi + 4]
jne 0x4cd10d
cmp byte [edi + 8], 0
je 0x4cd102
mov eax, dword [edi]
mov edx, dword [eax]
mov ecx, edi
call edx
mov eax, dword [edi]
mov edx, dword [eax + 4]
push 1
mov ecx, edi
call edx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x74], ebx
mov eax, dword [ebp - 0x38]
mov byte [ebp - 4], 8
cmp eax, ebx
je 0x4cd14a
dec dword [eax + 4]
mov ecx, eax
cmp dword [eax + 4], ebx
jne 0x4cd144
cmp byte [ecx + 8], 0
je 0x4cd134
mov eax, dword [ecx]
mov edx, dword [eax]
call edx
mov ecx, dword [ebp - 0x38]
cmp ecx, ebx
je 0x4cd144
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x40], ebx
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x48]
inc eax
mov dword [ebp - 0x60], eax
cmp eax, dword [ecx]
jl 0x4ccec1
add dword [ebp - 0x48], 0xc
dec dword [ebp - 0x34]
jne 0x4cceb0
push 0x24
call fcn.00503a77
add esp, 4
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0xd
cmp eax, ebx
je 0x4cd187
mov ecx, eax
call fcn.004116f0
jmp 0x4cd189
xor eax, eax
mov edi, dword [ebp - 0x44]
push eax
mov ecx, edi
mov byte [ebp - 4], 8
call fcn.0040ced0
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
mov esi, dword [edi]
sub eax, dword [ebp - 0x2c]
sub edx, dword [ebp - 0x30]
cmp esi, ebx
jne 0x4cd1ae
xor ecx, ecx
jmp 0x4cd1ca
mov ecx, dword [edi + 8]
cmp ecx, ebx
je 0x4cd1ba
mov edi, dword [ecx + 0xc]
jmp 0x4cd1bc
xor edi, edi
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ecx + 4]
imul ecx, edi
mov edi, dword [ebp - 0x44]
add ecx, esi
push 1
push 1
push eax
push edx
call fcn.0040fc70
test al, al
jne 0x4cd1ee
push 0x5455d8
lea edx, [ebp - 0x34]
push edx
mov dword [ebp - 0x34], 1
call fcn.005036c5
mov ecx, dword [edi]
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x64], eax
cmp ecx, ebx
jne 0x4cd201
xor eax, eax
jmp 0x4cd217
mov eax, dword [edi + 8]
cmp eax, ebx
je 0x4cd20d
mov edx, dword [eax + 0xc]
jmp 0x4cd20f
xor edx, edx
mov eax, dword [edi + 4]
imul eax, edx
add eax, ecx
mov ecx, dword [ebp - 0x64]
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], ecx
mov dword [ebp - 0x48], ebx
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], ebx
mov edx, dword [ebp - 0x48]
mov byte [ebp - 4], 0xe
cmp dword [edx + 0x55fa00], esi
je 0x4cd33c
mov eax, dword [vtable.CCriticalSection.0]
mov edx, dword [eax]
mov edi, vtable.CCriticalLock.0
mov ecx, 0x559238
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], 0x559238
call edx
mov dword [ebp - 0x50], 1
mov byte [ebp - 4], 0xf
cmp dword [0x5699f0], esi
jne 0x4cd29b
push 0x218
call fcn.00503a77
add esp, 4
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0x10
cmp eax, esi
je 0x4cd294
mov ecx, eax
call fcn.00414b10
jmp 0x4cd296
xor eax, eax
mov dword [0x5699f0], eax
mov eax, dword [vtable.CCriticalSection.0]
mov edx, dword [eax + 4]
mov ecx, 0x559238
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x58], edi
call edx
mov ecx, dword [0x5699f0]
mov eax, dword [ecx + 0x18]
cmp eax, esi
je 0x4cd2d4
mov edx, dword [ecx + 0x20]
cmp edx, esi
je 0x4cd2ca
mov edx, dword [edx + 0xc]
jmp 0x4cd2cc
xor edx, edx
mov esi, dword [ecx + 0x1c]
imul esi, edx
add esi, eax
mov eax, dword [ebp - 0x48]
mov edi, dword [eax + 0x55fa00]
push 0x24
call fcn.00503a77
add esp, 4
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0x11
test eax, eax
je 0x4cd2fb
mov ecx, eax
call fcn.004116f0
jmp 0x4cd2fd
xor eax, eax
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xe
call fcn.0040ced0
cmp dword [ebp - 0x40], 0
mov ebx, dword [ebp - 0x38]
jne 0x4cd317
xor eax, eax
jmp 0x4cd32b
test ebx, ebx
je 0x4cd320
mov ecx, dword [ebx + 0xc]
jmp 0x4cd322
xor ecx, ecx
mov eax, dword [ebp - 0x3c]
imul eax, ecx
add eax, dword [ebp - 0x40]
push edi
push eax
mov ecx, esi
call fcn.00467000
test al, al
je 0x4cdd34
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 8]
cmp eax, esi
jne 0x4cd3a6
mov edi, dword [ecx]
sub eax, edi
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x15555554
ja 0x4cd47c
sub esi, edi
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x4cd3a6
mov edx, eax
shr edx, 1
mov esi, 0x15555555
sub esi, edx
cmp esi, eax
jae 0x4cd395
xor eax, eax
jmp 0x4cd397
add eax, edx
cmp eax, ecx
jae 0x4cd39d
mov eax, ecx
mov ecx, dword [ebp - 0x4c]
push eax
call fcn.0044a500
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 4]
xor esi, esi
cmp eax, esi
je 0x4cd3c7
mov edx, dword [ebp - 0x40]
mov dword [eax], edx
mov edx, dword [ebp - 0x3c]
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
cmp ebx, esi
je 0x4cd3c7
inc dword [ebx + 4]
add dword [ecx + 4], 0xc
mov byte [ebp - 4], 8
cmp ebx, esi
je 0x4cd3f7
dec dword [ebx + 4]
jne 0x4cd3f1
cmp byte [ebx + 8], 0
je 0x4cd3e6
mov eax, dword [ebx]
mov edx, dword [eax]
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 4]
push 1
mov ecx, ebx
call edx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x40], esi
mov eax, dword [ebp - 0x48]
add eax, 4
mov dword [ebp - 0x48], eax
cmp eax, 0x50
jb 0x4cd223
mov dword [ebp - 0x44], esi
lea esp, [esp]
xor ebx, ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov edi, dword [ebp - 0x44]
mov byte [ebp - 4], 0x12
cmp dword [edi + 0x55fa50], ebx
je 0x4cd52e
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx]
mov ecx, 0x559238
mov esi, vtable.CCriticalLock.0
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], ecx
call eax
mov dword [ebp - 0x50], 1
mov byte [ebp - 4], 0x13
cmp dword [0x5699f0], ebx
jne 0x4cd48d
push 0x218
call fcn.00503a77
add esp, 4
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0x14
cmp eax, ebx
je 0x4cd486
mov ecx, eax
call fcn.00414b10
jmp 0x4cd488
push str.vector_T__too_long
call fcn.005035ed
xor eax, eax
mov dword [0x5699f0], eax
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx + 4]
mov ecx, 0x559238
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x58], esi
call eax
mov ecx, dword [0x5699f0]
mov eax, dword [ecx + 0x18]
cmp eax, ebx
jne 0x4cd4b5
xor esi, esi
jmp 0x4cd4cb
mov edx, dword [ecx + 0x20]
cmp edx, ebx
je 0x4cd4c1
mov edx, dword [edx + 0xc]
jmp 0x4cd4c3
xor edx, edx
mov esi, dword [ecx + 0x1c]
imul esi, edx
add esi, eax
mov edi, dword [edi + 0x55fa50]
push 0x24
call fcn.00503a77
add esp, 4
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0x15
cmp eax, ebx
je 0x4cd4ef
mov ecx, eax
call fcn.004116f0
jmp 0x4cd4f1
xor eax, eax
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x12
call fcn.0040ced0
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
cmp ecx, ebx
jne 0x4cd50c
xor eax, eax
jmp 0x4cd51d
cmp eax, ebx
je 0x4cd515
mov eax, dword [eax + 0xc]
jmp 0x4cd517
xor eax, eax
imul eax, dword [ebp - 0x3c]
add eax, ecx
push edi
push eax
mov ecx, esi
call fcn.00467000
test al, al
je 0x4cdd34
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebx + 0xc4]
mov esi, dword [ebx + 0xc8]
cmp eax, esi
jne 0x4cd5a5
mov edi, dword [ebx + 0xc0]
sub eax, edi
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x15555554
ja 0x4cd47c
sub esi, edi
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x4cd5a5
mov edx, eax
shr edx, 1
mov esi, 0x15555555
sub esi, edx
cmp esi, eax
jae 0x4cd591
xor eax, eax
jmp 0x4cd593
add eax, edx
cmp eax, ecx
jae 0x4cd599
mov eax, ecx
push eax
lea ecx, [ebx + 0xc0]
call fcn.0044a500
mov eax, dword [ebx + 0xc4]
mov esi, dword [ebp - 0x38]
xor edi, edi
cmp eax, edi
je 0x4cd5c9
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], esi
cmp esi, edi
je 0x4cd5c9
inc dword [esi + 4]
add dword [ebx + 0xc4], 0xc
mov byte [ebp - 4], 8
cmp esi, edi
je 0x4cd5fc
dec dword [esi + 4]
jne 0x4cd5f6
cmp byte [esi + 8], 0
je 0x4cd5eb
mov eax, dword [esi]
mov edx, dword [eax]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 4]
push 1
mov ecx, esi
call edx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x44]
add eax, 4
mov dword [ebp - 0x44], eax
cmp eax, 0x50
jb 0x4cd410
mov dword [ebp - 0x44], edi
xor ebx, ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov esi, dword [ebp - 0x44]
mov byte [ebp - 4], 0x16
cmp dword [esi + 0x55faa8], ebx
je 0x4cd85b
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx]
mov ecx, 0x559238
mov edi, vtable.CCriticalLock.0
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], ecx
call eax
mov dword [ebp - 0x50], 1
mov byte [ebp - 4], 0x17
cmp dword [0x5699f0], ebx
jne 0x4cd684
push 0x218
call fcn.00503a77
add esp, 4
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0x18
cmp eax, ebx
je 0x4cd67d
mov ecx, eax
call fcn.00414b10
jmp 0x4cd67f
xor eax, eax
mov dword [0x5699f0], eax
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx + 4]
mov ecx, 0x559238
mov byte [ebp - 4], 0x16
mov dword [ebp - 0x58], edi
call eax
mov ecx, dword [0x5699f0]
mov eax, dword [ecx + 0x18]
cmp eax, ebx
jne 0x4cd6ac
xor edi, edi
jmp 0x4cd6c2
mov edx, dword [ecx + 0x20]
cmp edx, ebx
je 0x4cd6b8
mov edx, dword [edx + 0xc]
jmp 0x4cd6ba
xor edx, edx
mov edi, dword [ecx + 0x1c]
imul edi, edx
add edi, eax
mov ecx, dword [esi + 0x55faa8]
push 0x24
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x48], ecx
call fcn.00503a77
mov esi, eax
add esp, 4
mov dword [ebp - 0x64], esi
mov byte [ebp - 4], 0x19
cmp esi, ebx
je 0x4cd81b
mov dword [esi], vtable.Graphics::CSurface.0
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov edx, dword [0x5684f8]
mov eax, dword [edx + 0xc]
mov ecx, 0x5684f8
call eax
add eax, 0x10
mov dword [esi + 0x1c], eax
mov byte [ebp - 4], 0x1a
cmp dword [esi + 4], ebx
je 0x4cd7e1
mov ecx, 0x56a451
call fcn.004074f0
mov ecx, dword [esi + 4]
mov dword [ebp - 0x60], ecx
mov ecx, dword [0x5699e4]
mov eax, dword [ecx]
cmp eax, ebx
je 0x4cd7e1
mov edx, dword [ecx + 8]
cmp edx, ebx
je 0x4cd74d
mov edx, dword [edx + 0xc]
jmp 0x4cd74f
xor edx, edx
mov edi, dword [ecx + 4]
imul edi, edx
mov edx, dword [0x5684f8]
add edi, eax
mov eax, dword [edx + 0xc]
mov ecx, 0x5684f8
call eax
add eax, 0x10
mov dword [ebp - 0x4c], eax
mov ecx, str.SurfaceRelease
mov byte [ebp - 4], 0x1b
test ecx, 0xffff0000
jne 0x4cd80a
mov edx, ecx
movzx ebx, dx
push 0
push ebx
call fcn.00401180
add esp, 8
test eax, eax
je 0x4cd7a0
push ebx
push eax
lea ecx, [ebp - 0x4c]
call fcn.00404a50
xor ebx, ebx
mov eax, dword [ebp - 0x4c]
mov ecx, dword [edi + 4]
push eax
push ecx
mov byte [ebp - 4], 0x1a
call dword [0x5261dc]
mov edi, eax
mov eax, dword [ebp - 0x4c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4cd7d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x60]
push ecx
call edi
mov edi, dword [ebp - 0x34]
add esp, 4
xor ecx, ecx
xor eax, eax
push ebx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x14], ecx
push 0x52791c
lea ecx, [esi + 0x1c]
mov dword [esi + 4], ebx
mov dword [esi + 8], eax
mov dword [esi + 0x10], eax
mov byte [esi + 0x18], al
call fcn.004049b0
mov dword [esi + 0x20], ebx
jmp 0x4cd81d
push 0xe
push str.SurfaceRelease
lea ecx, [ebp - 0x4c]
call fcn.004049b0
jmp 0x4cd7a2
xor esi, esi
push esi
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x16
call fcn.0040ced0
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
cmp ecx, ebx
jne 0x4cd838
xor eax, eax
jmp 0x4cd847
cmp eax, ebx
je 0x4cd83f
mov ebx, dword [eax + 0xc]
mov eax, dword [ebp - 0x3c]
imul eax, ebx
add eax, ecx
mov edx, dword [ebp - 0x48]
push edx
push eax
mov ecx, edi
call fcn.00467000
test al, al
je 0x4cdd34
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebx + 0xd4]
mov esi, dword [ebx + 0xd8]
cmp eax, esi
jne 0x4cd8d2
mov edi, dword [ebx + 0xd0]
sub eax, edi
mov ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x15555554
ja 0x4cd47c
sub esi, edi
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x4cd8d2
mov edx, eax
shr edx, 1
mov esi, 0x15555555
sub esi, edx
cmp esi, eax
jae 0x4cd8be
xor eax, eax
jmp 0x4cd8c0
add eax, edx
cmp eax, ecx
jae 0x4cd8c6
mov eax, ecx
push eax
lea ecx, [ebx + 0xd0]
call fcn.0044a500
mov eax, dword [ebx + 0xd4]
mov esi, dword [ebp - 0x38]
xor edi, edi
cmp eax, edi
je 0x4cd8f6
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], esi
cmp esi, edi
je 0x4cd8f6
inc dword [esi + 4]
add dword [ebx + 0xd4], 0xc
mov byte [ebp - 4], 8
cmp esi, edi
je 0x4cd929
dec dword [esi + 4]
jne 0x4cd923
cmp byte [esi + 8], 0
je 0x4cd918
mov eax, dword [esi]
mov edx, dword [eax]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 4]
push 1
mov ecx, esi
call edx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x40], edi
mov eax, dword [ebp - 0x44]
add eax, 4
mov dword [ebp - 0x44], eax
cmp eax, 0x58
jb 0x4cd611
mov dword [ebp - 0x4c], edi
mov edi, edi
xor edi, edi
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], esi
mov ecx, dword [ebp - 0x4c]
mov byte [ebp - 4], 0x1c
cmp dword [ecx + 0x55fb00], edi
je 0x4cdb8e
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx]
mov esi, vtable.CCriticalLock.0
mov ecx, 0x559238
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], 0x559238
call eax
mov dword [ebp - 0x50], 1
mov byte [ebp - 4], 0x1d
cmp dword [0x5699f0], edi
jne 0x4cd9bb
push 0x218
call fcn.00503a77
add esp, 4
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0x1e
cmp eax, edi
je 0x4cd9b4
mov ecx, eax
call fcn.00414b10
jmp 0x4cd9b6
xor eax, eax
mov dword [0x5699f0], eax
mov edx, dword [vtable.CCriticalSection.0]
mov eax, dword [edx + 4]
mov ecx, 0x559238
mov byte [ebp - 4], 0x1c
mov dword [ebp - 0x58], esi
call eax
mov ecx, dword [0x5699f0]
mov eax, dword [ecx + 0x18]
cmp eax, edi
jne 0x4cd9e4
mov dword [ebp - 0x34], edi
jmp 0x4cd9fd
mov edx, dword [ecx + 0x20]
cmp edx, edi
je 0x4cd9f0
mov edx, dword [edx + 0xc]
jmp 0x4cd9f2
xor edx, edx
mov ecx, dword [ecx + 0x1c]
imul ecx, edx
add ecx, eax
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ecx + 0x55fb00]
push 0x24
mov dword [ebp - 0x48], edx
call fcn.00503a77
mov esi, eax
add esp, 4
mov dword [ebp - 0x64], esi
mov byte [ebp - 4], 0x1f
cmp esi, edi
je 0x4cdb4b
mov dword [esi], vtable.Graphics::CSurface.0
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
mov eax, dword [0x5684f8]
mov edx, dword [eax + 0xc]
mov ecx, 0x5684f8
call edx
add eax, 0x10
mov dword [esi + 0x1c], eax
mov byte [ebp - 4], 0x20
cmp dword [esi + 4], edi
je 0x4cdb22
mov ecx, 0x56a451
call fcn.004074f0
mov eax, dword [esi + 4]
mov ecx, dword [0x5699e4]
mov dword [ebp - 0x60], eax
mov eax, dword [ecx]
cmp eax, edi
je 0x4cdb22
mov edx, dword [ecx + 8]
cmp edx, edi
je 0x4cda87
mov edx, dword [edx + 0xc]
jmp 0x4cda89
xor edx, edx
mov edi, dword [ecx + 4]
imul edi, edx
mov edx, dword [0x5684f8]
add edi, eax
mov eax, dword [edx + 0xc]
mov ecx, 0x5684f8
call eax
add eax, 0x10
mov dword [ebp - 0x44], eax
mov ecx, str.SurfaceRelease
mov byte [ebp - 4], 0x21
test ecx, 0xffff0000
jne 0x4cdad8
mov edx, ecx
movzx ebx, dx
push 0
push ebx
call fcn.00401180
add esp, 8
test eax, eax
je 0x4cdae7
push ebx
push eax
lea ecx, [ebp - 0x44]
call fcn.00404a50
jmp 0x4cdae7
push 0xe
push str.SurfaceRelease
lea ecx, [ebp - 0x44]
call fcn.004049b0
mov ebx, dword [ebp - 0x44]
mov eax, dword [edi + 4]
push ebx
push eax
mov byte [ebp - 4], 0x20
call dword [0x5261dc]
mov edi, eax
lea eax, [ebx - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4cdb17
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x60]
push ecx
call edi
add esp, 4
xor edi, edi
xor ecx, ecx
xor eax, eax
push edi
mov dword [esi + 0xc], ecx
mov dword [esi + 0x14], ecx
push 0x52791c
lea ecx, [esi + 0x1c]
mov dword [esi + 4], edi
mov dword [esi + 8], eax
mov dword [esi + 0x10], eax
mov byte [esi + 0x18], al
call fcn.004049b0
mov dword [esi + 0x20], edi
jmp 0x4cdb4d
xor esi, esi
push esi
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1c
call fcn.0040ced0
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x38]
cmp ebx, edi
jne 0x4cdb68
xor eax, eax
jmp 0x4cdb79
cmp esi, edi
je 0x4cdb71
mov eax, dword [esi + 0xc]
jmp 0x4cdb73
xor eax, eax
imul eax, dword [ebp - 0x3c]
add eax, ebx
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x34]
push edx
push eax
call fcn.00467000
test al, al
je 0x4cdc62
mov edi, dword [ebp - 0x5c]
mov eax, dword [edi + 0xe4]
cmp eax, dword [edi + 0xe8]
jne 0x4cdbac
push 1
lea ecx, [edi + 0xe0]
call fcn.004c32d0
mov eax, dword [edi + 0xe4]
test eax, eax
je 0x4cdbc8
mov ecx, dword [ebp - 0x3c]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
test esi, esi
je 0x4cdbc8
inc dword [esi + 4]
add dword [edi + 0xe4], 0xc
mov byte [ebp - 4], 8
test esi, esi
je 0x4cdbfd
dec dword [esi + 4]
jne 0x4cdbf5
cmp byte [esi + 8], 0
je 0x4cdbea
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x4c]
add eax, 4
mov dword [ebp - 0x4c], eax
cmp eax, 0x58
jb 0x4cd940
xor ebx, ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov ecx, 0x56a4b4
mov byte [ebp - 4], 0x22
call fcn.00416a20
mov eax, dword [0x5699f0]
mov edx, dword [eax + 0x18]
cmp edx, ebx
jne 0x4cdc38
xor ecx, ecx
jmp 0x4cdc4e
mov ecx, dword [eax + 0x20]
cmp ecx, ebx
je 0x4cdc44
mov esi, dword [ecx + 0xc]
jmp 0x4cdc46
xor esi, esi
mov ecx, dword [eax + 0x1c]
imul ecx, esi
add ecx, edx
mov edx, dword [0x55faa0]
push edx
lea eax, [ebp - 0x58]
push eax
call fcn.004324d0
test al, al
jne 0x4cdc77
push 0x5455d8
lea ecx, [ebp - 0x34]
push ecx
mov dword [ebp - 0x34], 1
call fcn.005036c5
mov edi, dword [ebp - 0x5c]
mov edx, dword [edi + 0xf4]
cmp edx, dword [edi + 0xf8]
jne 0x4cdc95
push 1
lea ecx, [edi + 0xf0]
call fcn.004c32d0
mov eax, dword [edi + 0xf4]
mov esi, dword [ebp - 0x50]
cmp eax, ebx
je 0x4cdcb7
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], esi
cmp esi, ebx
je 0x4cdcb7
inc dword [esi + 4]
add dword [edi + 0xf4], 0xc
mov byte [ebp - 4], 8
cmp esi, ebx
je 0x4cdce4
dec dword [esi + 4]
jne 0x4cdce4
cmp byte [esi + 8], 0
je 0x4cdcd9
mov eax, dword [esi]
mov edx, dword [eax]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 4]
push 1
mov ecx, esi
call edx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov ecx, 0x56a4b4
mov byte [ebp - 4], 0x23
call fcn.00416a20
mov eax, dword [0x5699f0]
mov edx, dword [eax + 0x18]
cmp edx, ebx
jne 0x4cdd0b
xor ecx, ecx
jmp 0x4cdd21
mov ecx, dword [eax + 0x20]
cmp ecx, ebx
je 0x4cdd17
mov esi, dword [ecx + 0xc]
jmp 0x4cdd19
xor esi, esi
mov ecx, dword [eax + 0x1c]
imul ecx, esi
add ecx, edx
mov eax, dword [0x55faa4]
push eax
lea edx, [ebp - 0x58]
push edx
call fcn.004324d0
test al, al
jne 0x4cdd49
push 0x5455d8
lea eax, [ebp - 0x34]
push eax
mov dword [ebp - 0x34], 1
call fcn.005036c5
mov ecx, dword [edi + 0xf4]
cmp ecx, dword [edi + 0xf8]
jne 0x4cdd64
push 1
lea ecx, [edi + 0xf0]
call fcn.004c32d0
mov eax, dword [edi + 0xf4]
mov esi, dword [ebp - 0x50]
cmp eax, ebx
je 0x4cdd86
mov edx, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x54]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
cmp esi, ebx
je 0x4cdd86
inc dword [esi + 4]
add dword [edi + 0xf4], 0xc
mov byte [ebp - 4], 8
cmp esi, ebx
je 0x4cddb3
dec dword [esi + 4]
jne 0x4cddb3
cmp byte [esi + 8], 0
je 0x4cdda8
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
mov esi, dword [0x56a598]
mov ecx, 0x56a4b4
call fcn.00416a20
mov ecx, dword [0x5699f0]
mov eax, dword [ecx + 0x18]
cmp eax, ebx
jne 0x4cddd4
xor ecx, ecx
jmp 0x4cddea
mov edx, dword [ecx + 0x20]
cmp edx, ebx
je 0x4cdde0
mov edx, dword [edx + 0xc]
jmp 0x4cdde2
xor edx, edx
mov ecx, dword [ecx + 0x1c]
imul ecx, edx
add ecx, eax
mov eax, dword [ebp - 0x5c]
push esi
add eax, 0x74
push eax
call fcn.004324d0
test al, al
je 0x4cdc62
push 4
call fcn.00503a77
add esp, 4
cmp eax, ebx
je 0x4cde15
mov dword [eax], vtable.SystemInfomation::GameInputState.0
jmp 0x4cde17
xor eax, eax
mov edi, dword [ebp - 0x5c]
push eax
lea ecx, [edi + 0x1c]
call fcn.004af2f0
mov ebx, dword [ebp - 0x84]
mov esi, 0x564dd8
mov dword [ebp - 0x34], 2
mov edx, dword [ebp - 0x8c]
test edx, edx
jne 0x4cde43
xor ecx, ecx
jmp 0x4cde59
test ebx, ebx
je 0x4cde4c
mov eax, dword [ebx + 0xc]
jmp 0x4cde4e
xor eax, eax
mov ecx, dword [ebp - 0x88]
imul ecx, eax
add ecx, edx
push esi
lea edx, [ebp - 0x58]
push edx
call fcn.004c8d80
push eax
lea ecx, [edi + 0x28]
mov byte [ebp - 4], 0x24
call fcn.0044ca40
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 8
test eax, eax
je 0x4cdeaa
dec dword [eax + 4]
cmp dword [eax + 4], 0
mov ecx, eax
jne 0x4cdea2
cmp byte [ecx + 8], 0
je 0x4cde92
mov eax, dword [ecx]
mov edx, dword [eax]
call edx
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x4cdea2
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
call edx
xor eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x58], eax
add esi, 8
dec dword [ebp - 0x34]
jne 0x4cde35
mov byte [ebp - 4], 7
test ebx, ebx
je 0x4cded8
dec dword [ebx + 4]
jne 0x4cded8
cmp byte [ebx + 8], 0
je 0x4cdecd
mov eax, dword [ebx]
mov edx, dword [eax]
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 4]
push 1
mov ecx, ebx
call edx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00503edb
mov esp, ebp
pop ebp
ret