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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 0x1c]
test edi, edi
jne 0x415a70
push 0x4a7935
push 0x4aa4ec
mov ecx, 0x4bc460
call fcn.0043b780
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x415a7d.1
jmp dword [ecx*4 + 0x416180]
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x415a91
mov esi, dword [eax + 0xc]
jmp 0x415a93
mov esi, eax
test byte [esi + 0x15], 8
je 0x415aa0
mov eax, esi
call fcn.004011b0
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x415abd
test byte [esi + 0x15], 4
je 0x415ab8
push esi
mov ecx, 0x4bc460
call fcn.0043bdd0
mov esi, dword [esi + 8]
jmp 0x415ada
cmp al, 2
jne 0x415aca
call fcn.00401060
mov esi, eax
jmp 0x415ada
mov esi, 0x4bbccb
jmp 0x415ada
mov esi, dword [eax]
jmp 0x415ada
mov esi, 0x4a7935
mov eax, dword [ebp + 0x14]
test al, 2
je 0x415cd2
push 0x4aa4fc
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415b24
mov ecx, dword [ebp + 8]
cmp dword [ecx + 8], 1
lea eax, [ecx + 8]
je 0x415c48
mov dword [ecx + 0x18], 0
mov ecx, dword [ecx + 0x14]
xor edi, edi
mov byte [ecx], 0
call fcn.0043f660
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa4dc
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415c56
cmp edi, 1
jle 0x415b82
mov eax, dword [ebx + 4]
cmp dword [eax + 8], 3
je 0x415b82
push 0
push 1
call fcn.0045abb0
fmul qword [0x4b1660]
fnstcw word [esp + 0x14]
add esp, 8
movzx eax, word [esp + 0xc]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov edx, dword [esp + 0x10]
fldcw word [esp + 0xc]
mov dword [esp + 0xc], edx
jmp 0x415b8a
mov dword [esp + 0xc], 0xffffffff
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov esi, dword [ebp + 8]
cmp dword [esi + 8], 1
mov ebx, eax
jne 0x415bbf
lea ecx, [ecx]
call edi
sub eax, ebx
cmp eax, dword [esp + 0xc]
jae 0x415bbf
push 1
push 0x8000012f
call fcn.004014b0
add esp, 8
cmp dword [esi + 8], 1
je 0x415ba0
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], 0
mov esi, dword [esi + 8]
cmp esi, 6
ja case.0x415d80.1
jmp dword [esi*4 + 0x416198]
mov eax, 0x4aa4e4
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x4aa52c
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x4ab838
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x4ae658
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x4ae664
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x4a7935
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa504
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415ca5
mov eax, dword [ebp + 8]
add eax, 8
cmp dword [eax], 1
jne 0x415c97
mov edx, dword [0x4bb448]
mov cl, byte [0x4bb445]
push 0
push eax
push 0x41b
push edx
mov byte [eax + 0x4b], cl
mov dword [eax], 0
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa50c
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x416172
mov ecx, dword [ebp + 8]
dec edi
push edi
lea eax, [ebx + 4]
push ecx
call fcn.004161d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ebx, eax
and ebx, 1
mov edx, 0
setne dl
inc edx
cmp edi, edx
jne 0x415a53
test al, 3
jne 0x415edf
push 0x4a9b58
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415d1f
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x18]
mov ebx, dword [ecx + 0x14]
call fcn.0045aec0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa514
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415d59
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov esi, 1
mov dword [ecx + 8], esi
cmp dword [eax + 8], esi
sete dl
movzx eax, dl
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa520
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415d9c
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
cmp eax, 6
ja case.0x415d80.1
jmp dword [eax*4 + 0x4161b4]
mov eax, 0x4aa53c
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa52c
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415df3
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 8]
add eax, 8
cmp dword [eax], 4
jne 0x415ddf
mov edx, dword [ecx + 4]
push 0
push pe_nt_image_headers32
push edx
mov dword [ecx], edx
call fcn.0043fe80
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov dword [ecx], 0x4a7935
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa534
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415e98
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [ecx + 4]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
test byte [ecx + 0x53], 1
je 0x415e25
mov word [eax], 0x5e3c
add eax, 2
test byte [ecx + 0x53], 2
je 0x415e33
mov word [eax], 0x5e3e
add eax, 2
test byte [ecx + 0x53], 4
je 0x415e41
mov word [eax], 0x213c
add eax, 2
test byte [ecx + 0x53], 8
je 0x415e4f
mov word [eax], 0x213e
add eax, 2
test byte [ecx + 0x53], 0x10
je 0x415e5d
mov word [eax], 0x2b3c
add eax, 2
test byte [ecx + 0x53], 0x20
je 0x415e6b
mov word [eax], 0x2b3e
add eax, 2
test byte [ecx + 0x53], 0x40
je 0x415e79
mov word [eax], 0x233c
add eax, 2
test byte [ecx + 0x53], 0x80
je 0x415e87
mov word [eax], 0x233e
add eax, 2
mov byte [eax], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa53c
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415edf
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 3
jne 0x415ddf
mov edx, dword [eax + 0x54]
cmp edx, dword [eax + 0x2c]
jae 0x415ddf
mov eax, dword [eax + 0x28]
mov edx, dword [eax + edx*4]
mov dword [ecx], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 2
push 0x4aa044
push esi
call fcn.0049353e
add esp, 0xc
test eax, eax
jne 0x415ff4
add esi, 2
push 0x4a8ccc
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415f17
mov esi, dword [ebp + 8]
add esi, 0x358
jmp 0x415f70
push 0x4aa544
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415f34
mov esi, dword [ebp + 8]
add esi, 0x35c
jmp 0x415f70
push 0x4aa54c
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x415f51
mov esi, dword [ebp + 8]
add esi, 0x364
jmp 0x415f70
push 0x4aa554
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x416172
mov esi, dword [ebp + 8]
add esi, 0x360
test ebx, ebx
je 0x415f9d
mov ebx, dword [ebp + 0x18]
mov ecx, dword [ebx + 4]
call fcn.0045adc0
mov edi, eax
test edi, edi
je 0x415fcb
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push edi
call ecx
mov eax, dword [esi]
test eax, eax
je 0x415f9b
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esi], edi
mov eax, dword [esi]
test eax, eax
je 0x416033
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [ebp + 0xc]
mov esi, dword [esi]
mov dword [eax + 8], 6
mov dword [eax], esi
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [ebx + 4]
call fcn.0045aa40
test eax, eax
jne 0x415f8d
push 0x4a7935
push 0x4aa55c
mov ecx, 0x4bc460
call fcn.0043b780
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa56c
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x416041
mov esi, dword [ebp + 8]
test ebx, ebx
je 0x41601f
push eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 4]
call fcn.0045ab20
add esp, 4
mov byte [esi + 0x44], al
movzx eax, byte [esi + 0x44]
mov ecx, dword [ebp + 0xc]
cdq
mov dword [ecx + 8], 1
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa4e4
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x4160ae
mov esi, dword [ebp + 8]
test ebx, ebx
je 0x41608b
mov ecx, dword [ebp + 0x18]
push eax
mov eax, dword [ecx + 4]
push 1
call fcn.0045abb0
fmul qword [0x4b1660]
add esp, 8
call fcn.004a21b0
cmp dword [esi + 8], 1
mov dword [esi + 0x3c], eax
jne 0x41608b
test eax, eax
jle 0x41608b
lea eax, [esi + 8]
call fcn.0043f8b0
fild dword [esi + 0x3c]
mov eax, dword [ebp + 0xc]
mov dword [eax + 8], 2
fdiv qword [0x4b1660]
fstp qword [eax]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4aa57c
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x4160cb
mov edi, dword [ebp + 8]
add edi, 0x45
jmp 0x41614b
push 0x4aa58c
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x4160e5
mov edi, dword [ebp + 8]
add edi, 0x46
jmp 0x41614b
push 0x4aa59c
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x4160ff
mov edi, dword [ebp + 8]
add edi, 0x4b
jmp 0x41614b
push 0x4aa5ac
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x416119
mov edi, dword [ebp + 8]
add edi, 0x48
jmp 0x41614b
push 0x4aa5b8
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x416133
mov edi, dword [ebp + 8]
add edi, 0x49
jmp 0x41614b
push 0x4aa5c8
push esi
call fcn.00492c11
add esp, 8
test eax, eax
jne 0x416172
mov edi, dword [ebp + 8]
add edi, 0x4a
test edi, edi
je 0x416172
test ebx, ebx
je 0x41616a
mov edx, dword [ebp + 0x18]
mov esi, dword [edx + 4]
mov eax, 0x44
call fcn.0045a8c0
test eax, eax
setne al
mov byte [edi], al
movzx eax, byte [edi]
jmp 0x416023
pop edi
pop esi
mov eax, 4
pop ebx
mov esp, ebp
pop ebp
ret 0x18