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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x454f78
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa4
push ebx
push esi
xor ebx, ebx
push edi
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x68], ebx
call sub.mfc42.dll_CString::CString
xor eax, eax
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x4c], eax
mov word [ebp - 0x54], bx
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x52], bl
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x51], bl
mov dword [ebp - 0x40], eax
mov eax, 0xff
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], ebx
xor ecx, ecx
push ebx
mov dword [ebp - 0xb0], ecx
push 0x4741d8
mov dword [ebp - 0xac], ecx
mov dword [ebp - 4], ebx
mov dword [ebp - 0xa8], ecx
mov word [ebp - 0xa0], bx
mov dword [ebp - 0xa4], ecx
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x98], ebx
mov byte [ebp - 0x9e], bl
mov byte [ebp - 0x9d], bl
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov byte [ebp - 0x94], bl
mov byte [ebp - 0x78], al
call sub.mfc42.dll_CSingleLock::CSingleLock
mov byte [ebp - 4], 1
jp 0x447f46
jnp 0x447f46
lea esi, [ebx + 0x6a]
dec dword [ebp - 0x2f1717b3]
jge 0x447f4f
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
call sub.mfc42.dll_CSingleLock::Lock
jp 0x447f56
add byte [edx + 4], bh
jnp 0x447f56
lea esi, [ebx - 0x75]
inc ebp
invalid
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp + 8]
cmp eax, ebx
je 0x4480c2
mov eax, dword [0x55f348]
jp 0x447f6f
jnp 0x447f6f
lea esi, [ebx - 0x73]
jo 0x447f71
lea esi, [eax - 1]
invalid
cmp esi, ebx
jl 0x447fdc
mov ecx, dword [0x55f344]
lea edx, [esi + esi*4]
lea eax, [ecx + edx*8 + 4]
mov dx, word [edi]
cmp dx, word [eax]
je 0x447f95
dec esi
sub eax, 0x28
cmp esi, ebx
jge 0x447f83
jmp 0x447fdc
mov al, byte [edi]
mov dl, byte [edi + 1]
lea esi, [esi + esi*4]
mov byte [ebp - 0x54], al
shl esi, 3
mov byte [ebp - 0x53], dl
lea eax, [esi + ecx + 0x20]
lea ecx, [ebp - 0x38]
push eax
call fcn.0044fc7e
mov eax, dword [0x55f344]
mov ecx, dword [esi + eax]
mov dword [ebp - 0x58], ecx
mov dl, byte [esi + eax + 6]
mov byte [ebp - 0x52], dl
mov al, byte [esi + eax + 7]
mov byte [ebp - 0x51], al
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x68], 1
lea ecx, [ebp - 0x18]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x447fea
jnp 0x447fea
lea esi, [ebx + 0x39]
pop ebp
cwde
cmp dword [ebp - 0x68], ebx
je 0x4480c2
push ebx
push 0x4741e0
lea ecx, [ebp - 0x64]
call sub.mfc42.dll_CSingleLock::CSingleLock
mov byte [ebp - 4], 2
jp 0x44800b
jnp 0x44800b
lea esi, [ebx + 0x6a]
dec dword [ebp + 0xbe89c4d]
jge 0x448014
push 0xffffffffffffffff
lea ecx, [ebp - 0x64]
call sub.mfc42.dll_CSingleLock::Lock
jp 0x44801b
add byte [edx + 4], bh
jnp 0x44801b
lea esi, [ebx + 0x39]
pop ebp
movsb byte es:[edi], byte [esi]
cmp dword [ebp - 0x5c], ebx
je 0x4480b6
mov ecx, dword [ebp - 0x58]
sub esp, 0x28
mov esi, esp
mov dword [ebp + 8], esp
mov dword [esi], ecx
mov dx, word [ebp - 0x54]
mov word [esi + 4], dx
mov al, byte [ebp - 0x52]
mov byte [esi + 6], al
mov cl, byte [ebp - 0x51]
mov byte [esi + 7], cl
mov edx, dword [ebp - 0x50]
mov dword [esi + 8], edx
mov ecx, dword [ebp - 0x4c]
lea eax, [esi + 0xc]
mov dword [esi + 0xc], ecx
mov edx, dword [ebp - 0x48]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x44]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x40]
lea ecx, [ebp - 0x38]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x3c]
push ecx
lea ecx, [esi + 0x20]
mov dword [esi + 0x1c], eax
call sub.mfc42.dll_CString::CString_1
mov edx, dword [ebp - 0x34]
mov ecx, 0x55f370
mov dword [esi + 0x24], edx
call fcn.00427d20
lea ecx, [ebp - 0x64]
call sub.mfc42.dll_CSingleLock::Unlock
mov eax, dword [0x55eea8]
push ebx
push 0xa
push 0xbd3
push eax
call dword [sym.imp.user32.dll_PostMessageA]
jne 0x4480aa
je 0x4480aa
mov eax, dword [ebp - 0x3a]
inc ebp
cld
add dword [ebp + 0x24e99c4d], ecx
add eax, dword [eax]
add byte [ebp + 0x45c69c4d], cl
cld
add eax, ebp
pop eax
jl 0x4480c1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x64]
jmp 0x4483da
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 1
call sub.mfc42.dll_CSingleLock::Unlock
add byte [ebx + 0x68], dl
mov eax, 0x8d004741
dec ebp
fsub st(0), st(0)
push esi
jl 0x4480cf
push ebx
push 0x4741b8
lea ecx, [ebp - 0x24]
call sub.mfc42.dll_CSingleLock::CSingleLock
mov byte [ebp - 4], 3
jp 0x4480da
add dh, al
inc ebp
cld
add edi, dword [edx + 4]
jnp 0x4480da
lea esi, [ebx + 0x6a]
dec dword [ebp + 0x3ce8dc4d]
jl 0x4480e3
push 0xffffffffffffffff
lea ecx, [ebp - 0x24]
call sub.mfc42.dll_CSingleLock::Lock
jp 0x4480ea
add byte [edx + 4], bh
jnp 0x4480ea
lea esi, [ebx + 0x39]
pop ebp
in al, 0xf
test byte [eax + eax + 0x18a10000], cl
push ebp
add byte [edx + 4], bh
cmp dword [ebp - 0x1c], ebx
je 0x44817f
mov eax, dword [0x55f318]
jp 0x4480fe
jnp 0x4480fe
lea esi, [ebx - 0x73]
jo 0x448100
lea esi, [eax - 1]
invalid
cmp esi, ebx
jl 0x448171
mov edx, dword [0x55f314]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*8 + 4]
mov cx, word [edi]
cmp cx, word [eax]
je 0x448124
dec esi
sub eax, 0x28
cmp esi, ebx
jge 0x448112
jmp 0x448171
mov dl, byte [edi]
mov ecx, dword [0x55f344]
mov al, byte [edi + 1]
lea esi, [esi + esi*4]
shl esi, 3
mov byte [ebp - 0x54], dl
mov byte [ebp - 0x53], al
lea edx, [esi + ecx + 0x20]
lea ecx, [ebp - 0x38]
push edx
call fcn.0044fc7e
mov eax, dword [0x55f344]
mov ecx, dword [esi + eax]
mov dword [ebp - 0x58], ecx
mov dl, byte [esi + eax + 6]
mov byte [ebp - 0x52], dl
mov al, byte [esi + eax + 7]
mov byte [ebp - 0x51], al
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x68], 1
lea ecx, [ebp - 0x24]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x44817f
jnp 0x44817f
lea esi, [ebx + 0x39]
pop ebp
cwde
cmp dword [ebp - 0x68], ebx
je 0x448257
push ebx
push 0x4741c0
lea ecx, [ebp - 0x64]
call sub.mfc42.dll_CSingleLock::CSingleLock
mov byte [ebp - 4], 4
jp 0x4481a0
jnp 0x4481a0
lea esi, [ebx + 0x6a]
dec dword [ebp + 0x76e89c4d]
jnp 0x4481a9
push 0xffffffffffffffff
lea ecx, [ebp - 0x64]
call sub.mfc42.dll_CSingleLock::Lock
jp 0x4481b0
add byte [edx + 4], bh
jnp 0x4481b0
lea esi, [ebx + 0x39]
pop ebp
movsb byte es:[edi], byte [esi]
cmp dword [ebp - 0x5c], ebx
je 0x44824b
mov ecx, dword [ebp - 0x58]
sub esp, 0x28
mov esi, esp
mov dword [ebp + 8], esp
mov dword [esi], ecx
mov dx, word [ebp - 0x54]
mov word [esi + 4], dx
mov al, byte [ebp - 0x52]
mov byte [esi + 6], al
mov cl, byte [ebp - 0x51]
mov byte [esi + 7], cl
mov edx, dword [ebp - 0x50]
mov dword [esi + 8], edx
mov ecx, dword [ebp - 0x4c]
lea eax, [esi + 0xc]
mov dword [esi + 0xc], ecx
mov edx, dword [ebp - 0x48]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x44]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x40]
lea ecx, [ebp - 0x38]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x3c]
push ecx
lea ecx, [esi + 0x20]
mov dword [esi + 0x1c], eax
call sub.mfc42.dll_CString::CString_1
mov edx, dword [ebp - 0x34]
mov ecx, 0x55f328
mov dword [esi + 0x24], edx
call fcn.00427d20
lea ecx, [ebp - 0x64]
call sub.mfc42.dll_CSingleLock::Unlock
mov eax, dword [0x55eea8]
push ebx
push 0xb
push 0xbd3
push eax
call dword [sym.imp.user32.dll_PostMessageA]
jne 0x44823f
je 0x44823f
mov eax, dword [ebp - 0x3a]
inc ebp
cld
add ecx, dword [ebp - 0x7c1663b3]
add dword [eax], eax
add byte [ebp + 0x45c69c4d], cl
cld
add ebp, eax
ret
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x64]
jmp 0x4483ce
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 3
call sub.mfc42.dll_CSingleLock::Unlock
push ebx
push 0x4741a0
lea ecx, [ebp - 0x30]
call sub.mfc42.dll_CSingleLock::CSingleLock
mov byte [ebp - 4], 5
jp 0x44826f
jnp 0x44826f
lea esi, [ebx + 0x6a]
dec dword [ebp - 0x58172fb3]
jp 0x448278
push 0xffffffffffffffff
lea ecx, [ebp - 0x30]
call sub.mfc42.dll_CSingleLock::Lock
jp 0x44827f
add byte [edx + 4], bh
jnp 0x44827f
lea esi, [ebx + 0x39]
pop ebp
fmul dword [edi]
test byte [ebp - 0x5f000000], ah
nop
push ebp
add byte [edx + 4], bh
cmp dword [ebp - 0x28], ebx
je 0x44832d
mov eax, dword [0x55f390]
jp 0x448293
jnp 0x448293
lea esi, [ebx + 0x48]
dec eax
cmp eax, ebx
jl 0x44831f
mov edx, dword [0x55f38c]
lea ecx, [eax + eax*2]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4 + 0x10]
mov si, word [edi]
cmp si, word [ecx]
je 0x4482be
dec eax
sub ecx, 0x3c
cmp eax, ebx
jge 0x4482ac
jmp 0x44831f
lea eax, [eax + eax*2]
mov edi, dword [sym.imp.kernel32.dll_GetTickCount]
lea esi, [eax + eax*4]
shl esi, 2
add edx, esi
mov eax, dword [edx]
mov dword [ebp - 0xb0], eax
mov ecx, dword [edx + 4]
mov dword [ebp - 0xac], ecx
mov eax, dword [edx + 8]
mov dword [ebp - 0xa8], eax
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0xa4], ecx
call edi
mov eax, dword [0x55f38c]
mov edx, dword [esi + eax + 0x14]
mov cl, byte [esi + eax + 0x12]
mov dword [ebp - 0x9c], edx
mov dl, byte [esi + eax + 0x13]
mov byte [ebp - 0x9e], cl
mov byte [ebp - 0x9d], dl
call edi
mov dword [ebp - 0x98], eax
lea ecx, [ebp - 0x30]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x44832d
jnp 0x44832d
lea esi, [ebx + 0x39]
pop ebp
cwde
cmp dword [ebp - 0x68], ebx
je 0x4483c7
push ebx
push 0x4741c8
lea ecx, [ebp - 0x74]
call sub.mfc42.dll_CSingleLock::CSingleLock
mov byte [ebp - 4], 6
jp 0x44834e
jnp 0x44834e
lea esi, [ebx + 0x6a]
dec dword [ebp - 0x371773b3]
jns 0x448357
push 0xffffffffffffffff
lea ecx, [ebp - 0x74]
call sub.mfc42.dll_CSingleLock::Lock
jp 0x44835e
add byte [edx + 4], bh
jnp 0x44835e
lea esi, [ebx + 0x39]
pop ebp
xchg esp, eax
cmp dword [ebp - 0x6c], ebx
je 0x4483bb
mov esi, dword [0x55f3c0]
cmp esi, esi
jl 0x44837d
lea eax, [esi + 1]
push 0xffffffffffffffff
push eax
mov ecx, 0x55f3b8
call fcn.004054f0
mov edx, dword [0x55f3bc]
lea eax, [esi + esi*2]
lea esi, [ebp - 0xb0]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*4]
mov ecx, 0xf
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp - 0x74]
call sub.mfc42.dll_CSingleLock::Unlock
mov eax, dword [0x55eea8]
push ebx
push pe_nt_image_headers32
push 0xbd3
push eax
call dword [sym.imp.user32.dll_PostMessageA]
jne 0x4483bb
je 0x4483bb
mov eax, dword [ebp - 0x73]
dec ebp
mov esi, es
inc ebp
cld
add eax, 0x7953e8
add dh, al
inc ebp
cld
add ecx, dword [ebp + 0x47e8d04d]
jns 0x4483d2
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 5
call sub.mfc42.dll_CSingleLock::Unlock
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x30]
call sub.mfc42.dll_CSingleLock::Unlock
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
add dh, al
inc ebp
cld
add dword [ebp + 0x3be8dc4d], ecx
jns 0x4483de
call sub.mfc42.dll_CSingleLock::Unlock
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], bl
add byte [ebp + 0x5d88e84d], cl
cld
call sub.mfc42.dll_CSingleLock::Unlock
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], 0xffffffff
call fcn.0044fc00
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret