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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x1c]
call fcn.004040cc
mov eax, dword [ebp - 0x20]
call fcn.004040cc
mov esi, 0x5c15ac
mov edi, 0x5c1748
xor eax, eax
push ebp
push 0x56c274
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov byte [ebp - 0x15], 1
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [0x5c13cd]
xor edx, edx
mov dword [eax + 0x334], edx
mov eax, dword [0x5c14dd]
xor edx, edx
mov dword [eax + 0x334], edx
push ebp
push 0x56c225
push dword fs:[0]
mov dword fs:[0], esp
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
call fcn.00403d34
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0x20]
call fcn.00403d34
cmp byte [0x5c1749], 1
jne 0x56b27e
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 8]
call fcn.00590a14
test al, al
je 0x56b294
call fcn.004037b0
jmp 0x56c22f
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x10]
call fcn.0046b1e4
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x10]
call fcn.00403d34
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x14]
call fcn.0046b1e4
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x14]
call fcn.00403d34
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 0x19
mov eax, dword [ebp - 8]
call fcn.00596290
mov edx, eax
lea ecx, [ebp - 0x30]
mov eax, dword [ebp - 0x10]
call fcn.004690d4
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x10]
call fcn.00403d34
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x20]
call fcn.0046af3c
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x35c]
mov eax, dword [ebp - 8]
call fcn.0059ecc8
test al, al
jne 0x56b34b
push 1
push 1
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x20]
call fcn.0046af3c
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 8]
call fcn.005949f4
test al, al
jne 0x56b34b
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0059b5f4
mov byte [ebp - 0x15], 0
call fcn.004037b0
jmp 0x56c22f
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
call fcn.0046af3c
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x35c]
mov eax, dword [ebp - 8]
call fcn.0059ecc8
test al, al
jne 0x56b3ae
push 1
push 1
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
call fcn.0046af3c
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
call fcn.005949f4
test al, al
jne 0x56b3ae
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0059b5f4
mov byte [ebp - 0x15], 0
call fcn.004037b0
jmp 0x56c22f
xor eax, eax
mov dword [0x5c15a8], eax
cmp byte [0x5c168a], 0
jne 0x56b3c5
push ebp
call fcn.0056ac50
pop ecx
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x268]
xor al, 1
test al, al
jne 0x56b3d8
test al, al
je 0x56b3e2
call fcn.004037b0
jmp 0x56c22f
push 0
push 0
push 4
lea eax, [ebp - 0x30]
push eax
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
call fcn.0046b1e4
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0xc]
mov eax, dword [ebp - 8]
call fcn.00590754
mov eax, dword [ebp - 0x30]
call fcn.004091a8
mov dword [0x5c15b4], eax
mov dword [0x5c15b8], edx
cmp dword [0x5c15b8], 0
jne 0x56b461
cmp dword [0x5c15b4], 0
jne 0x56b461
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x7bc]
cmp dword [eax + 0x3f8], 0
je 0x56b461
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x7bc]
mov eax, dword [eax + 0x3f8]
mov edx, dword [eax + 0xb]
mov dword [0x5c15b4], edx
mov edx, dword [eax + 0xf]
mov dword [0x5c15b8], edx
push 1
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 3
mov eax, dword [ebp - 8]
call fcn.00595cd4
cmp al, 1
jne 0x56b4a3
push 2
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 3
mov eax, dword [ebp - 8]
call fcn.00595cd4
cmp al, 1
jne 0x56b4a3
push 3
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 3
mov eax, dword [ebp - 8]
call fcn.00595cd4
cmp al, 1
je 0x56b4ac
cmp byte [0x5c168a], 0
je 0x56b4e1
push 0
push 0
push 5
lea eax, [ebp - 0x30]
push eax
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x20]
call fcn.0046b1e4
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0xc]
mov eax, dword [ebp - 8]
call fcn.00590754
mov eax, dword [ebp - 0x30]
call fcn.004091a8
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x56b514
push 0
push 0
push 1
lea eax, [ebp - 0x30]
push eax
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x20]
call fcn.0046b1e4
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0xc]
mov eax, dword [ebp - 8]
call fcn.00590754
mov eax, dword [ebp - 0x30]
call fcn.004091a8
mov dword [esi], eax
mov dword [esi + 4], edx
cmp dword [esi + 4], 0xffffffff
jne 0x56b552
cmp dword [esi], 0xffffffff
jne 0x56b552
push 0
push 0
push 5
lea eax, [ebp - 0x30]
push eax
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x20]
call fcn.0046b1e4
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0xc]
mov eax, dword [ebp - 8]
call fcn.00590754
mov eax, dword [ebp - 0x30]
call fcn.004091a8
mov dword [esi], eax
mov dword [esi + 4], edx
cmp dword [esi + 4], 0
jne 0x56b563
cmp dword [esi], 0
jbe 0x56b82f
jmp 0x56b569
jle 0x56b82f
mov eax, dword [0x5c15b4]
mov edx, dword [0x5c15b8]
cmp edx, dword [esi + 4]
jne 0x56b580
cmp eax, dword [esi]
jbe 0x56b588
jmp 0x56b582
jle 0x56b588
mov byte [ebp - 0x21], 1
jmp 0x56b5ab
mov eax, dword [0x5c15b4]
mov edx, dword [0x5c15b8]
cmp edx, dword [esi + 4]
jne 0x56b59f
cmp eax, dword [esi]
jae 0x56b5a7
jmp 0x56b5a1
jge 0x56b5a7
mov byte [ebp - 0x21], 3
jmp 0x56b5ab
mov byte [ebp - 0x21], 2
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x268]
xor al, 1
test al, al
jne 0x56b5be
test al, al
je 0x56b5c8
call fcn.004037b0
jmp 0x56c22f
cmp byte [edi], 4
je 0x56b73d
cmp byte [edi], 6
je 0x56b73d
cmp byte [edi], 7
je 0x56b73d
mov al, byte [ebp - 0x21]
push eax
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 3
mov eax, dword [ebp - 8]
call fcn.00595cd4
sub al, 1
jb 0x56b616
je 0x56b6ec
dec al
je 0x56b6f1
dec al
je 0x56b711
jmp 0x56b73d
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x45c]
cmp eax, dword [ebp + 0xc]
jne 0x56b682
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x10]
push eax
push dword [0x5c15b8]
push dword [0x5c15b4]
push dword [esi + 4]
push dword [esi]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x45c]
cmp byte [eax + 0x359], 1
jne 0x56b665
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x460]
cmp byte [eax + 0x359], 1
je 0x56b669
xor edx, edx
jmp 0x56b66b
mov dl, 1
mov cl, 4
mov eax, dword [ebp - 8]
call fcn.0058fe84
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x10]
call fcn.00403d34
jmp 0x56b6de
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x10]
push eax
push dword [0x5c15b8]
push dword [0x5c15b4]
push dword [esi + 4]
push dword [esi]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x45c]
cmp byte [eax + 0x359], 1
jne 0x56b6c3
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x460]
cmp byte [eax + 0x359], 1
je 0x56b6c7
xor edx, edx
jmp 0x56b6c9
mov dl, 1
mov cl, 5
mov eax, dword [ebp - 8]
call fcn.0058fe84
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x10]
call fcn.00403d34
cmp byte [edi], 3
je 0x56b6e8
cmp byte [edi], 6
jne 0x56b73d
mov bl, 4
jmp 0x56b73d
mov byte [edi], 0
jmp 0x56b73d
mov byte [edi], 3
mov al, byte [ebp - 0x21]
dec al
je 0x56b705
dec al
je 0x56b709
dec al
je 0x56b70d
jmp 0x56b73d
mov bl, 1
jmp 0x56b73d
mov bl, 2
jmp 0x56b73d
mov bl, 3
jmp 0x56b73d
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x45c]
cmp byte [eax + 0x359], 1
jne 0x56b73a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x460]
cmp byte [eax + 0x359], 1
jne 0x56b73a
mov byte [edi], 1
jmp 0x56b73d
mov byte [edi], 0
cmp byte [edi], 3
je 0x56b766
cmp byte [edi], 6
je 0x56b766
cmp byte [edi], 1
je 0x56b751
cmp byte [edi], 1
jne 0x56b79a
mov eax, dword [0x5c15b4]
mov edx, dword [0x5c15b8]
cmp edx, dword [esi + 4]
jne 0x56b79a
cmp eax, dword [esi]
jne 0x56b79a
cmp byte [edi], 6
jne 0x56b771
test bl, bl
jne 0x56b771
mov bl, 5
push 1
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 0xc]
push eax
push 0
mov ecx, ebx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0059b6ac
mov byte [0x5c15c9], 1
call fcn.004037b0
jmp 0x56c22f
cmp byte [edi], 5
jne 0x56b7b0
mov byte [0x5c1749], 1
call fcn.004037b0
jmp 0x56c22f
cmp byte [edi], 7
jne 0x56b82f
mov eax, dword [0x5c15b4]
mov edx, dword [0x5c15b8]
cmp edx, dword [esi + 4]
jne 0x56b7cc
cmp eax, dword [esi]
ja 0x56b82f
jmp 0x56b7ce
jg 0x56b82f
test bl, bl
jne 0x56b806
mov eax, dword [0x5c15b4]
mov edx, dword [0x5c15b8]
cmp edx, dword [esi + 4]
jne 0x56b7e9
cmp eax, dword [esi]
jbe 0x56b7ef
jmp 0x56b7eb
jle 0x56b7ef
mov bl, 3
jmp 0x56b806
mov eax, dword [0x5c15b4]
mov edx, dword [0x5c15b8]
cmp edx, dword [esi + 4]
jne 0x56b806
cmp eax, dword [esi]
jne 0x56b806
mov bl, 2
push 1
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 0xc]
push eax
push 0
mov ecx, ebx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0059b6ac
mov byte [0x5c15c9], 1
call fcn.004037b0
jmp 0x56c22f
cmp byte [edi], 1
je 0x56b839
cmp byte [edi], 7
jne 0x56b864
cmp dword [0x5c15b8], 0
jne 0x56b84d
cmp dword [0x5c15b4], 0
jbe 0x56b864
jmp 0x56b84f
jle 0x56b864
cmp dword [esi + 4], 0
jne 0x56b85c
cmp dword [esi], 0
jbe 0x56b864
jmp 0x56b85e
jle 0x56b864
mov byte [ebp - 0x29], 1
jmp 0x56b875
mov dword [esi], 0
mov dword [esi + 4], 0
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x2a], 0
lea eax, [ebp - 0x2a]
push eax
mov cl, 3
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 8]
call fcn.005805f4
cmp byte [ebp - 0x2a], 0
je 0x56b8a1
lea eax, [ebp - 0x2a]
push eax
mov cl, 3
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 8]
call fcn.005805f4
cmp byte [ebp - 0x2a], 0
je 0x56b8df
mov edx, 0x56c290
mov eax, dword [ebp + 8]
call fcn.004d7ff0
test al, al
je 0x56b8df
mov edx, 0x56c290
mov eax, dword [ebp + 0xc]
call fcn.004d7ff0
test al, al
je 0x56b8df
mov dl, 1
mov eax, dword [ebp + 8]
call fcn.004d4af0
mov dl, 1
mov eax, dword [ebp + 0xc]
call fcn.004d4af0
jmp 0x56b8f3
xor edx, edx
mov eax, dword [ebp + 8]
call fcn.004d4af0
xor edx, edx
mov eax, dword [ebp + 0xc]
call fcn.004d4af0
mov eax, dword [ebp + 0xc]
test byte [eax + 0x1c1], 4
je 0x56b921
mov eax, dword [ebp + 8]
test byte [eax + 0x1c1], 4
je 0x56b921
mov dl, 2
mov eax, dword [ebp + 8]
call fcn.004d50f4
mov dl, 2
mov eax, dword [ebp + 0xc]
call fcn.004d50f4
jmp 0x56b935
mov dl, 3
mov eax, dword [ebp + 8]
call fcn.004d50f4
mov dl, 3
mov eax, dword [ebp + 0xc]
call fcn.004d50f4
mov dl, 2
mov eax, dword [ebp - 8]
call fcn.005955e4
mov al, byte [0x5c1700]
push eax
lea edx, [ebp - 0x30]
mov eax, dword [0x5bba88]
call fcn.00405c9c
lea eax, [ebp - 0x30]
mov edx, dword [ebp - 0x10]
call fcn.00403f20
mov edx, dword [ebp - 0x30]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.005959a0
cmp byte [0x5c1749], 1
jne 0x56b977
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 8]
call fcn.00590a14
test al, al
je 0x56b98d
call fcn.004037b0
jmp 0x56c22f
cmp byte [0x5c168a], 0
je 0x56b99d
push ebp
call fcn.0056ac50
pop ecx
cmp byte [0x5c1749], 1
jne 0x56b9aa
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 8]
call fcn.00590a14
test al, al
je 0x56b9c0
call fcn.004037b0
jmp 0x56c22f
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0xc]
mov cl, 1
mov eax, dword [ebp - 8]
call fcn.00596290
mov ebx, eax
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 1
mov eax, dword [ebp - 8]
call fcn.00596290
cmp bl, 1
je 0x56bbd8
cmp bl, 3
je 0x56bbd8
cmp al, 2
je 0x56bbd8
cmp al, 3
je 0x56bbd8
push ebp
lea eax, [ebp - 0x30]
push eax
xor ecx, ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
call fcn.0056a3c0
pop ecx
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 4]
call fcn.00403d34
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x268], 0
je 0x56ba3a
mov eax, dword [ebp + 8]
cmp byte [eax + 0x268], 0
jne 0x56ba4a
cmp byte [0x5c1749], 0
jne 0x56ba4a
mov byte [0x5c1749], 2
cmp byte [0x5c1749], 1
je 0x56ba5c
cmp byte [0x5c1749], 2
jne 0x56ba60
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 8]
call fcn.00590a14
test al, al
je 0x56ba76
call fcn.004037b0
jmp 0x56c22f
mov eax, dword [ebp - 4]
call fcn.004040dc
mov dl, byte [eax]
lea eax, [ebp - 0x30]
call fcn.00403e40
mov eax, dword [ebp - 0x30]
xor edx, edx
call fcn.00409190
cmp eax, 3
jle 0x56bbba
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 0x1f4
je 0x56baf0
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 0x212
je 0x56baf0
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 0x1a9
jne 0x56bd96
mov edx, dword [ebp - 4]
mov eax, 0x56c2a0
call fcn.00404200
test eax, eax
jle 0x56bd96
push 0
lea edx, [ebp - 0x30]
mov eax, dword [0x5bbac8]
call fcn.00405c9c
lea eax, [ebp - 0x30]
mov edx, 0x56c2b4
call fcn.00403f20
mov edx, dword [ebp - 0x30]
mov ecx, 0xff
mov eax, dword [ebp - 8]
call fcn.00574690
push ebp
lea eax, [ebp - 0x30]
push eax
mov cl, 1
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
call fcn.0056a3c0
pop ecx
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 4]
call fcn.00403d34
mov eax, dword [0x5bbe38]
mov eax, dword [eax]
call fcn.0046bc18
mov dword [0x5c15c4], eax
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 5
je 0x56bb6f
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 4
jne 0x56bb9c
push 0
lea edx, [ebp - 0x30]
mov eax, dword [0x5bbac8]
call fcn.00405c9c
mov edx, dword [ebp - 0x30]
mov ecx, 0xff
mov eax, dword [ebp - 8]
call fcn.00574690
mov byte [ebp - 0x15], 0
call fcn.004037b0
jmp 0x56c22f
push ebp
call fcn.00569fdc
pop ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
jne 0x56bd96
call fcn.004037b0
jmp 0x56c22f
push ebp
call fcn.00569c30
pop ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
jne 0x56bd96
call fcn.004037b0
jmp 0x56c22f
push ebp
lea eax, [ebp - 0x30]
push eax
mov cl, 1
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
call fcn.0056a3c0
pop ecx
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 4]
call fcn.00403d34
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x268], 0
je 0x56bc0e
mov eax, dword [ebp + 8]
cmp byte [eax + 0x268], 0
jne 0x56bc1e
cmp byte [0x5c1749], 0
jne 0x56bc1e
mov byte [0x5c1749], 2
cmp byte [0x5c1749], 1
je 0x56bc30
cmp byte [0x5c1749], 2
jne 0x56bc34
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 8]
call fcn.00590a14
test al, al
je 0x56bc4a
call fcn.004037b0
jmp 0x56c22f
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 5
je 0x56bc72
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 4
jne 0x56bd7c
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 0x1f4
je 0x56bcc7
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 0x212
je 0x56bcc7
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 0x1a9
jne 0x56bd96
mov edx, dword [ebp - 4]
mov eax, 0x56c2a0
call fcn.00404200
test eax, eax
jle 0x56bd96
push 0
lea edx, [ebp - 0x30]
mov eax, dword [0x5bbac8]
call fcn.00405c9c
lea eax, [ebp - 0x30]
mov edx, 0x56c2e0
call fcn.00403f20
mov edx, dword [ebp - 0x30]
mov ecx, 0xff
mov eax, dword [ebp - 8]
call fcn.00574690
push ebp
lea eax, [ebp - 0x30]
push eax
xor ecx, ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
call fcn.0056a3c0
pop ecx
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 4]
call fcn.00403d34
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 5
je 0x56bd35
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 4
jne 0x56bd62
push 0
lea edx, [ebp - 0x30]
mov eax, dword [0x5bbac8]
call fcn.00405c9c
mov edx, dword [ebp - 0x30]
mov ecx, 0xff
mov eax, dword [ebp - 8]
call fcn.00574690
mov byte [ebp - 0x15], 0
call fcn.004037b0
jmp 0x56c22f
push ebp
call fcn.00569c30
pop ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
jne 0x56bd96
call fcn.004037b0
jmp 0x56c22f
push ebp
call fcn.00569fdc
pop ecx
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
jne 0x56bd96
call fcn.004037b0
jmp 0x56c22f
mov edx, 3
mov eax, dword [ebp - 4]
call fcn.00469a04
cmp eax, 0x228
jne 0x56bdba
cmp byte [0x5c1749], 0
jne 0x56bdba
mov byte [0x5c1749], 2
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x268], 0
je 0x56bdd2
mov eax, dword [ebp + 8]
cmp byte [eax + 0x268], 0
jne 0x56bde0
mov byte [ebp - 0x15], 0
call fcn.004037b0
jmp 0x56c22f
xor eax, eax
mov dword [0x5c174c], eax
mov eax, 0x5c15cc
mov edx, dword [ebp - 0x10]
call fcn.00403cf0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x85c]
mov edx, 0x3e8
call fcn.004e5df4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x85c]
mov dl, 1
call fcn.004e5ddc
call sub.kernel32.dll_GetTickCount
mov dword [0x5c15a4], eax
mov byte [0x5c1738], 1
jmp 0x56bf86
mov dl, 3
mov eax, dword [ebp - 8]
call fcn.00594cf0
cmp byte [0x5c1574], 0
jne 0x56bfb4
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x268], 0
je 0x56bfb4
mov eax, dword [ebp + 8]
cmp byte [eax + 0x268], 0
je 0x56bfb4
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x358], 0
jne 0x56be90
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x330], 0
jne 0x56be90
push 0
push 1
lea eax, [ebp - 0x30]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp + 0xc]
call fcn.004d82f0
mov eax, dword [ebp + 8]
cmp byte [eax + 0x358], 0
jne 0x56bebc
mov eax, dword [ebp + 8]
cmp byte [eax + 0x330], 0
jne 0x56bebc
push 0
push 1
lea eax, [ebp - 0x30]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp + 8]
call fcn.004d82f0
cmp byte [ebp - 0x15], 0
je 0x56bef9
mov eax, dword [ebp + 0xc]
cmp word [eax + 0x1e4], 0x18f
jle 0x56bef9
mov eax, dword [ebp + 0xc]
cmp word [eax + 0x1e4], 0x1f4
jne 0x56bef5
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x224]
mov eax, 0x56c304
call fcn.00404200
test eax, eax
jg 0x56bef9
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x15], 0
je 0x56bf36
mov eax, dword [ebp + 8]
cmp word [eax + 0x1e4], 0x18f
jle 0x56bf36
mov eax, dword [ebp + 8]
cmp word [eax + 0x1e4], 0x1f4
jne 0x56bf32
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x224]
mov eax, 0x56c304
call fcn.00404200
test eax, eax
jg 0x56bf36
mov byte [ebp - 0x15], 0
cmp byte [0x5c15e4], 0
je 0x56bf48
cmp byte [0x5c15e5], 0
jne 0x56bfb4
mov eax, dword [ebp + 0xc]
mov ax, word [eax + 0x1e4]
cmp ax, 0x18f
jle 0x56bf5e
cmp ax, 0x226
jne 0x56bf76
mov eax, dword [ebp + 8]
mov dx, word [eax + 0x1e4]
cmp dx, 0x18f
jle 0x56bf86
cmp dx, 0x226
je 0x56bf86
mov cl, 1
mov dl, 1
mov eax, dword [ebp - 8]
call fcn.0059b488
mov byte [ebp - 0x15], 0
cmp byte [0x5c1749], 0
je 0x56bf98
cmp byte [0x5c1749], 1
jne 0x56bfb4
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x268], 0
je 0x56bfb4
mov eax, dword [ebp + 8]
cmp byte [eax + 0x268], 0
jne 0x56be2d
mov byte [0x5c1738], 0
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x268], 0
je 0x56bfd3
mov eax, dword [ebp + 8]
cmp byte [eax + 0x268], 0
jne 0x56bfe3
cmp byte [0x5c1749], 0
jne 0x56bfe3
mov byte [0x5c1749], 4
cmp byte [0x5c1574], 0
je 0x56bff6
call fcn.004037b0
jmp 0x56c22f
cmp byte [0x5c1749], 0
jbe 0x56c00c
cmp byte [0x5c1749], 1
je 0x56c00c
mov byte [ebp - 0x15], 0
cmp byte [ebp - 0x15], 0
jne 0x56c01c
mov dl, 3
mov eax, dword [ebp - 8]
call fcn.00594cf0
cmp byte [0x5c1749], 0
je 0x56c032
cmp byte [0x5c1749], 1
jne 0x56c136
cmp byte [ebp - 0x15], 0
je 0x56c136
mov eax, dword [0x5c15b4]
mov edx, dword [0x5c15b8]
sub eax, dword [esi]
sbb edx, dword [esi + 4]
push edx
push eax
mov al, byte [ebp - 0x29]
push eax
lea eax, [ebp - 0x28]
push eax
call sub.kernel32.dll_GetTickCount
mov edx, eax
sub edx, dword [0x5c15a4]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.00578ff4
call sub.kernel32.dll_GetTickCount
sub eax, dword [0x5c15a4]
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x38], eax
fild qword [ebp - 0x3c]
fdiv dword [0x56c30c]
call fcn.00402a3c
mov ecx, eax
cmp ecx, 1
jle 0x56c0c6
mov eax, dword [0x5c15b4]
mov edx, dword [0x5c15b8]
sub eax, dword [esi]
sbb edx, dword [esi + 4]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
fild qword [ebp - 0x3c]
mov dword [ebp - 0x40], ecx
fild dword [ebp - 0x40]
fdivp st(1)
fdiv dword [0x56c310]
fstp qword [0x5c15bc]
wait
push 0
mov ecx, dword [0x5c16ec]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.00574690
mov ecx, dword [0x5c16ec]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.005745f4
inc dword [0x5c1770]
mov eax, dword [0x5c15b4]
mov edx, dword [0x5c15b8]
sub eax, dword [esi]
sbb edx, dword [esi + 4]
push edx
push eax
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + 0xc]
mov cl, 4
mov eax, dword [ebp - 8]
call fcn.005657d4
mov eax, dword [0x5c15b4]
mov edx, dword [0x5c15b8]
sub eax, dword [esi]
sbb edx, dword [esi + 4]
push edx
push eax
mov eax, dword [ebp + 8]
mov dl, byte [eax + 0xc]
mov cl, 3
mov eax, dword [ebp - 8]
call fcn.005657d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56c22f
mov byte [0x5c1738], 0
mov byte [0x5c15e6], 0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x334], 0
jg 0x56c169
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x334], 0
jle 0x56c170
push ebp
call fcn.0056ae0c
pop ecx
push 0
push 1
lea eax, [ebp - 0x30]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp + 8]
call fcn.004d82f0
push 0
push 1
lea eax, [ebp - 0x30]
push eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp + 0xc]
call fcn.004d82f0
cmp byte [0x5c15e4], 0
je 0x56c1ad
mov eax, dword [0x5c13cd]
mov byte [eax + 0x331], 1
cmp byte [0x5c15e5], 0
je 0x56c1c2
mov eax, dword [0x5c14dd]
mov byte [eax + 0x331], 1
push 0
push 0
fld qword [0x5c16c8]
call fcn.00402a3c
mov ecx, eax
or edx, 0xffffffff
mov eax, dword [ebp - 8]
call fcn.00592678
cmp byte [ebp - 0x15], 0
jne 0x56c1ed
cmp byte [0x5c1749], 1
jne 0x56c1ff
cmp byte [0x5c1749], 2
je 0x56c1ff
cmp byte [0x5c1749], 4
jne 0x56c224
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0xc]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
call fcn.0059b900
cmp byte [0x5c1749], 4
jne 0x56c224
mov byte [0x5c1749], 0
mov byte [ebp - 0x15], 0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56c27b
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.00403cc0
lea eax, [ebp - 0x28]
call fcn.00403c9c
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.00403cc0
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00403cc0
lea eax, [ebp - 4]
call fcn.00403c9c
ret