Function at 0x43b010
Capabilities:
Check for time delay via gettickcount
Check for time delay via queryperformancecounter
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
sub esp, 0x74
mov ecx, 1
xor eax, eax
push ebx
push esi
push edi
lock cmpxchg dword [edx], ecx
cmp dword [edx], 1
jne 0x43b034
test eax, eax
je 0x43b25e
xor eax, eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
xor ebx, ebx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 4], eax
nop
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [ebp - 0x44]
xor ecx, ecx
or ecx, dword [ebp - 0x48]
mov edx, 0xcccccccd
add ecx, 0x2ac18000
adc eax, 0xfe624e21
mov dword [ebp - 0x10], eax
lea edi, [edx - 1]
mov eax, ecx
mul edx
mov eax, ecx
mov ecx, 0xcccccccd
mov esi, edx
mul edi
mov edi, eax
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x10]
mul ecx
mov ecx, eax
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x10]
mov edx, 0xcccccccc
mul edx
add ecx, esi
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x18]
adc edx, 0
mov dword [ebp - 0x10], eax
mov esi, eax
add edi, ecx
mov ecx, dword [ebp - 0x20]
adc ecx, 0
xor eax, eax
add edx, ecx
mov ecx, dword [ebp - 0x24]
adc eax, eax
add esi, edx
adc ecx, eax
mov eax, dword [ebp + 0xc]
shrd esi, ecx, 3
shr ecx, 3
cmp ecx, dword [eax + 4]
ja 0x43b267
jb 0x43b0e2
cmp esi, dword [eax]
jae 0x43b267
mov edx, dword [ebp + 8]
mov esi, 1
mov ecx, esi
xor eax, eax
lock cmpxchg dword [edx], ecx
cmp dword [edx], esi
jne 0x43b0fe
test eax, eax
je 0x43b25e
test ebx, ebx
jne 0x43b122
mov eax, dword [0x68abdc]
test eax, eax
jne 0x43b118
lea eax, [ebp - 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x60]
cmp esi, eax
sbb ebx, ebx
and ebx, 0xffffffe0
add ebx, 0x20
cmp ebx, 8
jb 0x43b258
cmp ebx, 0x20
jae 0x43b138
pause
inc ebx
jmp 0x43b050
jne 0x43b1f2
push 7
call fcn.00440440
add esp, 4
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x30]
push ecx
call eax
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x43b178
mov ecx, dword [ebp - 0x14]
mov eax, 0xd1b71759
lea ecx, [ecx - 1]
mul ecx
mov eax, edx
shr eax, 0xd
jmp 0x43b1b0
mov eax, dword [ebp - 0x14]
mov ecx, 0x5f5e100
push dword [ebp - 0x4c]
mul ecx
push dword [ebp - 0x50]
mov edi, eax
mov esi, edx
push 0x38d7e
sub edi, 1
push 0xa4c67fff
sbb esi, 0
call fcn.004b4100
add eax, 1
adc edx, 0
push edx
push eax
push esi
push edi
call fcn.004b4100
lea esi, [eax + 1]
lea eax, [ebp - 0x38]
mov dword [ebp - 0xc], esi
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x43b1e0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
xor eax, eax
mov dword [ebp - 4], ecx
inc ebx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0x34], eax
jmp 0x43b050
mov eax, dword [ebp - 0x34]
inc ebx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 4], eax
jmp 0x43b050
mov esi, dword [ebp - 0xc]
test esi, esi
jne 0x43b200
test bl, 1
je 0x43b250
jmp 0x43b234
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x43b21e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor ecx, ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
jmp 0x43b224
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 4]
sbb ecx, dword [ebp - 8]
test ecx, ecx
ja 0x43b24b
jb 0x43b234
cmp eax, esi
jae 0x43b24b
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
test eax, eax
jne 0x43b258
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
jmp 0x43b050
xor eax, eax
mov dword [ebp - 0xc], eax
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
jmp 0x43b050
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret