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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4621e7
mov eax, dword fs:[0]
push eax
sub esp, 0x264
mov eax, dword [0x474860]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x254], eax
mov dword [ebp - 0x250], edi
call ebx
cmp eax, 3
ja 0x409916
mov dword [0xb40ac83], eax
or byte [ecx], ch
out dx, al
fcomp dword [esi + 0x2d]
push cs
xor bl, byte [esi + 0x3f]
fdivrp st(3)
retf
call fcn.0041cbb0
cmp dword [eax + 0x1ac], 0
je 0x409e5b
push ecx
mov ecx, dword [edi]
sub ecx, 0x10
mov esi, esp
call fcn.00407420
add eax, 0x10
lea ecx, [ebp - 0x248]
mov dword [esi], eax
rcl byte [eax], 0x8d
lea edi, [eax - 0x76000003]
push es
call fcn.00443f30
add esp, 4
mov dword [ebp - 4], 0
call ebx
cmp eax, 2
ja 0x409975
push edi
mov ebx, dword [ecx]
pushfd
jnp 0x409936
cmp dword [esi + 0x46], edx
ror dword [edx + edi*8 + 0x460363c2], 1
or byte [ebx + 0x2b], dl
and al, 0xa8
add dh, byte [eax + 0x21864b22]
and dl, byte [edi - 0x427c0d05]
int3
cmp dword [ebp - 0x234], 8
lea esi, [ebp - 0x248]
cmovae esi, dword [ebp - 0x248]
call fcn.0041cbb0
mov eax, dword [eax + 0x1ac]
push esi
call eax
mov esi, eax
call ebx
cmp eax, 7
ja 0x4099f1
push edx
push ebx
push ds
invalid
push ebp
ror ah, cl
cld
mov ebp, 0x912a8178
sub al, 0x17
invalid
sub dl, byte [ecx + 0x318f172c]
sbb bl, byte [edi]
inc esp
call 0xd757e0a8
push 0x46cd04
lea ecx, [ebp - 0x230]
call fcn.00402480
mov byte [ebp - 4], 1
call ebx
cmp eax, 2
ja 0x409a2b
in al, dx
loop 0x4099e3
das
jbe 0x4099dc
les esp, [ebp + ecx*4 - 0x3ce18b95]
sbb byte [edi - 0x115dcf4f], dh
iretd
test esi, esi
je 0x409a9e
push esi
lea ecx, [ebp - 0x26c]
call fcn.00402480
mov esi, eax
lea eax, [ebp - 0x230]
cmp eax, esi
je 0x409a87
cmp dword [ebp - 0x21c], 8
jb 0x409a5e
push dword [ebp - 0x230]
call fcn.00447bb4
add esp, 4
xor eax, eax
push esi
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
call fcn.00401d30
cmp dword [ebp - 0x258], 8
jb 0x409a9e
push dword [ebp - 0x26c]
call fcn.00447bb4
add esp, 4
mov edi, dword [ebp - 0x21c]
mov esi, dword [ebp - 0x230]
cmp edi, 8
lea eax, [ebp - 0x230]
cmovae eax, esi
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x220]
lea ecx, [ebp - 0x230]
cmovae ecx, esi
lea edx, [ebp - 0x230]
lea eax, [ecx + eax*2]
cmovae edx, esi
cmp edx, eax
je 0x409af5
push fcn.0044842d
push dword [ebp - 0x24c]
lea ecx, [ebp - 0x24c]
push eax
call fcn.00401bc0
add esp, 0xc
call ebx
cmp eax, 9
ja 0x409b61
test al, 0x2d
or byte [ecx + 0x5908e7dd], ch
clc
push ecx
xlatb
add eax, 0x4cdcf8e5
pop eax
or edx, dword [edi + 0x7cc00675]
sti
adc eax, 0xd14902f4
adc dh, bh
ret 0x35a0
mov edi, dword [ebp - 0x21c]
mov esi, dword [ebp - 0x230]
lea eax, [ebp - 0x230]
cmp edi, 8
cmovae eax, esi
mov ecx, 0x46cf5c
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x409ba6
test dx, dx
je 0x409ba2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x409ba6
add eax, 4
add ecx, 4
test dx, dx
jne 0x409b80
xor eax, eax
jmp 0x409bab
sbb eax, eax
or eax, 1
test eax, eax
jne 0x409e19
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.0044b2e0
add esp, 0xc
call ebx
cmp eax, 6
ja 0x409c1d
scasd eax, dword es:[edi]
jecxz 0x409c0e
and ebx, dword [eax - 0x9b97355]
xor dword [ecx - 0x69], 0x46
add ch, al
xchg ebx, eax
push 0xffffffffffffff90
mov eax, dword [edi + ecx*2]
jnp 0x409c2e
mov ebp, 0x8a4e47cd
into
inc ebp
mov word [edi - 0x4d], fs
div eax
push edx
outsd dx, dword [esi]
sbb dword [0x811fbab5], eax
fxch st(1)
mov edi, 0xa53c7a82
dec esi
salc
sub byte [edi], ah
cmp dword [ebx], eax
pop ss
xor eax, esi
test dword [eax - 0x7a], edx
adc byte [eax], ah
pop ecx
pop ds
push 0xbd8bbbeb
mov al, 0xfd
invalid
mov edi, dword [ebp - 0x250]
lea eax, [ebp - 0x218]
push dword [edi]
push 0x103
add byte [eax], al
push eax
call fcn.00448820
add esp, 0xc
call ebx
cmp eax, 1
ja 0x409c55
hlt
call fcn.0041cbb0
mov eax, dword [eax + 0x1b0]
lea ecx, [ebp - 0x218]
push ecx
call eax
call ebx
cmp eax, 6
ja 0x409cb7
out dx, al
ja 0x409cb6
pop ebx
invalid
mov dl, byte [ecx - 0x75]
lea ebp, [ebp + edi*8 - 0xb740001]
push ecx
mov ecx, dword [ebp - 0x254]
mov esi, esp
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.00407420
add eax, 0x10
mov ecx, edi
mov dword [esi], eax
call fcn.0040e600
add esp, 4
call ebx
cmp eax, 2
ja 0x409cff
or dword [ebx], esi
neg byte [esi - 0x42]
rol byte [edi - 0x1a4c58c3], 0xc1
mov byte [eax], dl
adc dword [edx - 0x34ed7a6a], esi
dec ebp
dec eax
rol edi, 0x54
inc byte [ecx - 0x72c163da]
test eax, ebp
std
invalid
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00406f00
push 0x46cfec
mov edx, eax
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 2
call fcn.00407040
add esp, 4
push edi
mov edx, eax
lea ecx, [ebp - 0x254]
mov byte [ebp - 4], 3
call fcn.0040ca10
add esp, 4
push eax
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.004071d0
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x254]
add edx, 0xfffffff0
or esi, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, esi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x409d71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x250]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x409d94
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x24c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x409db5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call ebx
cmp eax, 7
ja 0x409e0d
mov ecx, 0x9be9dfd1
lds esi, [esi + 7]
fisubr word [ebx + 0x79]
pop ebx
jns 0x409e23
add eax, 0xe33a28c9
cmc
mov dword [esi + 0x7753d05f], ebx
jne 0x409dc6
or eax, dword [ecx + 0x7d]
fisubr word [ebp - 0x25]
mov al, 0x82
or eax, 0x3edbe897
mov fs, word [edi + 0x5b3633f4]
adc esp, dword [esi + esi - 0x20]
xor esi, dword [ebx]
js 0x409e38
mov ah, 0xd0
adc dh, 0x52
pop edx
std
dec edi
push esp
inc edi
sahf
jbe 0x409e03
add eax, 0xe168cd27
les esp, [edx + 0x4b9d2928]
into
lea ebp, [edx - 0x1b42744f]
std
invalid
mov edi, dword [ebp - 0x21c]
mov esi, dword [ebp - 0x230]
cmp edi, 8
jb 0x409e27
push esi
call fcn.00447bb4
add esp, 4
add byte [ebx - 0x3fccfb3c], al
xor eax, eax
cmp dword [ebp - 0x234], 8
mov dword [ebp - 0x21c], 7
add byte [eax], al
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], ax
jb 0x409e5b
push dword [ebp - 0x248]
call fcn.00447bb4
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00447bb9
mov esp, ebp
pop ebp
ret 8