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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x454aa7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x10], ebx
jp 0x43f359
jnp 0x43f359
lea esi, [ebx + 0x53]
push ebx
push 0x4741e0
lea ecx, [ebp - 0x1c]
call sub.mfc42.dll_CSingleLock::CSingleLock
mov dword [ebp - 4], 1
jp 0x43f374
jnp 0x43f374
lea esi, [ebx + 0x6a]
dec dword [ebp - 0x5d171bb3]
or dword [ecx], eax
add byte [edx + 4], bh
push 0xffffffffffffffff
lea ecx, [ebp - 0x1c]
call sub.mfc42.dll_CSingleLock::Lock
jp 0x43f384
jnp 0x43f384
lea esi, [ebx - 0x75]
inc ebp
in al, dx
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp + 0xc]
cmp eax, ebx
je 0x43f3c9
mov eax, dword [0x55f378]
jp 0x43f399
jnp 0x43f399
lea esi, [ebx + 0x48]
dec eax
cmp eax, ebx
jl 0x43f3bb
mov edx, dword [0x55f374]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8 + 4]
mov di, word [esi]
cmp di, word [ecx]
je 0x43f430
dec eax
sub ecx, 0x28
cmp eax, ebx
jge 0x43f3ab
lea ecx, [ebp - 0x1c]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x43f3c9
jnp 0x43f3c9
lea esi, [ebx + 0x53]
push ebx
push 0x4741c0
lea ecx, [ebp - 0x28]
call sub.mfc42.dll_CSingleLock::CSingleLock
mov byte [ebp - 4], 3
jp 0x43f3e1
jnp 0x43f3e1
lea esi, [ebx + 0x6a]
dec dword [ebp + 0x35e8d84d]
or dword [ecx], eax
add byte [edx + 4], bh
push 0xffffffffffffffff
lea ecx, [ebp - 0x28]
call sub.mfc42.dll_CSingleLock::Lock
jp 0x43f3f1
jnp 0x43f3f1
lea esi, [ebx + 0x39]
pop ebp
loopne 0x43f404
cmp dword [ebp - 0x20], ebx
je 0x43f50a
test byte [eax], dl
add dword [eax], eax
add byte [ecx + 0x55f330], ah
mov eax, dword [0x55f330]
jp 0x43f405
jnp 0x43f405
lea esi, [ebx + 0x48]
jae 0x43f44e
dec eax
cmp eax, ebx
jl 0x43f4fc
mov edx, dword [0x55f32c]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8 + 4]
mov di, word [esi]
cmp di, word [ecx]
je 0x43f496
dec eax
sub ecx, 0x28
cmp eax, ebx
jge 0x43f41b
jmp 0x43f4fc
lea esi, [eax + eax*4]
shl esi, 3
lea edi, [esi + edx]
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [edi + 8], eax
mov edx, dword [0x55f374]
lea ecx, [ebp + 0xc]
mov eax, dword [esi + edx]
push eax
push ecx
call fcn.0043c6c0
add esp, 8
mov byte [ebp - 4], 2
jp 0x43f462
jnp 0x43f462
lea esi, [ebx - 0x73]
dec ebp
in al, 0xe8
mov al, 8
add dword [eax], eax
lea ecx, [ebp - 0x1c]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x43f470
jnp 0x43f470
lea esi, [ebx - 0x75]
jne 0x43f47b
mov esi, dword [ebp + 8]
lea edx, [ebp + 0xc]
push edx
mov ecx, esi
call sub.mfc42.dll_CString::CString_1
pop es
add dword [eax], eax
mov dword [ebp - 0x10], 1
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 1
call fcn.0044fc00
jmp 0x43f6f2
lea esi, [eax + eax*4]
shl esi, 3
lea edi, [esi + edx]
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [edi + 8], eax
mov edx, dword [0x55f32c]
lea ecx, [ebp + 0xc]
mov eax, dword [esi + edx]
push eax
push ecx
call fcn.0043c6c0
add esp, 8
mov byte [ebp - 4], 4
jp 0x43f4c8
jnp 0x43f4c8
lea esi, [ebx - 0x73]
dec ebp
fsubr st(0)
dec edx
or byte [ecx], al
add byte [edx + 4], bh
lea ecx, [ebp - 0x28]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x43f4d6
jnp 0x43f4d6
lea esi, [ebx - 0x75]
jne 0x43f4e1
mov esi, dword [ebp + 8]
lea edx, [ebp + 0xc]
push edx
mov ecx, esi
call sub.mfc42.dll_CString::CString_1
pop es
add dword [eax], eax
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x10], 1
mov byte [ebp - 4], 3
call fcn.0044fc00
jmp 0x43f6e6
lea ecx, [ebp - 0x28]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x43f50a
jnp 0x43f50a
lea esi, [ebx + 0x53]
push ebx
push 0x4741c8
lea ecx, [ebp - 0x34]
call sub.mfc42.dll_CSingleLock::CSingleLock
mov byte [ebp - 4], 5
jp 0x43f522
jnp 0x43f522
lea esi, [ebx + 0x6a]
dec dword [ebp - 0xb1733b3]
pop es
add dword [eax], eax
push 0xffffffffffffffff
lea ecx, [ebp - 0x34]
call sub.mfc42.dll_CSingleLock::Lock
jp 0x43f532
jnp 0x43f532
lea esi, [ebx + 0x39]
pop ebp
aam 0x74
mov eax, dword ds:[0x55f3c0]
cmp dword [ebp - 0x2c], ebx
je 0x43f575
mov eax, dword [0x55f3c0]
jp 0x43f542
jnp 0x43f542
lea esi, [ebx + 0x48]
dec eax
cmp eax, ebx
jl 0x43f567
mov edx, dword [0x55f3bc]
lea ecx, [eax + eax*2]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4 + 0x10]
mov di, word [esi]
cmp di, word [ecx]
je 0x43f5dc
dec eax
sub ecx, 0x3c
cmp eax, ebx
jge 0x43f557
lea ecx, [ebp - 0x34]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x43f575
jnp 0x43f575
lea esi, [ebx + 0x53]
push ebx
push 0x4741b0
lea ecx, [ebp - 0x40]
call sub.mfc42.dll_CSingleLock::CSingleLock
mov byte [ebp - 4], 7
jp 0x43f58d
jnp 0x43f58d
lea esi, [ebx + 0x6a]
dec dword [ebp - 0x76173fb3]
pop es
add dword [eax], eax
push 0xffffffffffffffff
lea ecx, [ebp - 0x40]
call sub.mfc42.dll_CSingleLock::Lock
jp 0x43f59d
jnp 0x43f59d
lea esi, [ebx + 0x39]
pop ebp
enter 0xffffffffffff840f, 0x12
add dword [eax], eax
add byte [ecx + 0x55f360], ah
cmp dword [ebp - 0x38], ebx
je 0x43f6b8
mov eax, dword [0x55f360]
jp 0x43f5b1
jnp 0x43f5b1
lea esi, [ebx + 0x48]
dec eax
cmp eax, ebx
jl 0x43f6aa
mov edx, dword [0x55f35c]
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8 + 4]
mov di, word [esi]
cmp di, word [ecx]
je 0x43f64a
dec eax
sub ecx, 0x28
cmp eax, ebx
jge 0x43f5c7
jmp 0x43f6aa
lea eax, [eax + eax*2]
lea esi, [eax + eax*4]
shl esi, 2
lea edi, [esi + edx]
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [edi + 0x18], eax
mov edx, dword [0x55f3bc]
add esi, edx
call sub.mfc42.dll_AfxGetEmptyString
mov eax, dword [eax]
push esi
lea ecx, [ebp + 0xc]
mov dword [ebp + 0xc], eax
call fcn.0044fc12
mov byte [ebp - 4], 6
jp 0x43f616
jnp 0x43f616
lea esi, [ebx - 0x73]
dec ebp
int3
lea ecx, [ebp - 0x34]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x43f624
jnp 0x43f624
lea esi, [ebx - 0x75]
jne 0x43f62f
mov esi, dword [ebp + 8]
lea ecx, [ebp + 0xc]
push ecx
mov ecx, esi
call sub.mfc42.dll_CString::CString_1
push es
add dword [eax], eax
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x10], 1
mov byte [ebp - 4], 5
call fcn.0044fc00
jmp 0x43f6da
lea esi, [eax + eax*4]
shl esi, 3
lea edi, [esi + edx]
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [edi + 8], eax
mov edx, dword [0x55f35c]
lea ecx, [ebp + 0xc]
lea eax, [esi + edx + 0x20]
push eax
call sub.mfc42.dll_CString::CString_1
mov byte [ebp - 4], 8
jp 0x43f679
jnp 0x43f679
lea esi, [ebx - 0x73]
dec ebp
shr al, 0x99
push es
add dword [eax], eax
lea ecx, [ebp - 0x40]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x43f687
jnp 0x43f687
lea esi, [ebx - 0x75]
jne 0x43f692
mov esi, dword [ebp + 8]
lea ecx, [ebp + 0xc]
push ecx
mov ecx, esi
call sub.mfc42.dll_CString::CString_1
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x10], 1
add eax, 0x4d8d0001
or al, 0xc7
inc ebp
lock add dword [eax], eax
add byte [eax], al
mov byte [ebp - 4], 7
call fcn.0044fc00
jmp 0x43f6ce
lea ecx, [ebp - 0x40]
call sub.mfc42.dll_CSingleLock::Unlock
jp 0x43f6b8
jnp 0x43f6b8
lea esi, [ebx - 0x75]
jne 0x43f6c3
mov esi, dword [ebp + 8]
push 0x46393c
mov ecx, esi
call sub.mfc42.dll_CString::CString_2
mov dword [ebp - 0x10], 1
mov ebp, 0xc7000105
inc ebp
lock add dword [eax], eax
add byte [eax], al
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 5
call sub.mfc42.dll_CSingleLock::Unlock
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 3
call sub.mfc42.dll_CSingleLock::Unlock
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call sub.mfc42.dll_CSingleLock::Unlock
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call sub.mfc42.dll_CSingleLock::Unlock
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret