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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffefc
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov esi, edx
mov edi, eax
mov eax, dword [ebp + 8]
call fcn.004048c4
xor eax, eax
push ebp
push 0x5b597d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
sub eax, 0x32
je 0x5b55af
dec eax
je 0x5b552e
sub eax, 0x247
je 0x5b552e
sub eax, 0x24e
je 0x5b5661
jmp 0x5b568d
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [0x5d3eb8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 8]
call fcn.005b8010
mov eax, dword [0x5d3c54]
mov edx, dword [ebp + 0x1c]
mov dword [eax + 0x4c], edx
mov eax, dword [0x5d3c54]
mov edx, dword [ebp + 0x18]
mov dword [eax + 0x50], edx
lea eax, [ebp - 0x104]
mov edx, dword [ebp + 8]
mov ecx, 0xff
call fcn.004046b0
lea edx, [ebp - 0x104]
mov eax, dword [0x5d3c54]
add eax, 0x41
mov cl, 0xa
call fcn.00402d00
mov eax, dword [0x5d3870]
mov byte [eax], 0
mov eax, dword [0x5d34c0]
cmp dword [eax], 0
je 0x5b5967
mov eax, dword [0x5d34c0]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
call fcn.005cdfc8
jmp 0x5b5967
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.005b4cf0
mov ebx, eax
test ebx, ebx
jne 0x5b560c
mov ax, word [ebp + 0x18]
push eax
xor eax, eax
mov al, byte [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov cx, word [ebp + 0x1c]
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.005b5070
mov ebx, eax
xor eax, eax
mov al, byte [ebp + 0x14]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
push 0
push 0
mov ecx, dword [ebp + 0x1c]
mov dx, 0xa
mov eax, ebx
call fcn.005cc4e8
mov eax, dword [0x5d34c0]
cmp dword [eax], 0
je 0x5b561f
mov eax, dword [0x5d34c0]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5d34c0]
mov dword [eax], ebx
mov eax, dword [0x5d34c0]
mov eax, dword [eax]
xor edx, edx
call fcn.005cf318
mov eax, dword [0x5d34c0]
mov eax, dword [eax]
movzx ecx, word [eax + 0x122]
mov eax, dword [0x5d34c0]
mov eax, dword [eax]
movzx edx, word [eax + 0x120]
mov eax, dword [0x5d34c0]
mov eax, dword [eax]
call fcn.005cdfc8
jmp 0x5b5967
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.005b4cf0
mov ebx, eax
test ebx, ebx
je 0x5b567e
cmp dword [ebx + 0xe4], 0
jne 0x5b5967
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.005b5288
jmp 0x5b5967
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.005b4cf0
mov ebx, eax
cmp esi, 0xa
je 0x5b56ca
cmp esi, 0xd
je 0x5b56ca
cmp esi, 0xb
je 0x5b56ca
cmp esi, 9
je 0x5b56ca
cmp esi, 6
je 0x5b56ca
cmp esi, 0x20
je 0x5b56ca
cmp esi, 0x21
je 0x5b56ca
cmp esi, 0x14
je 0x5b56ca
cmp esi, 0x1b
jne 0x5b5820
test ebx, ebx
jne 0x5b56f1
mov ax, word [ebp + 0x18]
push eax
xor eax, eax
mov al, byte [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
mov cx, word [ebp + 0x1c]
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.005b5070
mov ebx, eax
test ebx, ebx
je 0x5b5820
xor eax, eax
mov al, byte [ebp + 0x14]
mov dword [ebp + 0x14], eax
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov eax, ebx
call fcn.005cdfc8
cmp esi, 0xd
je 0x5b571d
cmp esi, 0xb
je 0x5b571d
cmp esi, 0xa
jne 0x5b573f
cmp word [ebx + 0x98], 0
jne 0x5b573f
cmp word [ebx + 0x9c], 0
jbe 0x5b573f
mov ax, word [ebx + 0x9c]
mov word [ebx + 0x98], ax
cmp esi, 0x21
jne 0x5b575e
mov byte [ebx + 0x78], 1
mov byte [ebx + 0x79], 1
mov eax, dword [0x5d3a6c]
cmp ebx, dword [eax]
jne 0x5b575e
mov eax, dword [0x5d3a6c]
xor edx, edx
mov dword [eax], edx
cmp esi, 0xa
je 0x5b577c
cmp esi, 0xd
je 0x5b577c
cmp esi, 0xb
je 0x5b577c
cmp esi, 9
je 0x5b577c
cmp esi, 6
je 0x5b577c
cmp esi, 7
jne 0x5b578d
cmp byte [ebx + 0xd], 0
je 0x5b5789
mov eax, dword [0x5d3de8]
inc dword [eax]
mov byte [ebx + 0xd], 0
cmp esi, 0x20
jne 0x5b57c7
mov byte [ebx + 0x78], 1
mov eax, dword [0x5d34c0]
cmp ebx, dword [eax]
jne 0x5b57c7
mov eax, dword [0x5d3ac4]
mov byte [eax], 1
mov eax, dword [0x5d3f2c]
mov edx, 0x5b5998
call fcn.00404468
mov eax, dword [0x5d37a0]
mov eax, dword [eax]
mov edx, 0x1770
call fcn.00551474
cmp esi, 0x1b
jne 0x5b57d0
mov byte [ebx + 0x78], 0
cmp dword [ebx + 0x11c], 0
je 0x5b5820
cmp byte [ebx + 0x65], 0
je 0x5b5820
cmp byte [ebx + 0x54], 0
jne 0x5b5820
cmp byte [ebx + 0x56], 0
jne 0x5b5820
cmp byte [ebx + 0x65], 0x32
je 0x5b5820
mov eax, dword [0x5d33ec]
cmp byte [eax], 0
je 0x5b5820
movzx eax, word [ebx + 0x120]
cmp eax, dword [ebx + 0x3c]
jne 0x5b5813
movzx eax, word [ebx + 0x122]
cmp eax, dword [ebx + 0x40]
je 0x5b5820
mov edx, dword [ebx + 0x11c]
mov eax, ebx
call fcn.005ce020
test ebx, ebx
je 0x5b5967
mov eax, esi
sub eax, 0x29
je 0x5b583b
sub eax, 0x268
je 0x5b5851
jmp 0x5b5932
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x70], eax
mov eax, ebx
mov si, 0xfffd
call fcn.004037e0
jmp 0x5b5967
mov eax, dword [0x5d34c0]
cmp ebx, dword [eax]
jne 0x5b58c8
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5d3644]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5d3968]
sub eax, dword [edx]
cmp eax, 0x7530
jae 0x5b5882
or dword [ebp + 0x10], 0x400000
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5d3c50]
sub eax, dword [edx]
cmp eax, 0x7530
jae 0x5b589d
or dword [ebp + 0x10], 0x200000
mov eax, dword [ebp + 0x10]
call fcn.004074a8
test ax, ax
jbe 0x5b58be
mov eax, dword [0x5d349c]
mov edx, dword [0x5d36ac]
mov edx, dword [edx]
call fcn.00404468
jmp 0x5b58c8
mov eax, dword [0x5d349c]
call fcn.00404414
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x74], eax
mov al, byte [ebp + 0xc]
mov byte [ebx + 0xd0], al
mov eax, dword [0x5d3388]
cmp byte [eax], 0
je 0x5b5967
mov eax, dword [0x5d3e24]
cmp ebx, dword [eax]
jne 0x5b5967
cmp byte [ebx + 0x54], 0
je 0x5b5967
mov eax, dword [ebx + 0x74]
call fcn.004074a8
call fcn.004074ac
test al, 0x80
ja 0x5b590f
test al, 0x40
ja 0x5b590f
xor edx, edx
jmp 0x5b5911
mov dl, 1
mov byte [ebx + 0x189], dl
test dl, dl
je 0x5b5967
push 1
mov eax, dword [0x5d37a0]
mov eax, dword [eax]
mov cl, 1
mov edx, 0x5b59ac
call fcn.0054f04c
jmp 0x5b5967
cmp esi, 0xa
jne 0x5b5947
cmp dword [ebp + 8], 0
je 0x5b5947
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.005cd774
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
push 0
push 0
mov ecx, dword [ebp + 0x1c]
mov edx, esi
mov eax, ebx
call fcn.005cc4e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5b5984
lea eax, [ebp + 8]
call fcn.00404414
ret