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

Disassembly:
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
mov eax, esi
or eax, edi
jne 0x51e32c
xor esi, esi
inc esi
xor edi, edi
push dword [ebp - 0x14]
jne 0x51e31b
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
call fcn.00421390
push 0
push 0xf4240
push edx
push eax
call fcn.00421390
push dword [ebp - 4]
push ebx
push edx
push eax
call fcn.004213d0
push edi
push esi
push edx
push eax
call fcn.004213d0
pop edi
pop esi
pop ebx
leave
ret
mov eax, 0x54b081
call fcn.0054565c
sub esp, 0x34
push ebx
push esi
push edi
mov edi, edx
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x22
ja 0x51e586
or ebx, 0xffffffc1
popal
pop edx
out 0xb7, al
sbb ah, cl
push 0x1e
inc esi
ja 0x51e32d
adc byte [edi], cl
push eax
sub ebp, dword [edx - 0x52]
mov ss, edi
outsb dx, byte [esi]
invalid
xor eax, eax
inc eax
test esi, esi
cmove esi, eax
and dword [ebp - 0x34], 0
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x3c], vtable.CBenchBuffer.0
mov ecx, esi
imul ecx, edi
xor edx, edx
mov eax, ecx
div esi
and dword [ebp - 4], 0
mov dword [ebp - 0x20], ecx
cmp eax, edi
jne 0x51e798
push ecx
lea ecx, [ebp - 0x3c]
call fcn.00414463
test al, al
je 0x51e798
mov ecx, edi
shr ecx, 2
inc ecx
mov eax, 0x40000000
xor edx, edx
div ecx
and dword [ebp - 0x28], 0
and dword [ebp - 0x24], 0
mov dword [ebp - 0x30], 0x159a55e5
mov dword [ebp - 0x2c], 0x1f123bb5
lea ebx, [eax + 1]
mov dword [ebp - 0x1c], ebx
push 0x18
mov byte [ebp - 4], 1
pop edx
cmp esi, 1
jbe 0x51e761
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0041beb3
pop ecx
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x51e647
push 0x413ff6
push 0x40de74
push esi
lea ebx, [eax + 4]
push 0x18
push ebx
mov dword [eax], esi
call fcn.0041d16b
jmp 0x51e649
xor ebx, ebx
mov byte [ebp - 4], 1
mov dword [ebp - 0x24], ebx
test esi, esi
je 0x51e68f
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], eax
lea esi, [ebx + 0xc]
mov ecx, dword [ebp - 0x1c]
mov dword [esi], ecx
lea ecx, [ebp - 0x30]
push ecx
mov edx, edi
mov ecx, eax
mov dword [esi - 8], eax
mov dword [esi - 4], edi
call fcn.0051a23c
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x10]
add eax, edi
dec dword [ebp - 0x14]
pop ecx
lea esi, [esi + 0x18]
mov dword [ebp - 0x10], eax
jne 0x51e660
mov esi, dword [ebp - 0x18]
call fcn.0051c8c5
and dword [ebp - 0x14], 0
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], edx
test esi, esi
je 0x51e6c7
push ebx
mov edx, 0x51a8dd
mov ecx, ebx
call fcn.0050d8b4
mov edi, eax
pop ecx
test edi, edi
jne 0x51e733
mov eax, dword [ebp - 0x14]
inc dword [ebp - 0x28]
inc eax
add ebx, 0x18
mov dword [ebp - 0x14], eax
cmp eax, esi
jb 0x51e6a2
lea ecx, [ebp - 0x28]
call fcn.0041624c
xor ecx, ecx
test esi, esi
je 0x51e6ec
mov eax, dword [ebp - 0x24]
add eax, 0x14
cmp byte [eax], 0
je 0x51e793
inc ecx
add eax, 0x18
cmp ecx, esi
jb 0x51e6db
call fcn.0051c8c5
mov ebx, eax
sub ebx, dword [ebp - 0x10]
mov eax, edx
sbb eax, dword [ebp - 0x18]
mov ecx, ebx
or ecx, eax
mov dword [ebp - 0x18], eax
jne 0x51e70a
xor ebx, ebx
inc ebx
and dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x1c]
mul dword [ebp - 0x20]
mov edi, eax
mov esi, edx
call fcn.0051c6af
push edx
push eax
push dword [ebp - 0x18]
push ebx
push esi
push edi
call fcn.0051b5cb
mov ecx, dword [ebp + 8]
add esp, 0x18
mov dword [ecx], eax
mov dword [ecx + 4], edx
xor edi, edi
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.0041624c
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x51e79d
push 0x413ff6
lea esi, [eax - 4]
push dword [esi]
push 0x18
push eax
call fcn.0041c55f
push esi
call fcn.00418a9a
pop ecx
jmp 0x51e79d
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0x30]
push eax
mov edx, edi
call fcn.0051a23c
pop ecx
mov esi, eax
call fcn.0051c8c5
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x18], edx
push esi
push ebx
mov edx, edi
mov dword [ebp - 0x10], eax
call fcn.0051ab0f
pop ecx
pop ecx
test al, al
jne 0x51e6ec
xor edi, edi
inc edi
jmp 0x51e733
mov edi, 0x8007000e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], vtable.CBenchBuffer.0
call fcn.00414244
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret