Function at 0x4972c0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5cbba3
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x6327e8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10], ebx
call dword [sym.imp.WINMM.dll_timeGetTime]
mov esi, eax
mov eax, dword [ebx + 0x770]
mov edi, esi
sub edi, eax
test eax, eax
je 0x497307
cmp esi, eax
jae 0x49731e
call fcn.0056eac9
cdq
mov ecx, 0x1e
idiv ecx
mov eax, esi
sub eax, edx
mov dword [ebx + 0x770], eax
cmp edi, 0x96
jbe 0x497aa4
xor edx, edx
mov dword [ebx + 0x770], esi
mov esi, dword [ebp + 8]
lea eax, [ebx + 0x108]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
xor ebx, ebx
mov dword [ebp + 8], eax
nop dword [eax]
mov ecx, dword [ebp + 8]
mov eax, dword [eax]
cmp eax, dword [ecx + 0x330]
jge 0x497464
lea eax, [edx + ebx]
imul edi, eax, 0x64
cmp byte [edi + str.Ghost], 0
je 0x497464
test byte [edi + 0x626910], 0x1e
je 0x49738c
mov ecx, esi
call fcn.0044cdf0
test eax, eax
je 0x4974a9
test byte [edi + 0x626910], 0x20
je 0x4973ae
mov ecx, esi
call fcn.0044cdf0
cmp eax, 4
jne 0x4973ae
cmp dword [esi + 0x134], 0
je 0x497683
test byte [edi + 0x626910], 0x40
je 0x4973d0
mov ecx, esi
call fcn.0044cdf0
cmp eax, 4
jne 0x4973d0
cmp dword [esi + 0x134], 1
je 0x4977af
test byte [edi + 0x626910], 0x80
je 0x4973f2
mov ecx, esi
call fcn.0044cdf0
cmp eax, 4
jne 0x4973f2
cmp dword [esi + 0x134], 2
je 0x49784e
test dword [edi + 0x626910], 0x100
je 0x497417
mov ecx, esi
call fcn.0044cdf0
cmp eax, 2
jne 0x497417
cmp dword [esi + 0x134], 3
je 0x4978af
test dword [edi + 0x626910], 0x400
je 0x49743c
mov ecx, esi
call fcn.0044cdf0
cmp eax, 2
jne 0x49743c
cmp dword [esi + 0x134], 4
je 0x497910
test dword [edi + 0x626910], 0x800
je 0x497461
mov ecx, esi
call fcn.0044cdf0
cmp eax, 2
jne 0x497461
cmp dword [esi + 0x134], 5
je 0x497971
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
inc ebx
add eax, 4
mov dword [ebp + 8], eax
cmp ebx, 6
jl 0x497350
mov eax, dword [ebp - 0x18]
add edx, 6
inc dword [ebp - 0x14]
add eax, 0x18
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], edx
cmp edx, 0xcc
jl 0x497348
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 0x14]
lea eax, [ecx + ecx*2]
lea eax, [ebx + eax*2]
imul eax, eax, 0x64
add ecx, 0xb
mov dword [ebp + 8], eax
lea eax, [ecx + ecx*2]
mov ecx, dword [ebp - 0x10]
lea eax, [ebx + eax*2]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x20], eax
jmp 0x4974d3
mov ecx, dword [ebp - 0x10]
mov edi, dword [ecx]
call fcn.0056eac9
cdq
mov ecx, 3
idiv ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 0x626908]
add eax, 4
add eax, edx
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
add eax, ebx
add eax, dword [ecx]
mov ecx, dword [ebp - 0x10]
push eax
call dword [edi + 0x18]
push dword [ebp - 0x1c]
mov ecx, esi
mov edi, 1
push dword [ebp - 0x18]
call fcn.004fae00
lea ecx, [eax - 2]
cmp ecx, 5
ja 0x497581
cmp eax, 2
jne 0x497535
mov eax, dword [ebp + 8]
test byte [eax + 0x626910], 2
jmp 0x49757f
cmp eax, 3
je 0x497529
cmp eax, 4
jne 0x49754e
mov eax, dword [ebp + 8]
test dword [eax + 0x626910], 0x200
jmp 0x49757f
cmp eax, 5
jne 0x49755f
mov eax, dword [ebp + 8]
test byte [eax + 0x626910], 0x10
jmp 0x49757f
cmp eax, 6
jne 0x497570
mov eax, dword [ebp + 8]
test byte [eax + 0x626910], 8
jmp 0x49757f
cmp eax, 7
jne 0x497583
mov eax, dword [ebp + 8]
test byte [eax + 0x626910], 4
jne 0x497583
xor edi, edi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov edx, dword [esi]
push ecx
push eax
push ecx
push eax
mov ecx, esi
call dword [edx + 0x20]
neg eax
sbb eax, eax
test edi, eax
je 0x4974d0
push 0x2c8
call fcn.0055f3ea
add esp, 4
mov dword [ebp + 8], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x4975cf
push 0
push dword [ebp - 0x10]
mov ecx, eax
push ebx
push dword [ebp - 0x14]
call fcn.00498ca0
mov edi, eax
jmp 0x4975d1
xor edi, edi
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x108], eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x10c], eax
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x110], eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x114], eax
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x228], eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x22c], eax
mov ecx, dword [esi + 0x118]
push edi
mov dword [ebp - 4], 0xffffffff
call fcn.0051b320
mov ecx, edi
mov byte [ebp - 0x30], 0x18
mov dword [ebp - 0x2f], edi
call fcn.0044cdf0
mov byte [ebp - 0x2b], al
mov ecx, esi
movzx eax, word [edi + 0x220]
mov word [ebp - 0x2a], ax
movzx eax, word [edi + 0x224]
mov word [ebp - 0x28], ax
call fcn.0044cdf0
cmp eax, 1
jne 0x497667
xor al, al
mov ecx, 1
mov byte [ebp - 0x26], al
cmp byte [edi + 0x1dc], 0
movzx eax, al
cmove eax, ecx
mov byte [ebp - 0x26], al
movzx eax, byte [edi + 0x108]
mov byte [ebp - 0x25], al
movzx eax, byte [edi + 0x10c]
mov byte [ebp - 0x24], al
lea eax, [ebp - 0x30]
jmp 0x497a88
mov edi, 0x3c
call fcn.0056eac9
cdq
idiv edi
add edx, 2
mov dword [ebp + 8], edx
call fcn.0056eac9
cdq
idiv edi
mov ecx, dword [ebp + 8]
mov eax, edx
mov dword [ebp - 0x20], eax
lea edx, [eax + 2]
mov eax, dword [esi]
push edx
push ecx
push edx
push ecx
mov ecx, esi
mov dword [ebp - 0x1c], edx
call dword [eax + 0x20]
neg eax
sbb ecx, ecx
mov eax, dword [ebp + 8]
neg ecx
cmp eax, 1
jle 0x4976cd
xor edx, edx
cmp eax, 6
cmovl ecx, edx
mov eax, 3
cmp eax, dword [ebp - 0x20]
sbb eax, eax
and eax, ecx
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xb
jne 0x49770c
cmp ebx, 1
jne 0x497716
mov edi, dword [ebp - 0x10]
mov eax, dword [edi + 0x214]
sub eax, 0
je 0x497730
sub eax, ebx
je 0x497720
sub eax, ebx
jne 0x497730
mov dword [ebp + 8], 0x3e
mov dword [ebp - 0x1c], 4
jmp 0x497751
cmp ecx, 0x10
jne 0x497716
cmp ebx, 1
je 0x497740
test eax, eax
je 0x497688
jmp 0x49774e
mov dword [ebp + 8], 0x3d
mov dword [ebp - 0x1c], 5
jmp 0x497751
mov dword [ebp + 8], 0x3e
mov dword [ebp - 0x1c], 6
jmp 0x497751
mov dword [ebp + 8], 0x3e
mov dword [ebp - 0x1c], 3
mov edi, dword [ebp - 0x10]
push 0x2c8
call fcn.0055f3ea
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x49777e
push 0
push edi
push ebx
push dword [ebp - 0x14]
mov ecx, eax
call fcn.00498ca0
mov edi, eax
jmp 0x497780
xor edi, edi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 0x108], eax
mov dword [edi + 0x10c], ecx
mov dword [edi + 0x110], eax
mov dword [edi + 0x114], ecx
mov dword [edi + 0x228], eax
mov dword [edi + 0x22c], ecx
jmp 0x497607
mov edi, 0x3c
call fcn.0056eac9
cdq
idiv edi
add edx, 2
mov dword [ebp + 8], edx
call fcn.0056eac9
cdq
idiv edi
mov eax, dword [esi]
lea ecx, [edx + 2]
mov edx, dword [ebp + 8]
push ecx
push edx
push ecx
mov dword [ebp - 0x1c], ecx
mov ecx, esi
push edx
call dword [eax + 0x20]
neg eax
sbb eax, eax
neg eax
cmp dword [ebp + 8], 4
jne 0x4977f0
cmp dword [ebp - 0x1c], 4
je 0x4977b4
test eax, eax
je 0x4977b4
push 0x2c8
call fcn.0055f3ea
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x497823
push 0
push dword [ebp - 0x10]
mov ecx, eax
push ebx
push dword [ebp - 0x14]
call fcn.00498ca0
mov edi, eax
jmp 0x497825
xor edi, edi
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x108], ecx
mov dword [edi + 0x10c], eax
mov dword [edi + 0x110], ecx
mov dword [edi + 0x114], eax
mov dword [edi + 0x228], ecx
jmp 0x497601
mov edi, 0x3c
call fcn.0056eac9
cdq
idiv edi
add edx, 2
mov dword [ebp + 8], edx
call fcn.0056eac9
cdq
idiv edi
mov eax, dword [esi]
lea ecx, [edx + 2]
mov edx, dword [ebp + 8]
push ecx
push edx
push ecx
mov dword [ebp - 0x1c], ecx
mov ecx, esi
push edx
call dword [eax + 0x20]
neg eax
sbb eax, eax
neg eax
cmp dword [ebp + 8], 4
jne 0x49788f
cmp dword [ebp - 0x1c], 4
je 0x497853
test eax, eax
je 0x497853
push 0x2c8
call fcn.0055f3ea
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 3
jmp 0x49780b
mov edi, 0x3c
call fcn.0056eac9
cdq
idiv edi
add edx, 2
mov dword [ebp + 8], edx
call fcn.0056eac9
cdq
idiv edi
mov eax, dword [esi]
lea ecx, [edx + 2]
mov edx, dword [ebp + 8]
push ecx
push edx
push ecx
mov dword [ebp - 0x1c], ecx
mov ecx, esi
push edx
call dword [eax + 0x20]
neg eax
sbb eax, eax
neg eax
cmp dword [ebp + 8], 4
jne 0x4978f0
cmp dword [ebp - 0x1c], 4
je 0x4978b4
test eax, eax
je 0x4978b4
push 0x2c8
call fcn.0055f3ea
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 4
jmp 0x49780b
mov edi, 0x3c
call fcn.0056eac9
cdq
idiv edi
add edx, 2
mov dword [ebp + 8], edx
call fcn.0056eac9
cdq
idiv edi
mov eax, dword [esi]
lea ecx, [edx + 2]
mov edx, dword [ebp + 8]
push ecx
push edx
push ecx
mov dword [ebp - 0x1c], ecx
mov ecx, esi
push edx
call dword [eax + 0x20]
neg eax
sbb eax, eax
neg eax
cmp dword [ebp + 8], 4
jne 0x497951
cmp dword [ebp - 0x1c], 4
je 0x497915
test eax, eax
je 0x497915
push 0x2c8
call fcn.0055f3ea
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 5
jmp 0x49780b
mov edi, 0x3c
call fcn.0056eac9
cdq
idiv edi
add edx, 2
mov dword [ebp + 8], edx
call fcn.0056eac9
cdq
idiv edi
mov eax, dword [esi]
lea ecx, [edx + 2]
mov edx, dword [ebp + 8]
push ecx
push edx
push ecx
mov dword [ebp - 0x1c], ecx
mov ecx, esi
push edx
call dword [eax + 0x20]
neg eax
sbb eax, eax
neg eax
cmp dword [ebp + 8], 4
jne 0x4979b2
cmp dword [ebp - 0x1c], 4
je 0x497976
test eax, eax
je 0x497976
push 0x2c8
call fcn.0055f3ea
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x4979e5
push 0
push dword [ebp - 0x10]
mov ecx, eax
push ebx
push dword [ebp - 0x14]
call fcn.00498ca0
mov edi, eax
jmp 0x4979e7
xor edi, edi
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x108], ecx
mov dword [edi + 0x10c], eax
mov dword [edi + 0x110], ecx
mov dword [edi + 0x114], eax
mov dword [edi + 0x228], ecx
mov dword [edi + 0x22c], eax
mov ecx, dword [esi + 0x118]
push edi
mov dword [ebp - 4], 0xffffffff
call fcn.0051b320
mov ecx, edi
mov byte [ebp - 0x40], 0x18
mov dword [ebp - 0x3f], edi
call fcn.0044cdf0
mov byte [ebp - 0x3b], al
mov ecx, esi
movzx eax, word [edi + 0x220]
mov word [ebp - 0x3a], ax
movzx eax, word [edi + 0x224]
mov word [ebp - 0x38], ax
call fcn.0044cdf0
cmp eax, 1
jne 0x497a71
xor al, al
mov ecx, 1
mov byte [ebp - 0x36], al
cmp byte [edi + 0x1dc], 0
movzx eax, al
cmove eax, ecx
mov byte [ebp - 0x36], al
movzx eax, byte [edi + 0x108]
mov byte [ebp - 0x35], al
movzx eax, byte [edi + 0x10c]
mov byte [ebp - 0x34], al
lea eax, [ebp - 0x40]
push 0
push 5
push eax
push 0xd
push dword [edi + 0x10c]
mov ecx, esi
push dword [edi + 0x108]
push 0
call fcn.00531c80
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4