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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x450e78
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
jp 0x409e02
jnp 0x409e02
lea esi, [ebx - 0x75]
sbb eax, sym.imp.kernel32.dll_GetTickCount
mov ebx, dword [sym.imp.kernel32.dll_GetTickCount]
call ebx
sub eax, dword [0x463964]
cmp eax, 0x7530
jbe 0x409e69
call fcn.0042fa00
jp 0x409e22
jnp 0x409e22
lea esi, [ebx - 0x5f]
lodsb al, byte [esi]
out dx, al
push ebp
add byte [edx], ch
mov eax, dword [0x55eeac]
push 0
push 0x15
push 0xbd4
push eax
call dword [sym.imp.user32.dll_PostMessageA]
jp 0x409e3d
jnp 0x409e3d
lea esi, [ebx - 0x39]
add eax, 0x46394c
sldt word [eax]
add byte [edx + 4], bh
mov dword [0x46394c], 0xf
jp 0x409e4d
jnp 0x409e4d
lea esi, [ebx - 1]
shl dword [ebx + 0x463964], cl
call ebx
mov dword [0x463964], eax
jp 0x409e5a
jnp 0x409e5a
lea esi, [ebx + 0x5b]
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
jp 0x409e6f
jnp 0x409e6f
lea esi, [ebx - 1]
shr dword [ebx], cl
add eax, 0x463970
call ebx
sub eax, dword [0x463970]
cmp eax, 0x5dc
jbe 0x409fb3
jp 0x409e88
jnp 0x409e88
lea esi, [ebx - 0x7d]
cmp eax, 0x474238
add dword [ebp + 0x2c], esi
cmp dword [0x474238], 1
jne 0x409ebd
mov dword [0x46394c], 4
jp 0x409ea1
jnp 0x409ea1
lea esi, [ebx - 1]
shl dword [ebx + 0x463964], cl
call ebx
mov dword [0x463964], eax
jp 0x409eae
jnp 0x409eae
lea esi, [ebx + 0x5b]
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
push edi
xor edi, edi
push edi
push 0x4741c0
lea ecx, [ebp - 0x18]
call sub.mfc42.dll_CSingleLock::CSingleLock
mov dword [ebp - 4], edi
jp 0x409ed7
jnp 0x409ed7
lea esi, [ebx + 0x6a]
dec dword [ebp + 0x3fe8e84d]
pop esi
add al, 0
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
call sub.mfc42.dll_CSingleLock::Lock
dec ebp
call 0x49edec8
add byte [edx + 4], bh
jp 0x409ee7
jnp 0x409ee7
lea esi, [ebx + 0x39]
jge 0x409eda
cmp dword [ebp - 0x10], edi
je 0x409fa3
push esi
jp 0x409ef7
jnp 0x409ef7
lea esi, [ebx + 0x7a]
add al, 0x7b
add cl, byte [ebp + 0x303d3973]
push ebp
add byte [edi], cl
mov cs, word [ebx - 0x5f000000]
sub al, 0xf3
push ebp
add byte [ebx], dh
test byte [ebx - 0x36ccf9ec], 0x8a
or eax, 0x46394b
jp 0x409efd
jnp 0x409efd
lea esi, [ebx + 0x39]
cmp eax, 0x55f330
cmp dword [0x55f330], edi
jle 0x409f94
mov eax, dword [0x55f32c]
xor esi, esi
mov edx, dword [esi + eax]
xor ecx, ecx
mov cl, byte [0x46394b]
cmp edx, ecx
jne 0x409f4f
mov dl, byte [esi + eax + 7]
mov al, byte [esi + eax + 6]
mov cl, byte [0x55edfb]
push edx
mov dl, byte [0x55edfa]
push eax
push ecx
push edx
call fcn.0043ec60
add esp, 0x10
jp 0x409f45
jnp 0x409f45
lea esi, [ebx - 0x7d]
clc
push es
cmp eax, 6
jbe 0x409f5f
mov eax, dword [0x55f32c]
mov ecx, dword [0x55f330]
inc edi
add esi, 0x28
cmp edi, ecx
jl 0x409f10
jmp 0x409f94
jp 0x409f65
jnp 0x409f65
lea esi, [ebx + 0x7a]
add al, 0x7b
add cl, byte [ebp + 0x2c0d8b73]
push ebp
add byte [ebp + 0x548dbf04], cl
rol dword [edx + edx*2], 0xe8
and bl, byte [ecx + 2]
add byte [ebx + 0x47a04c4], al
jp 0x409f6b
jnp 0x409f6b
lea esi, [ebx - 0x75]
or eax, 0x55f32c
mov ecx, dword [0x55f32c]
lea eax, [edi + edi*4]
lea edx, [ecx + eax*8 + 4]
push edx
call fcn.0042f8a0
add esp, 4
jp 0x409f87
jnp 0x409f87
lea esi, [ebx - 1]
shl dword [ebx + 0x463970], cl
call ebx
mov dword [0x463970], eax
jp 0x409f94
jnp 0x409f94
lea esi, [ebx - 0x73]
dec ebp
call 0x49e1e83
add byte [edx + 4], bh
lea ecx, [ebp - 0x18]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x409fa2
jnp 0x409fa2
lea esi, [ebx + 0x5e]
pop esi
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
call sub.mfc42.dll_CSingleLock::Unlock
pop edi
mov ecx, dword [ebp - 0xc]
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret