Function at 0x4c544c
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea ebx, [ebp - 4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x238]
mov edx, eax
add edx, 0xfffffffa
sub edx, 2
jb 0x4c5945
sub edx, 1
je 0x4c5945
sub edx, 2
je 0x4c5945
sub edx, 2
je 0x4c5945
cmp eax, 0x1392
je 0x4c5945
mov eax, dword [ebx]
mov byte [eax + 0x308], 0
mov eax, dword [0x531548]
mov eax, dword [eax]
cmp eax, dword [ebx]
je 0x4c54c2
mov eax, dword [ebx]
mov eax, dword [eax + 0x344]
cmp dword [eax + 8], 2
jl 0x4c54c2
mov eax, dword [ebx]
mov byte [eax + 0x308], 1
mov eax, dword [ebx]
mov edx, dword [eax + 0x2dc]
mov eax, dword [ebx]
sub edx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov si, 0xfff8
call fcn.00404294
mov eax, dword [ebx]
mov edx, dword [eax + 0x2dc]
mov eax, dword [ebx]
sub edx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov si, 0xfff7
call fcn.00404294
mov eax, dword [ebx]
mov edi, dword [eax + 0x2dc]
mov eax, dword [ebx]
cmp byte [eax + 0x12], 0x32
jne 0x4c559b
mov eax, dword [ebx]
mov ax, word [eax + 0x1a]
add eax, 0xffffffc5
sub ax, 0xe
jb 0x4c552a
add eax, 0xfffffff6
sub ax, 5
jb 0x4c552a
sub ax, 1
jne 0x4c5535
mov eax, dword [ebx]
cmp byte [eax + 0x2bf], 0
jne 0x4c5540
mov eax, dword [ebx]
cmp byte [eax + 0x2d3], 0
je 0x4c559b
call fcn.00407464
mov edx, dword [ebx]
sub eax, dword [edx + 0x2f8]
mov edx, dword [ebx]
cmp eax, dword [edx + 0x2f4]
jbe 0x4c5923
mov eax, dword [ebx]
inc dword [eax + 0x2dc]
mov edx, dword [ebx]
mov edx, dword [edx + 0x2d4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2dc]
cmp edx, eax
jg 0x4c5581
mov ecx, dword [ebx]
cmp eax, dword [ecx + 0x2d8]
jle 0x4c5589
mov eax, dword [ebx]
mov dword [eax + 0x2dc], edx
call fcn.00407464
mov edx, dword [ebx]
mov dword [edx + 0x2f8], eax
jmp 0x4c5923
mov eax, dword [ebx]
cmp dword [eax + 0x238], 0
je 0x4c58bf
mov eax, dword [ebx]
cmp byte [eax + 0x12], 0x32
jne 0x4c55bb
mov eax, dword [ebx]
mov byte [eax + 0x2bf], 1
mov edx, dword [ebx]
mov edx, dword [edx + 0x2d4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2dc]
cmp edx, eax
jg 0x4c55d9
mov ecx, dword [ebx]
cmp eax, dword [ecx + 0x2d8]
jle 0x4c55e1
mov eax, dword [ebx]
mov dword [eax + 0x2dc], edx
mov eax, dword [0x531548]
mov eax, dword [eax]
cmp eax, dword [ebx]
je 0x4c561b
mov eax, dword [ebx]
cmp byte [eax + 0x144], 0
je 0x4c561b
mov eax, dword [ebx]
mov eax, dword [eax + 0x2f4]
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
fild qword [ebp - 0x10]
fld xword [0x4c594c]
fdivp st(1)
call fcn.00403340
mov esi, eax
jmp 0x4c5652
mov eax, dword [ebx]
cmp byte [eax + 0x308], 0
je 0x4c564a
mov eax, dword [ebx]
mov eax, dword [eax + 0x2f4]
add eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
fild qword [ebp - 0x10]
fdiv dword [0x4c5958]
call fcn.00403340
mov esi, eax
jmp 0x4c5652
mov eax, dword [ebx]
mov esi, dword [eax + 0x2f4]
call fcn.00407464
mov edx, dword [ebx]
sub eax, dword [edx + 0x2f8]
cmp esi, eax
jae 0x4c5886
mov eax, dword [ebx]
mov eax, dword [eax + 0x2dc]
mov edx, dword [ebx]
cmp eax, dword [edx + 0x2d8]
jge 0x4c5735
mov eax, dword [ebx]
cmp byte [eax + 0x144], 0
je 0x4c571e
mov eax, dword [ebx]
mov eax, dword [eax + 0x1b8]
mov edx, dword [ebx]
mov edx, dword [edx + 0x1bc]
sub edx, 2
cmp eax, edx
je 0x4c56ae
push ebp
call fcn.004c53f0
pop ecx
test al, al
je 0x4c56ea
mov eax, dword [ebx]
cmp dword [eax + 0x1c0], 0
jge 0x4c56c8
push ebp
call fcn.004c53f0
pop ecx
test al, al
je 0x4c579c
mov eax, dword [ebx]
inc dword [eax + 0x2dc]
mov eax, dword [ebx]
inc dword [eax + 0x1b8]
call fcn.00407464
mov edx, dword [ebx]
mov dword [edx + 0x2f8], eax
jmp 0x4c579c
mov eax, dword [ebx]
mov eax, dword [eax + 0x2dc]
mov edx, dword [ebx]
mov edx, dword [edx + 0x2d8]
dec edx
cmp eax, edx
jge 0x4c5707
mov eax, dword [ebx]
inc dword [eax + 0x2dc]
mov eax, dword [ebx]
inc dword [eax + 0x1b8]
call fcn.00407464
mov edx, dword [ebx]
mov dword [edx + 0x2f8], eax
jmp 0x4c579c
mov eax, dword [ebx]
inc dword [eax + 0x2dc]
call fcn.00407464
mov edx, dword [ebx]
mov dword [edx + 0x2f8], eax
jmp 0x4c579c
mov eax, dword [ebx]
cmp byte [eax + 0x2f], 0
je 0x4c5743
mov eax, dword [ebx]
mov byte [eax + 0x2e], 1
mov eax, dword [0x531548]
mov eax, dword [eax]
cmp eax, dword [ebx]
jne 0x4c577e
mov eax, dword [0x531df0]
mov eax, dword [eax]
call fcn.00518454
test al, al
je 0x4c579c
mov eax, dword [ebx]
mov si, 0xfff6
call fcn.00404294
mov eax, dword [ebx]
xor edx, edx
mov dword [eax + 0x238], edx
mov eax, dword [ebx]
mov byte [eax + 0x144], 0
jmp 0x4c579c
mov eax, dword [ebx]
mov si, 0xfff6
call fcn.00404294
mov eax, dword [ebx]
xor edx, edx
mov dword [eax + 0x238], edx
mov eax, dword [ebx]
mov byte [eax + 0x144], 0
mov eax, dword [ebx]
cmp byte [eax + 0x144], 0
je 0x4c5886
mov eax, dword [ebx]
mov eax, dword [eax + 0x1b8]
mov edx, dword [ebx]
mov edx, dword [edx + 0x1bc]
dec edx
cmp eax, edx
jne 0x4c5886
mov eax, dword [ebx]
cmp dword [eax + 0x1c0], 0
jle 0x4c587c
mov eax, dword [ebx]
add eax, 0x1c0
mov edx, dword [eax + 0x10]
push edx
mov edx, dword [ebx]
mov edx, dword [edx + 8]
push edx
mov edx, dword [ebx]
mov edx, dword [edx + 0xc]
push edx
mov edx, dword [eax + 0x14]
push edx
mov edx, dword [eax + 0x18]
push edx
mov edx, dword [eax + 8]
push edx
mov dl, byte [eax + 0xc]
push edx
mov dl, byte [eax + 0x1c]
push edx
mov edx, dword [eax + 0x20]
push edx
lea edx, [ebp - 5]
push edx
mov ecx, dword [eax]
mov eax, dword [0x531348]
mov eax, dword [eax]
mov edx, dword [ebx]
call fcn.004b5adc
mov eax, dword [ebx]
mov eax, dword [eax + 0x1d0]
cmp eax, 0x37
jne 0x4c583d
mov eax, dword [ebx]
mov dword [eax + 0x298], 0x32c8
mov eax, dword [ebx]
mov dword [eax + 0x29c], 0x32c9
jmp 0x4c585a
cmp eax, 0x38
jne 0x4c585a
mov eax, dword [ebx]
mov dword [eax + 0x298], 0x32d2
mov eax, dword [ebx]
mov dword [eax + 0x29c], 0x32d3
cmp byte [ebp - 5], 0
je 0x4c586f
mov eax, dword [ebx]
mov eax, dword [eax + 0x298]
call fcn.004bd158
jmp 0x4c587c
mov eax, dword [ebx]
mov eax, dword [eax + 0x29c]
call fcn.004bd158
mov eax, dword [ebx]
xor edx, edx
mov dword [eax + 0x1c0], edx
mov eax, dword [ebx]
mov ax, word [eax + 0x1a]
sub ax, 2
jb 0x4c5898
sub ax, 0x29
jne 0x4c58a6
mov eax, dword [ebx]
mov dword [eax + 0x310], 0xfffffff6
jmp 0x4c58b0
mov eax, dword [ebx]
xor edx, edx
mov dword [eax + 0x310], edx
call fcn.00407464
mov edx, dword [ebx]
mov dword [edx + 0x314], eax
jmp 0x4c5923
call fcn.00407464
mov edx, dword [ebx]
sub eax, dword [edx + 0x320]
cmp eax, 0xc8
jbe 0x4c5923
call fcn.00407464
mov edx, dword [ebx]
sub eax, dword [edx + 0x314]
cmp eax, 0x1f4
jbe 0x4c5918
call fcn.00407464
mov edx, dword [ebx]
mov dword [edx + 0x314], eax
mov eax, dword [ebx]
inc dword [eax + 0x310]
mov eax, dword [ebx]
mov eax, dword [eax + 0x310]
mov edx, dword [ebx]
cmp eax, dword [edx + 0x318]
jl 0x4c5918
mov eax, dword [ebx]
xor edx, edx
mov dword [eax + 0x310], edx
mov eax, dword [ebx]
mov si, 0xfffe
call fcn.00404294
mov eax, dword [ebx]
cmp edi, dword [eax + 0x2dc]
je 0x4c5945
call fcn.00407464
mov edx, dword [ebx]
mov dword [edx + 0x328], eax
mov eax, dword [ebx]
mov si, 0xfff3
call fcn.00404294
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret