Function at 0x40cf58
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa8
push ebx
push esi
mov esi, eax
push edi
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
cmp byte [0x41c001], 0
je 0x40cfdf
mov ecx, dword [0x42095c]
or ecx, dword [0x420958]
jne 0x40cfa1
hlt
lea edx, [esp + 0x5c]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x40cfc1
hlt
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
cmp byte [esi + 0x21], 0
je 0x40cfea
call fcn.0040b754
mov byte [esi + 0x21], 1
call fcn.0040e5d8
mov eax, esi
call fcn.0040c8f0
cmp byte [0x41c001], 0
je 0x40d141
mov ebx, dword [0x42095c]
or ebx, dword [0x420958]
jne 0x40d016
hlt
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x40d036
hlt
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
sub ebx, dword [esp + 0x9c]
sbb ecx, dword [esp + 0xa0]
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x94], eax
mov dword [esp + 0x84], ebx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
push esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push edi
call fcn.00411196
mov edx, ecx
mov eax, ebx
pop edi
imul edi, edx, 0x989680
mov edx, 0x989680
mul edx
add edx, edi
pop esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push esi
push edi
call fcn.00411196
pop edi
pop esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push eax
push edx
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
push esi
push edi
call fcn.00411196
pop edi
imul edi, edx, 0x989680
mov edx, 0x989680
mul edx
add edx, edi
mov ecx, edx
pop esi
mov ebx, eax
pop edx
pop eax
add eax, ebx
adc edx, ecx
push edx
push eax
lea eax, [esp + 0x5c]
call fcn.0040e1c8
mov edx, dword [eax + 4]
mov eax, dword [eax]
add dword [0x4207c0], eax
mov eax, dword [esp + 0x94]
adc dword [0x4207c4], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
push dword [esp + 0xb8]
mov eax, esi
call fcn.0040c9d8
mov edi, esi
mov ecx, 0x40d65c
mov dword [esp + 0xa4], edi
mov ebx, dword [0x420934]
mov dword [esp + 0xa8], ecx
cmp dword [0x420934], 0
je 0x40d195
mov edx, dword [ebx + 0x4c]
test edx, edx
je 0x40d18e
push edx
push dword [esp + 0xac]
push dword [esp + 0xac]
call fcn.0040ea1c
mov ebx, dword [ebx + 0x74]
test ebx, ebx
jne 0x40d173
call fcn.0040e4c8
cmp byte [0x41c001], 0
je 0x40d3dc
mov ebx, dword [0x42095c]
or ebx, dword [0x420958]
jne 0x40d1b6
hlt
lea eax, [esp + 0xc]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x40d1d6
hlt
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
sub ebx, dword [esp + 0x9c]
sbb ecx, dword [esp + 0xa0]
mov dword [esp + 0x80], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x94], eax
mov dword [esp + 0x7c], ebx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
push esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push edi
call fcn.00411196
mov edx, ecx
mov eax, ebx
pop edi
imul edi, edx, 0x989680
mov edx, 0x989680
mul edx
add edx, edi
pop esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push esi
push edi
call fcn.00411196
pop edi
pop esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push eax
push edx
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
push esi
push edi
call fcn.00411196
pop edi
imul edi, edx, 0x989680
mov edx, 0x989680
mul edx
add edx, edi
mov ecx, edx
pop esi
mov ebx, eax
pop edx
pop eax
add eax, ebx
adc edx, ecx
push edx
push eax
lea eax, [esp + 0x44]
call fcn.0040e1c8
mov edx, dword [eax + 4]
mov eax, dword [eax]
add dword [0x4207c8], eax
mov eax, dword [esp + 0x94]
adc dword [0x4207cc], edx
mov edx, dword [esp + 0x98]
sub eax, dword [esp + 0x74]
sbb edx, dword [esp + 0x78]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
push esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push edi
call fcn.00411196
mov edx, ecx
mov eax, ebx
pop edi
imul edi, edx, 0x989680
mov edx, 0x989680
mul edx
add edx, edi
pop esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push esi
push edi
call fcn.00411196
pop edi
pop esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push eax
push edx
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
push esi
push edi
call fcn.00411196
pop edi
imul edi, edx, 0x989680
mov edx, 0x989680
mul edx
add edx, edi
mov ecx, edx
pop esi
mov ebx, eax
pop edx
pop eax
add eax, ebx
adc edx, ecx
push edx
push eax
lea eax, [esp + 0x3c]
call fcn.0040e1c8
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
push dword [0x4207e4]
push dword [0x4207e0]
lea eax, [esp + 0x4c]
call fcn.0040e0e0
test eax, eax
jle 0x40d3c0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov dword [0x4207e0], eax
mov dword [0x4207e4], edx
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
mov eax, esi
call fcn.0040ca80
mov dword [esp + 0xac], eax
cmp byte [0x41c001], 0
je 0x40d51f
mov ecx, dword [0x42095c]
or ecx, dword [0x420958]
jne 0x40d406
hlt
lea ebx, [esp + 0x2c]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
push ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x40d426
hlt
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
sub ebx, dword [esp + 0x9c]
sbb ecx, dword [esp + 0xa0]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x94], eax
mov dword [esp + 0x64], ebx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
push esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push edi
call fcn.00411196
mov edx, ecx
mov eax, ebx
pop edi
imul edi, edx, 0x989680
mov edx, 0x989680
mul edx
add edx, edi
pop esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push esi
push edi
call fcn.00411196
pop edi
pop esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push eax
mov eax, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x70]
push esi
push edi
call fcn.00411196
pop edi
imul edi, edx, 0x989680
mov edx, 0x989680
mul edx
add edx, edi
mov ecx, edx
pop esi
mov ebx, eax
pop edx
pop eax
add eax, ebx
adc edx, ecx
push edx
push eax
lea eax, [esp + 0x2c]
call fcn.0040e1c8
mov edx, dword [eax + 4]
mov eax, dword [eax]
add dword [0x4207d0], eax
mov eax, dword [esp + 0x94]
adc dword [0x4207d4], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
mov eax, esi
call fcn.0040cda0
mov dword [esp + 0xb0], eax
cmp byte [0x41c001], 0
je 0x40d636
mov ecx, dword [0x42095c]
or ecx, dword [0x420958]
jne 0x40d549
hlt
lea ebx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
push ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x40d569
hlt
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
sub eax, dword [esp + 0x9c]
sbb edx, dword [esp + 0xa0]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
push esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push edi
call fcn.00411196
mov edx, ecx
mov eax, ebx
pop edi
imul edi, edx, 0x989680
mov edx, 0x989680
mul edx
add edx, edi
pop esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push esi
push edi
call fcn.00411196
pop edi
pop esi
mov ecx, dword [0x42095c]
mov ebx, dword [0x420958]
push eax
mov eax, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x78]
push esi
push edi
call fcn.00411196
pop edi
imul edi, edx, 0x989680
mov edx, 0x989680
mul edx
add edx, edi
mov ecx, edx
pop esi
mov ebx, eax
pop edx
pop eax
add eax, ebx
adc edx, ecx
push edx
push eax
lea eax, [esp + 0x1c]
call fcn.0040e1c8
mov edx, dword [eax + 4]
mov eax, dword [eax]
add dword [0x4207d8], eax
adc dword [0x4207dc], edx
inc dword [0x4207e8]
mov byte [esi + 0x21], 0
mov eax, esi
call fcn.0040b800
mov eax, dword [esp + 0xac]
add eax, dword [esp + 0xb0]
pop edi
pop esi
pop ebx
add esp, 0xa8
ret 4