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

Disassembly:
push 0xffffffffffffffff
push 0x54006a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x5cc
push ebx
push ebp
push esi
push edi
mov esi, ecx
mov dword [esp + 0x10], 0
call fcn.0042eff0
mov ecx, eax
call fcn.00434250
cmp dword [esi + 0x20c], 1
jne 0x46deff
cmp dword [esi + 0x29c], 0xffffffff
je 0x46de92
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x29c]
mov ecx, eax
jne 0x46de80
mov ecx, 1
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov dword [esi + 0x2a0], edx
jmp 0x46de9e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x29c], eax
lea edi, [esi + 0x1f4]
mov ecx, edi
call fcn.00429300
mov ecx, edi
mov dword [esi + 0x2b0], eax
call fcn.00429310
mov ecx, dword [esi + 0x228]
mov dword [esi + 0x2b4], eax
mov eax, dword [esi + 0x22c]
push eax
push ecx
mov ecx, edi
call fcn.004292e0
mov dword [esi + 0x228], eax
mov dword [esi + 0x22c], edx
mov eax, dword [esi + 0x228]
push edx
push eax
push 0
push 0
mov ecx, esi
call fcn.0046a840
mov dword [esp + 0x10], 0xffff
jmp 0x46e122
mov ecx, esi
call fcn.00479d20
test eax, eax
je 0x46dfc8
cmp dword [esi + 0x29c], 0xffffffff
je 0x46df3e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x29c]
mov ecx, eax
jne 0x46df2c
mov ecx, 1
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov dword [esi + 0x2a0], edx
jmp 0x46df4a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x29c], eax
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x46e122
push 1
call fcn.00413d70
test eax, eax
je 0x46e122
mov eax, dword [esi + 0x28]
cmp dword [eax + 0xc90], 0x2710
jne 0x46df89
cmp dword [eax + 0xc80], 9
je 0x46df89
mov dword [esp + 0x10], 0xffff
jmp 0x46e122
mov ecx, dword [eax + 0xcc4]
mov dword [esi + 0x2b0], ecx
mov edx, dword [eax + 0xc98]
mov dword [esi + 0x2b4], edx
mov ecx, dword [eax + 0xc88]
mov dword [esi + 0x228], ecx
mov edx, dword [eax + 0xc8c]
mov dword [esi + 0x22c], edx
mov ecx, dword [esi + 0x228]
mov eax, edx
push eax
push ecx
jmp 0x46dee7
mov eax, dword [esi + 0x29c]
or ebp, 0xffffffff
cmp eax, ebp
je 0x46e122
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
mov eax, dword [esi + 0x29c]
mov ecx, edi
sub ecx, eax
jne 0x46dff2
mov ecx, 1
mov eax, 0x10624dd3
mov ebx, edi
mul ecx
sub ebx, dword [esi + 0x2f8]
shr edx, 6
cmp ebx, 0x2710
mov dword [esi + 0x2a0], edx
jbe 0x46e0bd
mov edx, dword [esi + 0x2bc]
mov eax, edi
sub eax, edx
cmp eax, 0xea60
jbe 0x46e060
fild dword [esi + 0x2c0]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
fmul qword [0x553ef0]
fidiv dword [esp + 0x14]
call fcn.004ee7a8
mov dword [esi + 0x2c4], eax
mov dword [esi + 0x2bc], edi
mov dword [esi + 0x2c0], 0
jmp 0x46e074
mov edx, dword [esi + 0x2f4]
mov eax, dword [esi + 0x2c0]
add eax, edx
mov dword [esi + 0x2c0], eax
mov eax, dword [esi + 0x1f0]
test eax, eax
jne 0x46e086
mov dword [esi + 0x2b0], ebp
jmp 0x46e0bd
fild dword [esi + 0x2f4]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0
fmul qword [0x553ef0]
fidiv dword [esp + 0x14]
call fcn.004ee7a8
mov dword [esi + 0x2b0], eax
mov dword [esi + 0x2f8], edi
mov dword [esi + 0x2f4], 0
mov eax, dword [esi + 0x2c4]
mov dword [esp + 0x10], 0x300
test eax, eax
jle 0x46e0d8
cmp dword [esi + 0x2a0], 0x33
jae 0x46e0e4
mov eax, dword [esi + 0x2b0]
mov dword [esi + 0x2c4], eax
mov eax, dword [esi + 0x2c4]
test eax, eax
jg 0x46e0f6
mov dword [esi + 0x2b4], ebp
jmp 0x46e122
mov ecx, dword [esi + 0x1d8]
mov edi, dword [esi + 0x228]
mov edx, dword [esi + 0x22c]
sub ecx, edi
mov edi, dword [esi + 0x1dc]
sbb edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.004eddc0
mov dword [esi + 0x2b4], eax
mov ecx, esi
call fcn.0046b8d0
mov ebp, eax
xor edi, edi
test ebp, ebp
jle 0x46e152
push edi
mov ecx, esi
call fcn.0046b930
mov ebx, eax
mov ecx, ebx
call fcn.0047fe90
test eax, eax
je 0x46e14d
mov ecx, ebx
call fcn.0047fed0
inc edi
cmp edi, ebp
jl 0x46e131
mov ecx, esi
call fcn.00479d20
test eax, eax
jne 0x46e84f
mov ecx, esi
call fcn.00476e00
test eax, eax
jne 0x46e84f
mov eax, dword [esi + 0x20c]
test eax, eax
jne 0x46e84f
xor ebx, ebx
mov ecx, esi
push ebx
call fcn.0046b570
mov ecx, eax
call fcn.0041f8e0
cmp eax, 0x1033
je 0x46e824
cmp eax, 0x1032
je 0x46e824
cmp eax, 0x1035
je 0x46e824
mov ecx, esi
call fcn.0046e8f0
cmp eax, ebx
jne 0x46e1ea
mov ecx, dword [esi + 0x290]
inc ecx
mov eax, ecx
mov dword [esi + 0x290], ecx
cmp eax, 0x64
jb 0x46e1f0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x596660
call fcn.0050d46b
push ebx
push 3
mov ecx, esi
call fcn.00467420
mov dword [esi + 0x290], ebx
mov ecx, esi
call fcn.0046b8d0
xor ebp, ebp
cmp eax, ebx
mov dword [esp + 0x1c], eax
jle 0x46e347
push ebp
mov ecx, esi
call fcn.0046b930
mov edi, eax
mov ecx, edi
call fcn.0047fe90
test eax, eax
jne 0x46e33a
mov eax, dword [edi + 0x18]
cmp eax, 3
je 0x46e22e
test eax, eax
jne 0x46e33a
push edi
mov ecx, esi
call fcn.004764f0
push 0xa
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
test ebx, ebx
jge 0x46e2f2
mov edx, dword [edi + 0x14]
mov ecx, esi
push edx
call fcn.0046b570
mov ecx, dword [eax + 0x28]
mov edx, dword [esi + 0x1d8]
cmp ecx, edx
jne 0x46e33a
mov edx, dword [eax + 0x2c]
mov ecx, dword [esi + 0x1dc]
cmp edx, ecx
jne 0x46e33a
mov ecx, eax
call fcn.00420d60
mov ecx, esi
mov ebx, eax
call fcn.004777d0
test eax, eax
jne 0x46e2bb
test ebx, ebx
je 0x46e2bb
mov ecx, ebx
call fcn.00420ac0
test eax, eax
je 0x46e2ac
mov eax, dword [edi + 0x14]
mov ecx, esi
push eax
push edi
call fcn.00478080
test eax, eax
jne 0x46e347
mov ecx, ebx
call fcn.00420d30
test eax, eax
je 0x46e347
lea ecx, [esp + 0x24]
push ecx
mov ecx, esi
call fcn.0046af20
test eax, eax
je 0x46e33a
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push eax
push ecx
mov ecx, edi
call fcn.0047e1f0
jmp 0x46e32f
lea edx, [esp + 0x24]
mov ecx, esi
push edx
call fcn.0046af20
test eax, eax
je 0x46e33a
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
mov ecx, edi
call fcn.0047e1f0
push ebx
mov ecx, edi
call fcn.0048da70
push 1
push 0
mov ecx, edi
call fcn.0047dbf0
mov eax, dword [esp + 0x1c]
inc ebp
cmp ebp, eax
jl 0x46e205
mov edi, dword [esi + 0x1dc]
mov ebx, dword [esi + 0x1d8]
test edi, edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edi
jl 0x46e84f
jg 0x46e36d
test ebx, ebx
jbe 0x46e84f
mov eax, dword [esi + 0x2ac]
test eax, eax
jl 0x46e84f
jg 0x46e38b
mov eax, dword [esi + 0x2a8]
test eax, eax
jb 0x46e84f
mov ecx, dword [esi + 0x228]
mov edx, dword [esi + 0x22c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
fild qword [esp + 0x14]
fild qword [esp + 0x1c]
fdivp st(1)
fmul qword [0x552d68]
fcomp qword [0x553ee8]
fnstsw ax
test ah, 0x41
je 0x46e3d7
add ecx, 0x80000
adc edx, 0
cmp edx, edi
jl 0x46e84f
jg 0x46e3d7
cmp ecx, ebx
jb 0x46e84f
cmp dword [esi + 0x31c], 6
jge 0x46e663
mov eax, dword [esi + 0x2c8]
lea edi, [esp + 0x3c]
lea ecx, [eax + eax*2]
xor eax, eax
shl ecx, 3
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [esp + 0x3c]
mov ecx, esi
push eax
call fcn.0046b280
mov edi, eax
mov ecx, esi
mov dword [esp + 0x1c], edi
call fcn.0046b8d0
mov ebx, eax
mov eax, dword [esi + 0x2fc]
cmp edi, eax
jge 0x46e663
xor edi, edi
test ebx, ebx
jle 0x46e663
push edi
mov ecx, esi
call fcn.0046b930
mov ebp, eax
mov ecx, ebp
call fcn.0047fe90
cmp eax, 1
je 0x46e457
inc edi
cmp edi, ebx
jl 0x46e437
jmp 0x46e663
push ebp
mov ecx, esi
call fcn.004764f0
mov ecx, dword [esi + 0x2fc]
mov dword [esp + 0x14], eax
cmp ecx, 0x1e
jne 0x46e47a
mov dword [esi + 0x2fc], 0xf
jmp 0x46e49a
cmp ecx, 0xf
jne 0x46e48b
mov dword [esi + 0x2fc], 8
jmp 0x46e49a
cmp ecx, 8
jne 0x46e49a
mov dword [esi + 0x2fc], 5
test eax, eax
jge 0x46e5ad
mov ecx, dword [ebp + 0x14]
push ecx
mov ecx, esi
call fcn.0046b570
mov edi, eax
mov ecx, edi
call fcn.0041fd30
test eax, eax
jne 0x46e65d
mov ecx, edi
call fcn.00420d60
mov ecx, esi
mov edi, eax
call fcn.004777d0
test eax, eax
jne 0x46e504
test edi, edi
je 0x46e504
mov ecx, edi
call fcn.00420ac0
test eax, eax
je 0x46e4f5
mov edx, dword [ebp + 0x14]
mov ecx, esi
push edx
push ebp
call fcn.00478080
test eax, eax
jne 0x46e663
mov ecx, edi
call fcn.00420d30
test eax, eax
je 0x46e663
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x46e65d
lea edi, [esp + 0x4c]
mov dword [esp + 0x1c], eax
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x470
call fcn.0050d138
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x5e4], 0
je 0x46e558
mov ecx, dword [ebp + 0x14]
push 0
push 0
push 0
push ecx
push 0
push esi
mov ecx, eax
call fcn.0047d970
mov ebx, eax
jmp 0x46e55a
xor ebx, ebx
mov edx, dword [edi + 4]
mov eax, dword [edi]
mov ecx, dword [edi - 4]
push edx
mov edx, dword [edi - 8]
push eax
mov eax, dword [edi - 0xc]
push ecx
mov ecx, dword [edi - 0x10]
push edx
push eax
push ecx
mov ecx, ebx
mov dword [esp + 0x5fc], 0xffffffff
call fcn.0047e1f0
push ebx
mov ecx, esi
call fcn.0046b950
push 1
push 0
mov ecx, ebx
call fcn.0047dbf0
mov eax, dword [esp + 0x1c]
add edi, 0x18
dec eax
mov dword [esp + 0x1c], eax
jne 0x46e518
jmp 0x46e65d
push eax
mov ecx, esi
call fcn.0046b570
mov ecx, eax
call fcn.0041fd30
test eax, eax
jne 0x46e65d
mov ebp, dword [esp + 0x1c]
test ebp, ebp
jle 0x46e65d
lea edi, [esp + 0x4c]
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x470
call fcn.0050d138
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov dword [esp + 0x5e4], 1
je 0x46e615
mov edx, dword [esp + 0x14]
push 0
push 0
push 0
push edx
push 0
push esi
mov ecx, eax
call fcn.0047d970
mov ebx, eax
jmp 0x46e617
xor ebx, ebx
mov eax, dword [edi + 4]
mov ecx, dword [edi]
mov edx, dword [edi - 4]
push eax
mov eax, dword [edi - 8]
push ecx
mov ecx, dword [edi - 0xc]
push edx
mov edx, dword [edi - 0x10]
push eax
push ecx
push edx
mov ecx, ebx
mov dword [esp + 0x5fc], 0xffffffff
call fcn.0047e1f0
push ebx
mov ecx, esi
call fcn.0046b950
push 1
push 0
mov ecx, ebx
call fcn.0047dbf0
add edi, 0x18
dec ebp
jne 0x46e5d4
inc dword [esi + 0x31c]
mov edx, dword [esi + 0x2a8]
mov edi, dword [esi + 0x2ac]
mov ebp, dword [esi + 0x308]
mov ebx, dword [esi + 0x30c]
mov ecx, edx
mov eax, edi
sub ecx, ebp
sbb eax, ebx
xor ebx, ebx
cmp eax, ebx
jg 0x46e6af
jl 0x46e693
cmp ecx, 0x400
jae 0x46e6af
mov ecx, dword [esi + 0x310]
mov eax, dword [esi + 0x314]
inc ecx
inc eax
mov dword [esi + 0x310], ecx
mov dword [esi + 0x314], eax
jmp 0x46e6bb
mov dword [esi + 0x310], ebx
mov dword [esi + 0x314], ebx
mov eax, dword [esi + 0x310]
mov dword [esi + 0x308], edx
cmp eax, 4
mov dword [esi + 0x30c], edi
je 0x46e6df
cmp dword [esi + 0x314], 0x1e
jne 0x46e84f
mov edx, dword [esi + 0x318]
mov ecx, esi
inc edx
mov dword [esi + 0x310], ebx
mov dword [esi + 0x314], ebx
mov dword [esi + 0x318], edx
call fcn.0046db50
test eax, eax
je 0x46e84f
cmp dword [esi + 0x318], 6
jl 0x46e71d
cmp dword [esi + 0x314], 0x1e
jne 0x46e84f
mov dword [esi + 0x314], ebx
call fcn.0052ba93
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x1c]
call fcn.00524d5f
mov edi, eax
lea ecx, [edi + 0x74]
call fcn.0047bf10
cmp eax, esi
jne 0x46e772
mov ebp, dword [esp + 0x10]
cmp ebp, ebx
je 0x46e772
mov eax, dword [esi + 0x38]
cmp eax, ebx
je 0x46e772
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x46e772
mov ecx, dword [esi + 0x38]
push ebp
push esi
push 0x4c8
mov edx, dword [ecx + 0x1c]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
mov ecx, edi
call fcn.0044ba50
mov ecx, eax
call fcn.00471f20
mov ecx, esi
call fcn.0046b8d0
xor ebp, ebp
mov dword [esp + 0x14], eax
test eax, eax
jle 0x46e7fc
mov eax, dword [esi + 0x2c8]
shl eax, 1
cmp ebp, eax
jge 0x46e7fc
push ebp
mov ecx, esi
call fcn.0046b930
mov edi, eax
test edi, edi
je 0x46e7f3
mov ecx, edi
call fcn.0047fe90
test eax, eax
je 0x46e7f3
push edi
mov ecx, esi
call fcn.004764f0
mov ebx, eax
test ebx, ebx
jl 0x46e7f3
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x596660
call fcn.0050d46b
push 0
mov ecx, edi
call fcn.0047fc40
push ebx
mov ecx, edi
call fcn.0048da70
push 1
push 0
mov ecx, edi
call fcn.0047dbf0
mov eax, dword [esp + 0x14]
inc ebp
cmp ebp, eax
jl 0x46e793
xor eax, eax
mov dword [esi + 0x2a8], eax
mov dword [esi + 0x308], eax
mov dword [esi + 0x2ac], eax
mov dword [esi + 0x30c], eax
call fcn.0042eff0
mov ecx, eax
call fcn.00434260
jmp 0x46e88c
call fcn.0042eff0
mov ecx, eax
call fcn.00434260
mov edi, dword [esp + 0x10]
cmp edi, ebx
je 0x46e88c
mov eax, dword [esi + 0x38]
cmp eax, ebx
je 0x46e88c
mov ecx, dword [eax + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x46e88c
jmp 0x46e878
call fcn.0042eff0
mov ecx, eax
call fcn.00434260
mov edi, dword [esp + 0x10]
test edi, edi
je 0x46e88c
mov eax, dword [esi + 0x38]
test eax, eax
je 0x46e88c
mov ecx, dword [eax + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x46e88c
mov edx, dword [esi + 0x38]
push edi
push esi
push 0x4c8
mov eax, dword [edx + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x5dc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x5d8
ret