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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb4
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 8], eax
mov ecx, 7
lea eax, [ebp - 0x2c]
mov edx, dword [0x40107c]
call fcn.00404378
xor eax, eax
push ebp
push 0x4baf75
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4c07a4], 0
je 0x4ba691
xor eax, eax
call fcn.004a0f40
mov byte [ebp - 1], 0
mov eax, dword [0x4be9d0]
mov eax, dword [eax]
shr eax, 0x10
cmp eax, 0x600
mov eax, dword [0x4be6cc]
setae byte [eax]
xor edx, edx
push ebp
push 0x4baeb9
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x4c07b4], 0
je 0x4ba6cf
mov dl, 1
mov eax, dword [0x4c07b4]
call fcn.00478b8c
cmp byte [0x4c07a2], 0
je 0x4ba73c
xor eax, eax
push ebp
push 0x4ba70f
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x4c07a8], 0
jne 0x4ba6fb
mov eax, 0x4baf8c
call fcn.00479574
jmp 0x4ba705
mov eax, dword [0x4c07a8]
call fcn.0047972c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4ba73c
mov eax, 0x4bafc8
call fcn.00479788
lea eax, [ebp - 0x30]
mov ecx, dword [0x4c078c]
mov edx, 0x4baffc
call fcn.00403d84
mov eax, dword [ebp - 0x30]
call fcn.00479788
lea eax, [ebp - 0x34]
mov ecx, dword [0x4c0790]
mov edx, 0x4bb020
call fcn.00403d84
mov eax, dword [ebp - 0x34]
call fcn.00479788
lea eax, [ebp - 0x3c]
call fcn.0044ce88
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x38]
mov edx, 0x4bb038
call fcn.00403d84
mov eax, dword [ebp - 0x38]
call fcn.00479788
call fcn.004a0fec
xor eax, eax
call fcn.004b9ff0
mov dword [0x4c0798], eax
mov dl, 1
mov eax, dword [0x4b9520]
call fcn.0047c2f8
mov dword [0x4be690], eax
mov ecx, dword [0x4c0790]
mov edx, dword [0x4c0798]
mov eax, dword [0x4be690]
call fcn.0047e8b8
lea ecx, [ebp - 0x40]
mov eax, dword [0x4be690]
mov edx, dword [eax + 0x18]
mov al, 0xab
call fcn.004731d0
mov edx, dword [ebp - 0x40]
mov eax, 0x4c079c
call fcn.00403b0c
mov eax, dword [0x4be690]
test byte [eax + 0x1d], 0x20
je 0x4ba837
mov eax, dword [0x4be79c]
cmp byte [eax], 0
jne 0x4ba837
push 1
push 1
mov eax, dword [0x4c079c]
call fcn.00403efc
push eax
mov eax, dword [0x4bea70]
mov eax, dword [eax + 0x2cc]
call fcn.00403efc
mov ecx, 0x30
pop edx
call fcn.004a16e4
call fcn.0040c38c
mov eax, dword [0x4be690]
test byte [eax + 0x1d], 1
je 0x4ba87a
call fcn.0044dd60
test al, al
jne 0x4ba87a
push 1
push 1
mov eax, dword [0x4c079c]
call fcn.00403efc
push eax
mov eax, dword [0x4bea70]
mov eax, dword [eax + 0x1bc]
call fcn.00403efc
mov ecx, 0x30
pop edx
call fcn.004a16e4
call fcn.0040c38c
mov eax, 0x4c0798
call fcn.0040d728
mov al, 2
call fcn.004b9ff0
mov dword [0x4c0798], eax
lea eax, [ebp - 0x2c]
push eax
push 6
mov ecx, 0x5040200
mov dx, 0x20
mov eax, dword [0x4be690]
call fcn.0047c7e0
test al, al
jne 0x4ba8b7
mov eax, 0x4bb05c
call fcn.00475210
cmp dword [0x4c07b4], 0
je 0x4ba8d2
lea eax, [ebp - 8]
mov edx, dword [0x4be994]
mov edx, dword [edx]
call fcn.00403b50
jmp 0x4ba8dd
lea edx, [ebp - 8]
mov eax, dword [ebp - 0x2c]
call fcn.004ba5f4
mov eax, dword [ebp - 0x28]
call fcn.00403d38
cmp eax, 0x20
je 0x4ba8f4
mov eax, 0x4bb0ac
call fcn.00475210
mov edx, 0x4c07bc
mov eax, dword [ebp - 0x28]
mov ecx, 0x20
call fcn.00402834
mov eax, dword [0x4be770]
mov dword [eax], 0x4c07bc
mov eax, dword [0x4be690]
cmp byte [eax + 0x10], 0
je 0x4ba939
mov eax, dword [0x4be79c]
cmp byte [eax], 0
jne 0x4ba930
mov eax, 0x4bb0d4
call fcn.00475210
mov al, 1
call fcn.004a1b50
jmp 0x4ba940
xor eax, eax
call fcn.004a1b50
call fcn.0049f854
cmp dword [ebp - 8], 0
je 0x4baa40
call fcn.0049f3e4
call fcn.0049fb6c
mov eax, dword [0x4be6dc]
mov edx, dword [0x4c078c]
call fcn.00403b0c
mov eax, dword [0x4bea00]
mov edx, dword [0x4be690]
mov edx, dword [edx + 0x14]
call fcn.00403b0c
mov al, byte [0x4c07a3]
or al, byte [0x4c07a4]
mov edx, dword [0x4be810]
mov byte [edx], al
mov eax, dword [0x4beb9c]
mov edx, dword [ebp - 0x24]
call fcn.00403b0c
mov eax, dword [0x4be904]
mov edx, dword [ebp - 0x20]
call fcn.00403b0c
mov eax, dword [0x4be7b8]
mov edx, dword [ebp - 0x1c]
call fcn.00403b0c
mov eax, dword [0x4be830]
mov edx, dword [ebp - 0x18]
call fcn.00403b0c
mov eax, dword [ebp - 0x14]
call fcn.00403d38
mov edx, eax
mov eax, dword [ebp - 0x14]
call fcn.004ba53c
mov dl, 1
mov eax, dword [0x4b7988]
call fcn.004b7f60
mov edx, dword [0x4be84c]
mov dword [edx], eax
mov eax, 0x4a0a20
mov edx, dword [0x4be84c]
mov edx, dword [edx]
mov dword [edx + 0xc], eax
mov eax, 0x4a0c08
mov edx, dword [0x4be84c]
mov edx, dword [edx]
mov dword [edx + 0x10], eax
mov eax, 0x4a0c14
mov edx, dword [0x4be84c]
mov edx, dword [edx]
mov dword [edx + 0x14], eax
mov eax, 0x4a0c20
mov edx, dword [0x4be84c]
mov edx, dword [edx]
mov dword [edx + 0x18], eax
mov ecx, dword [0x4be8d0]
mov ecx, dword [ecx]
mov eax, dword [0x4be84c]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
call fcn.004b8024
xor edx, edx
push ebp
push 0x4bae79
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
push ebp
push 0x4badbb
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x4be84c]
cmp dword [eax], 0
je 0x4baacf
xor edx, edx
push ebp
push 0x4baaa3
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
push 0
push 1
xor eax, eax
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea ecx, [ebp - 0x48]
mov eax, dword [0x4be84c]
mov eax, dword [eax]
mov edx, 0x4bb120
call fcn.004b81bc
pop dword fs:[0]
add esp, 8
jmp 0x4baabc
test al, al
jne 0x4baacf
mov eax, 0x4bb178
call fcn.00479788
call fcn.0040c38c
cmp byte [0x4c07a3], 0
jne 0x4bab09
cmp byte [0x4c07a4], 0
jne 0x4bab09
push 0x124
push 1
push 6
mov eax, dword [0x4be690]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x4c079c]
mov al, 0x22
call fcn.004b9864
cmp eax, 6
je 0x4bab09
call fcn.0040c38c
xor edx, edx
xor eax, eax
call fcn.004b9ed0
jmp 0x4bab37
push 0x31
push 1
push 2
mov eax, dword [0x4be690]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x4c079c]
mov al, 0xb1
call fcn.004b9864
dec eax
je 0x4bab37
call fcn.0040c38c
mov eax, dword [0x4be690]
call fcn.0047c81c
test al, al
jne 0x4bab14
jmp 0x4bab66
push 0
push 0
mov eax, dword [0x4c079c]
call fcn.00403efc
mov edx, eax
mov eax, 0x4bb1a8
mov ecx, 0x10
call fcn.004a16e4
mov eax, dword [0x4bebe8]
cmp byte [eax], 0
jne 0x4bab47
mov eax, dword [0x4be6cc]
mov byte [eax], 0
lea ecx, [ebp - 0x4c]
mov eax, dword [0x4be690]
mov edx, dword [eax + 0x18]
mov al, 0xb5
call fcn.004731d0
mov edx, dword [ebp - 0x4c]
mov eax, dword [0x4bea64]
mov eax, dword [eax]
mov eax, dword [eax + 0x24]
call fcn.0044e3d8
call fcn.004b96ec
xor edx, edx
mov al, 1
call fcn.004b9ed0
call fcn.00407690
mov dword [ebp - 0x10], eax
mov eax, dword [0x4be690]
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x24], edx
mov ecx, 0x4b9ad8
mov dl, 1
mov eax, dword [0x4be690]
call fcn.0047d318
mov byte [ebp - 9], al
xor eax, eax
mov al, byte [ebp - 9]
mov edx, dword [0x4be9c4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea edx, [ebp - 0x48]
xor ecx, ecx
mov eax, 0x4bb20c
call fcn.004799a8
mov eax, dword [0x4be690]
cmp byte [eax + 0x1c], 0
jne 0x4bac0f
mov eax, dword [0x4be690]
test byte [eax + 0x1d], 8
jne 0x4bac0f
xor eax, eax
jmp 0x4bac11
mov al, 1
mov byte [ebp - 0xa], al
mov eax, dword [0x4be84c]
cmp dword [eax], 0
je 0x4bacaf
mov eax, dword [0x4be84c]
mov eax, dword [eax]
mov edx, 0x4bb224
call fcn.004b80ac
test al, al
je 0x4bacaf
cmp byte [ebp - 0xa], 0
jne 0x4baca5
xor eax, eax
push ebp
push 0x4bac8a
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
xor eax, eax
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea ecx, [ebp - 0x48]
mov eax, dword [0x4be84c]
mov eax, dword [eax]
mov edx, 0x4bb224
call fcn.004b81bc
test al, al
je 0x4bac80
mov byte [ebp - 0xa], 1
mov eax, 0x4bb244
call fcn.00479788
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4bacaf
mov eax, 0x4bb2bc
call fcn.00479788
xor eax, eax
mov al, byte [ebp - 0xa]
mov edx, dword [0x4be9c4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea edx, [ebp - 0x48]
xor ecx, ecx
mov eax, 0x4bb31c
call fcn.004799a8
cmp byte [0x4c07a4], 0
jne 0x4bad0b
mov eax, dword [0x4bea64]
mov eax, dword [eax]
call fcn.0044ab4c
call fcn.00407690
sub eax, dword [ebp - 0x10]
cmp eax, 0x3e8
jae 0x4bad0b
push 0xff
push 0xa
push 0
push 0
push 0
call fcn.00407e60
jmp 0x4bacdc
mov eax, dword [0x4be7d0]
call fcn.0040d728
mov dl, 1
mov al, 2
call fcn.004b9ed0
cmp byte [ebp - 0xa], 0
jne 0x4bad5f
cmp byte [0x4c07a3], 0
jne 0x4bada8
cmp byte [0x4c07a4], 0
jne 0x4bada8
push 0x10040
push 1
push 1
mov eax, dword [0x4be690]
mov edx, dword [eax + 0x18]
xor eax, eax
mov al, byte [ebp - 9]
mov al, byte [eax + 0x4be69c]
mov ecx, dword [0x4c079c]
call fcn.004b9864
jmp 0x4bada8
cmp byte [0x4c07a5], 0
jne 0x4bad98
cmp byte [0x4c07a4], 0
jne 0x4bad94
push 0x10044
push 1
push 6
mov eax, dword [0x4be690]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x4c079c]
mov al, 0xaf
call fcn.004b9864
cmp eax, 6
jne 0x4bad98
mov byte [ebp - 1], 1
cmp byte [ebp - 1], 0
jne 0x4bada8
mov eax, 0x4bb340
call fcn.00479788
mov dl, 1
mov al, 3
call fcn.004b9ed0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4badcf
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4bae83
xor eax, eax
push ebp
push 0x4badfe
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4be7d0]
call fcn.0040d728
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4bae0d
mov eax, dword [0x4be84c]
cmp dword [eax], 0
je 0x4bae69
xor eax, eax
push ebp
push 0x4bae50
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
xor eax, eax
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea ecx, [ebp - 0x48]
mov eax, dword [0x4be84c]
mov eax, dword [eax]
mov edx, 0x4bb370
call fcn.004b8108
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4bae69
mov eax, dword [0x4bea64]
mov eax, dword [eax]
mov eax, dword [eax + 0x24]
call fcn.0044e484
ret