Function at 0x410c30
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov esi, dword [ebp + 8]
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
fild qword [esp + 0x30]
fstp qword [esp + 0x50]
movsd xmm0, qword [0x5231f0]
divsd xmm0, qword [esp + 0x50]
fild qword [esp + 0x28]
fstp qword [esp + 0x58]
mulsd xmm0, qword [esp + 0x58]
movsd qword [esp + 0x20], xmm0
fld qword [esp + 0x20]
fnstcw word [esp + 0xe]
movzx eax, word [esp + 0xe]
or eax, 0xc00
mov word [esp + 0x16], ax
fldcw word [esp + 0x16]
fistp qword [esp + 0x20]
fldcw word [esp + 0xe]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
lea eax, [esi + 0x308]
lea ecx, [esi + 0x318]
mov dword [esp + 0x3c], ecx
mov dword [esp + 8], edi
mov dword [esp], edx
mov dword [esp + 4], eax
mov eax, dword [eax]
jmp 0x410d07
add esi, dword [esp]
adc edi, dword [esp + 8]
mov dword [ebx + 0x10], esi
mov dword [ebx + 0x14], edi
mov esi, dword [esp + 4]
mov ecx, esi
mov edx, dword [esp + 0x10]
push ebx
call fcn.0042e0e0
add esp, 4
mov dword [esi], eax
mov ecx, dword [ebx + 0x20]
test ecx, ecx
mov esi, dword [ebp + 8]
mov edi, dword [esp + 8]
mov edx, dword [esp]
jne 0x410e08
test eax, eax
je 0x410e20
mov ecx, eax
nop word cs:[eax + eax]
mov edx, ecx
mov ecx, dword [ecx]
test ecx, ecx
jne 0x410d20
mov ecx, dword [esi + 0x310]
mov ebx, edx
sub ebx, ecx
je 0x410e2c
mov edx, dword [esp]
cmp edx, dword [ebx + 0x10]
mov edx, edi
sbb edx, dword [ebx + 0x14]
jl 0x410e30
mov esi, dword [esp + 4]
mov ecx, esi
mov edx, ebx
push eax
call fcn.0042e1b0
add esp, 4
mov dword [esi], eax
mov esi, dword [ebx + 0x18]
mov edi, dword [ebx + 0x1c]
mov ecx, esi
or ecx, edi
je 0x410dc6
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x10]
add eax, esi
mov ecx, dword [ebx + 0x14]
adc ecx, edi
cmp eax, dword [esp]
mov edx, ecx
sbb edx, dword [esp + 8]
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], ecx
jge 0x410cdd
cmp dword [ebx + 0xc], 1
jne 0x410cd0
mov edx, dword [esp]
sub edx, eax
mov eax, dword [esp + 8]
sbb eax, ecx
push edi
push esi
push eax
push edx
call fcn.00521708
add esp, 0x10
test edx, edx
js 0x410dc0
add esi, dword [esp]
adc edi, dword [esp + 8]
sub esi, eax
sbb edi, edx
jmp 0x410cd7
add eax, esi
adc edx, edi
jmp 0x410db0
mov esi, dword [esp + 0x3c]
mov ecx, esi
mov edx, ebx
push dword [esi]
call fcn.0042e1b0
add esp, 4
mov dword [esi], eax
mov eax, dword [ebx + 0x20]
test eax, eax
mov esi, dword [ebp + 8]
je 0x410def
push dword [ebx + 0x28]
push dword [ebx + 0x24]
call eax
add esp, 8
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
add esp, 4
mov edi, dword [esp + 8]
mov edx, dword [esp]
mov eax, dword [esp + 4]
jmp 0x410cc5
push dword [ebx + 0x28]
push dword [ebx + 0x24]
call ecx
mov edx, dword [esp + 8]
add esp, 8
mov eax, dword [esp + 4]
jmp 0x410cc5
mov eax, 0x7fffffff
mov ecx, 0xffffffff
jmp 0x410e53
mov ecx, edx
nop
mov edx, eax
mov eax, dword [eax]
test eax, eax
jne 0x410e30
cmp ecx, edx
jne 0x410e48
mov eax, 0x7fffffff
mov ecx, 0xffffffff
jmp 0x410e50
sub edx, ecx
mov ecx, dword [edx + 0x10]
mov eax, dword [edx + 0x14]
mov edx, dword [esp]
cmp edx, ecx
mov ebx, edx
mov edx, edi
sbb edx, eax
cmovge eax, edi
cmovge ecx, ebx
add ebx, 0x7a120
mov edx, ecx
mov dword [esp + 4], ecx
mov ecx, edi
adc ecx, 0
cmp edx, ebx
mov edx, eax
sbb edx, ecx
cmovl ecx, eax
cmovl ebx, dword [esp + 4]
cmp byte [ebp + 0xc], 0
mov dword [esp + 4], ebx
mov dword [esp + 0x10], ecx
je 0x410eb8
sub ebx, dword [esp]
sbb ecx, edi
add ebx, 0x270f
adc ecx, 0
push 0
push 0x2710
push ecx
push ebx
call fcn.00521608
add esp, 0x10
cmp dword [esi + 0x9c], 0
jne 0x410ec3
jmp 0x410ef1
xor eax, eax
cmp dword [esi + 0x9c], 0
je 0x410ef1
xor ebx, ebx
movzx eax, ax
mov dword [esp], eax
xor edi, edi
nop dword [eax]
mov eax, dword [esi + 0xa0]
lea ecx, [eax + ebx]
push dword [esp]
push esi
push ecx
call dword [eax + ebx + 0x30]
add esp, 0xc
inc edi
add ebx, 0x3c
cmp edi, dword [esi + 0x9c]
jb 0x410ed0
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
fild qword [esp + 0x30]
fstp qword [esp + 0x40]
movsd xmm0, qword [0x5231f0]
divsd xmm0, qword [esp + 0x40]
fild qword [esp + 0x28]
fstp qword [esp + 0x48]
mulsd xmm0, qword [esp + 0x48]
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fnstcw word [esp + 0xc]
movzx eax, word [esp + 0xc]
or eax, 0xc00
mov word [esp + 0x14], ax
fldcw word [esp + 0x14]
fistp qword [esp + 0x18]
fldcw word [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 4]
cmp ecx, esi
mov edx, eax
mov edi, dword [esp + 0x10]
sbb edx, edi
jge 0x410f83
sub esi, ecx
sbb edi, eax
push 0
push 0x2710
push edi
push esi
call fcn.00521608
add esp, 0x10
jmp 0x410f85
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret