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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
mov byte [ebp - 5], cl
mov dword [ebp - 4], eax
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 4]
mov word [eax + 0x3e4], 0
mov eax, dword [0x553948]
mov dword [eax], esi
mov eax, dword [0x553850]
mov dword [eax], edi
mov eax, dword [0x5537bc]
mov byte [eax], 0
cmp byte [ebp - 5], 1
jne 0x5396f3
mov eax, dword [0x553088]
cmp byte [eax], 0
je 0x5396f3
mov eax, dword [0x5539d0]
mov eax, dword [eax]
call fcn.005078d0
jmp 0x539e2b
push esi
push edi
mov eax, dword [0x5531f8]
mov eax, dword [eax]
mov ecx, ebx
movzx edx, byte [ebp - 5]
call fcn.004de664
test al, al
jne 0x539e2b
mov eax, dword [0x55359c]
cmp dword [eax], 0
je 0x539e2b
mov eax, dword [0x6ce484]
mov eax, dword [eax + 0x14]
cmp eax, dword [0x6ce494]
jne 0x539e2b
test bl, 0x10
je 0x5398dd
movzx eax, byte [0x539e34]
cmp al, bl
jne 0x53974c
mov eax, dword [0x5532f8]
inc dword [eax]
mov eax, dword [0x5532f8]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
push 0
mov ecx, edi
mov edx, esi
mov eax, dword [0x6ce494]
call fcn.00524ee0
mov dword [ebp - 0x1c], eax
mov eax, dword [0x5532f8]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x18]
je 0x539780
mov eax, dword [0x5532f8]
xor edx, edx
mov dword [eax], edx
cmp dword [ebp - 0x1c], 0
je 0x5397d9
test bl, 4
je 0x5397e2
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5533bc]
sub eax, dword [edx]
cmp eax, 0x3e8
jbe 0x5397e2
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x12], 0
jne 0x5397e2
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x2c], 0
jne 0x5397e2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
push eax
push 0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
mov edx, 0x52
mov eax, dword [ebp - 4]
call fcn.0053add4
jmp 0x539e2b
mov eax, dword [0x5532f8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x553470]
push eax
mov eax, dword [0x5533b8]
push eax
mov ecx, edi
mov edx, esi
mov eax, dword [0x6ce494]
call fcn.00524ce4
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [0x553470]
sub eax, dword [edx]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x5398b2
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [0x5533b8]
sub eax, dword [edx]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x5398b2
mov eax, dword [0x5533b8]
mov eax, dword [eax]
push eax
mov ecx, dword [0x553470]
mov ecx, dword [ecx]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
call fcn.0052c5e4
movzx eax, al
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
call fcn.0053d3b8
test al, al
je 0x5398dd
mov eax, dword [ebp - 4]
call fcn.0053d38c
test al, al
je 0x5398dd
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov dx, 0xbc2
call fcn.0052def0
jmp 0x5398dd
mov eax, dword [0x5539fc]
mov byte [eax], 1
mov eax, dword [0x553470]
mov eax, dword [eax]
mov edx, dword [0x55364c]
mov dword [edx], eax
mov eax, dword [0x5533b8]
mov eax, dword [eax]
mov edx, dword [0x553588]
mov dword [edx], eax
jmp 0x539e2b
test bl, 8
je 0x539e2b
mov eax, dword [0x5532f8]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x18]
push eax
push 1
mov ecx, edi
mov edx, esi
mov eax, dword [0x6ce494]
call fcn.00524ee0
mov dword [ebp - 0x1c], eax
mov eax, dword [0x553470]
push eax
mov eax, dword [0x5533b8]
push eax
mov ecx, edi
mov edx, esi
mov eax, dword [0x6ce494]
call fcn.00524ce4
mov eax, dword [0x553240]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5533dc]
cmp byte [eax + 0x4c], 0
je 0x539a2f
cmp dword [ebp - 0x1c], 0
jne 0x539a2f
mov eax, dword [0x55359c]
mov eax, dword [eax]
cmp byte [eax + 0x16], 0
jne 0x539a2f
mov eax, dword [0x5533dc]
cmp byte [eax + 0x62], 0x13
jne 0x539a2f
mov eax, dword [0x5533b8]
mov eax, dword [eax]
push eax
mov ecx, dword [0x553470]
mov ecx, dword [ecx]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
call fcn.0052c5e4
movzx eax, al
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0xc]
call fcn.0052c7b4
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [0x6ce4b8]
call fcn.00501f24
test al, al
je 0x5399cd
test bl, 1
je 0x539a2f
mov eax, dword [ebp - 4]
call fcn.0053d3b8
test al, al
je 0x539a22
mov eax, dword [ebp - 4]
call fcn.0053d38c
test al, al
je 0x539a22
mov eax, dword [ebp - 4]
call fcn.0053d400
test al, al
je 0x539a22
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov dx, 0xbc7
call fcn.0052def0
mov eax, dword [0x5537bc]
mov byte [eax], 1
jmp 0x539e2b
test bl, 2
je 0x539b55
mov eax, dword [0x55359c]
mov eax, dword [eax]
cmp byte [eax + 0x16], 0
jne 0x539b55
mov eax, dword [0x5533b8]
mov eax, dword [eax]
push eax
mov ecx, dword [0x553470]
mov ecx, dword [ecx]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
call fcn.0052c5e4
movzx eax, al
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
call fcn.0053d3b8
test al, al
je 0x539b45
mov eax, dword [ebp - 4]
call fcn.0053d38c
test al, al
je 0x539b45
mov ecx, dword [0x5533b8]
mov ecx, dword [ecx]
mov edx, dword [0x553470]
mov edx, dword [edx]
mov eax, dword [0x6ce494]
call fcn.00526130
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x539b14
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
push eax
mov ecx, dword [0x5533b8]
mov ecx, dword [ecx]
mov edx, dword [0x553470]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.0053bfc4
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov dx, 0xbc4
call fcn.0052def0
jmp 0x539e2b
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov dx, 0xbc4
call fcn.0052def0
mov eax, dword [0x55364c]
mov dword [eax], 0xffffffff
jmp 0x539e2b
cmp dword [ebp - 0x1c], 0
jne 0x539b64
test bl, 1
je 0x539d73
mov eax, dword [0x55364c]
mov dword [eax], 0xffffffff
cmp dword [ebp - 0x1c], 0
je 0x539c3a
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5533bc]
sub eax, dword [edx]
cmp eax, 0x5dc
jbe 0x539bb4
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x12], 0x32
jne 0x539bb4
push 0
push 0
push 0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
mov edx, 0x3f2
mov eax, dword [ebp - 4]
call fcn.0053add4
jmp 0x539e2b
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x2c], 0
jne 0x539e2b
mov eax, dword [0x55359c]
mov eax, dword [eax]
cmp byte [eax + 0x16], 0
jne 0x539e2b
mov eax, dword [0x553240]
mov edx, dword [ebp - 0x1c]
mov dword [eax], edx
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x12], 0
je 0x539c0b
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x12], 0xc
je 0x539c0b
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x12], 0x32
je 0x539c0b
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x34]
mov eax, 0x539e40
call fcn.004059d4
test eax, eax
je 0x539c1d
test bl, 1
jne 0x539c1d
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x38], 0x45
jne 0x539e2b
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.00539458
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5539ec]
mov dword [edx], eax
jmp 0x539e2b
mov eax, dword [0x55359c]
mov eax, dword [eax]
cmp byte [eax + 0x16], 0
jne 0x539e2b
mov eax, dword [0x5533b8]
mov eax, dword [eax]
push eax
mov ecx, dword [0x553470]
mov ecx, dword [ecx]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
call fcn.0052c5e4
movzx eax, al
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
call fcn.0053d3b8
test al, al
je 0x539d61
mov eax, dword [ebp - 4]
call fcn.0053d38c
test al, al
je 0x539d61
mov eax, dword [ebp - 4]
call fcn.0053d400
test al, al
je 0x539d61
mov eax, 3
call fcn.00403540
mov ebx, eax
add ebx, 0xbc6
mov eax, dword [0x5534ec]
cmp byte [eax], 0
je 0x539cda
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00538f00
test al, al
je 0x539cda
mov ebx, 0xbcb
mov eax, dword [0x5535ac]
cmp byte [eax], 0
je 0x539d06
mov eax, dword [0x55359c]
mov eax, dword [eax]
cmp word [eax + 0x54], 3
jb 0x539d06
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00538f94
test al, al
je 0x539d06
mov ebx, 0xbd0
mov eax, dword [0x553880]
cmp byte [eax], 0
je 0x539d32
mov eax, dword [0x55359c]
mov eax, dword [eax]
cmp word [eax + 0x54], 6
jb 0x539d32
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.005390d0
test al, al
je 0x539d32
mov ebx, 0xbdc
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov edx, ebx
call fcn.0052def0
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x55376c]
mov dword [edx], eax
jmp 0x539e2b
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov esi, dword [eax + 8]
mov eax, dword [0x553470]
cmp esi, dword [eax]
jne 0x539de2
mov eax, dword [0x5533b8]
mov eax, dword [eax]
mov edx, dword [0x55359c]
mov edx, dword [edx]
cmp eax, dword [edx + 0xc]
jne 0x539de2
mov eax, dword [0x5533b8]
mov eax, dword [eax]
push eax
mov ecx, dword [0x553470]
mov ecx, dword [ecx]
mov eax, dword [0x55359c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x55359c]
mov eax, esi
call fcn.0052c5e4
mov eax, dword [ebp - 4]
call fcn.0053d3b8
test al, al
je 0x539e2b
mov eax, dword [ebp - 4]
call fcn.0053d38c
test al, al
je 0x539e2b
mov eax, dword [ebp - 4]
call fcn.0053bd60
jmp 0x539e2b
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x55376c]
sub eax, dword [edx]
cmp eax, 0x3e8
jbe 0x539e2b
test bl, 4
je 0x539e05
mov eax, dword [0x5539fc]
mov byte [eax], 1
jmp 0x539e0d
mov eax, dword [0x5539fc]
mov byte [eax], 0
mov eax, dword [0x553470]
mov eax, dword [eax]
mov edx, dword [0x55364c]
mov dword [edx], eax
mov eax, dword [0x5533b8]
mov eax, dword [eax]
mov edx, dword [0x553588]
mov dword [edx], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc