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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x578756
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x5ca1c8]
xor eax, esp
mov dword [esp + 0x40], eax
push ebx
push esi
push edi
mov eax, dword [0x5ca1c8]
xor eax, esp
push eax
lea eax, [esp + 0x58]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x20], edi
xor ebx, ebx
mov dword [esp + 0x24], ebx
cmp byte [edi + 0x380], bl
je 0x499a7a
mov al, 1
jmp 0x499eb0
mov eax, dword [edi + 0x388]
or eax, dword [edi + 0x38c]
jne 0x499ab6
lea eax, [esp + 0x2c]
push eax
call fcn.00540fb0
pop ecx
mov ecx, dword [eax]
mov dword [edi + 0x388], ecx
mov eax, dword [eax + 4]
mov dword [edi + 0x38c], eax
mov eax, dword [edi + 0x58c]
mov eax, dword [eax + 0x320]
mov dword [edi + 0x390], eax
push 1
mov ecx, edi
call fcn.0049dfa7
cmp byte [edi + 0x328], bl
jne 0x499ea0
cmp byte [edi + 0x300], bl
jne 0x499ea0
cmp byte [edi + 0x5f6], bl
jne 0x499c17
cmp byte [edi + 0x5f5], bl
jne 0x499c17
xor edx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x60], edx
mov eax, dword [edi + 0x590]
mov ecx, dword [eax + 0x268]
test ecx, ecx
jne 0x499b1a
mov dword [esp + 0x18], edx
jmp 0x499c02
lea eax, [esp + 0x14]
push eax
call fcn.004570b7
mov ebx, dword [esp + 0x14]
cmp ebx, dword [esp + 0x18]
je 0x499bfe
sub esp, 0x10
lea eax, [ebx + 4]
mov edi, esp
mov byte [eax + 0xa], 0xff
mov esi, ebx
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x34]
mov ecx, dword [edi + 0x2d0]
call fcn.004a4944
mov ecx, dword [edi + 0x680]
push ebx
push 0xffffffffffffffff
call fcn.004a5419
cmp dword [edi + 0x610], 0
je 0x499bf6
lea esi, [edi + 0x628]
mov ecx, esi
mov dword [esp + 0x2c], esi
call fcn.0053a750
lea eax, [esp + 0x38]
mov byte [esp + 0x60], 1
push eax
lea ecx, [ebx + 4]
call fcn.0045022a
mov dword [esp + 0x28], eax
mov byte [esp + 0x60], 2
cmp dword [eax + 0x14], 8
jb 0x499ba8
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov edi, dword [edi + 0x610]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push dword [esp + 0x28]
sub eax, dword [edi + 4]
mov edi, dword [esp + 0x24]
push eax
push 0x593134
push str.lansource
push dword [edi + 0x610]
call fcn.005341e9
add esp, 0x14
mov byte [esp + 0x60], 1
lea ecx, [esp + 0x38]
push 0
push 1
call fcn.00401d04
mov ecx, esi
mov byte [esp + 0x60], 0
call fcn.0053a760
add ebx, 0x10
jmp 0x499b28
mov ebx, dword [esp + 0x24]
or dword [esp + 0x60], 0xffffffff
lea ecx, [esp + 0x14]
mov byte [edi + 0x5f5], 1
call fcn.00408df6
cmp dword [edi + 0x2c8], 0xffffffff
push 3
pop esi
jne 0x499c75
cmp dword [edi + 0xf4], 0
je 0x499c75
mov al, byte [edi + 0xfc]
test al, al
je 0x499c75
mov al, byte [edi + 0xd4]
test al, al
jne 0x499c75
mov al, byte [edi + 0x381]
test al, al
je 0x499c75
mov ecx, dword [edi + 0x58c]
lea eax, [esp + 0x38]
add ecx, 0xb8
push eax
call fcn.0048678e
xor ebx, ebx
mov dword [esp + 0x60], esi
inc ebx
cmp dword [eax + 0x10], 0
mov dword [esp + 0x24], ebx
mov byte [esp + 0x13], bl
jne 0x499c7a
mov byte [esp + 0x13], 0
or dword [esp + 0x60], 0xffffffff
test bl, 1
je 0x499c94
xor ebx, ebx
lea ecx, [esp + 0x38]
push ebx
push 1
call fcn.00401cbf
jmp 0x499c96
xor ebx, ebx
cmp byte [esp + 0x13], 0
je 0x499cb1
mov ecx, edi
call fcn.00494204
mov byte [edi + 0xd4], 1
mov byte [edi + 0xf1], bl
mov ecx, edi
call fcn.0049f77c
mov ecx, dword [edi + 0x2d0]
push edi
call fcn.004a4b8b
mov ecx, edi
call fcn.0049a217
cmp byte [edi + 0x2e0], 0
jne 0x499d5d
mov eax, dword [edi + 0x324]
test eax, eax
je 0x499cfa
cmp eax, esi
je 0x499cfa
cmp eax, 0x15
je 0x499cfa
cmp eax, 0x10
je 0x499cfa
cmp eax, 0x14
je 0x499cfa
cmp eax, 0xd
jne 0x499d5d
cmp dword [edi + 0xf4], 0
ja 0x499d0a
mov byte [edi + 0x6cc], 1
cmp dword [edi + 0x67c], 0xffffffff
jne 0x499d19
mov dword [edi + 0x67c], ebx
mov ecx, edi
call fcn.0049bff7
mov ecx, dword [edi + 0x58c]
cmp dword [edi + 0x324], ebx
jne 0x499d5d
mov al, byte [ecx + 0x174]
test al, al
je 0x499d5d
cmp byte [ecx + 0x163], 0
je 0x499d5d
cmp byte [ecx + 0x164], 0
je 0x499d5d
cmp dword [edi + 0x67c], 0xffffffff
jne 0x499d5d
mov dword [edi + 0x67c], 2
cmp byte [edi + 0x664], 0
jne 0x499dbe
mov eax, dword [edi + 0x324]
cmp eax, 0x10
je 0x499d76
cmp eax, 0x14
jne 0x499dbe
lea edx, [edi + 0x248]
lea ecx, [esp + 0x38]
call fcn.00534e6e
mov dword [esp + 0x60], 4
push dword [edi + 0x10c]
mov ecx, dword [edi + 0x58c]
push eax
call fcn.0048525d
mov ecx, eax
call fcn.004a349b
or dword [esp + 0x60], 0xffffffff
lea ecx, [esp + 0x38]
push ebx
push 1
call fcn.00401d04
mov byte [edi + 0x664], 1
cmp dword [edi + 0x5c8], ebx
je 0x499ea0
lea ebx, [edi + 0x5a4]
mov ecx, ebx
call fcn.00472947
test al, al
je 0x499ea0
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x60], 5
lea esi, [edi + 0x5ac]
push eax
mov ecx, esi
call fcn.004a7887
mov ecx, esi
call fcn.004594f6
mov dword [edi + 0x5a8], 0x32
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebx], eax
test eax, eax
jne 0x499e2a
mov dword [ebx], 1
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x14]
and dword [edi + 0x5ec], 0
sar eax, 4
test eax, eax
je 0x499e92
sub esp, 0xc
lea eax, [esp + 0x20]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call fcn.0043176d
sub esp, 0x18
mov byte [esp + 0x84], 6
lea eax, [edi + 0x258]
mov dword [esp + 0x44], esp
mov ecx, esp
push eax
lea eax, [edi + 0x248]
push eax
call fcn.0042d931
mov byte [esp + 0x84], 7
lea ecx, [edi + 0x5b8]
mov byte [esp + 0x84], 5
call fcn.004a04ac
or dword [esp + 0x60], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.00408df6
mov ecx, edi
call fcn.0049b300
mov ecx, edi
call fcn.0049fe4d
xor al, al
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.0055fedc
mov esp, ebp
pop ebp
ret