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

Disassembly:
mov eax, dword [0x4d5c10]
mov edx, dword [0x4d5c14]
sub esp, 0x74
and eax, edx
cmp eax, 0xffffffff
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push esi
push edi
jne 0x46c69a
call fcn.0046b1e0
test al, al
je 0x46c673
xor esi, esi
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
call fcn.0046b290
neg al
sbb eax, eax
lea ecx, [esp + 0x18]
neg eax
mov dword [esp + 0x14], eax
lea edx, [esp + 0x20]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAdjustment]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
cmp eax, esi
je 0x46c366
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov dword [0x4d5c28], ecx
lea ecx, [esp + 0x64]
xor eax, eax
push ecx
mov dword [0x4d5c2c], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push esi
push 0x14
push ecx
push eax
mov dword [0x4d5c20], eax
mov dword [0x4d5c24], ecx
call fcn.0047a710
push esi
push 0xf4240
push edx
push eax
call fcn.0047a660
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
lea edx, [esp + 0x34]
xor edi, edi
push edx
xor ebx, ebx
call ebp
lea eax, [esp + 0x4c]
push eax
call ebp
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x34]
cmp ecx, eax
jne 0x46c3ed
lea edx, [esp + 0x4c]
push edx
call ebp
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
je 0x46c3da
lea ecx, [esp + 0x34]
push ecx
call ebp
lea edx, [esp + 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
xor edx, edx
xor esi, esi
or eax, edx
or esi, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
call ebp
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
xor eax, eax
xor ebp, ebp
or eax, edx
or ecx, ebp
cmp esi, eax
jne 0x46c4a5
mov ebp, dword [esp + 0x58]
cmp ebp, ecx
jne 0x46c4a9
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x40]
mov edi, eax
mov dword [esp + 0x3c], eax
sub edi, ebx
lea eax, [esp + 0x34]
mov ebx, ecx
push eax
sbb ebx, edx
mov dword [esp + 0x44], ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
lea ecx, [esp + 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
xor eax, eax
xor ebp, ebp
or eax, edx
or ecx, ebp
cmp esi, eax
jne 0x46c4a5
mov ebp, dword [esp + 0x58]
cmp ebp, ecx
je 0x46c451
jmp 0x46c4a9
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x14]
test edx, edx
mov edx, eax
je 0x46c588
sub edx, esi
mov esi, ecx
sbb esi, ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x10]
sub esi, ebp
xor ebp, ebp
cmp esi, edx
jne 0x46c4d7
cmp ebp, dword [esp + 0x60]
je 0x46c4fd
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
add esi, ebp
xor ebp, ebp
cmp esi, edx
jne 0x46c4ed
cmp ebp, dword [esp + 0x60]
je 0x46c4fd
cmp dword [esp + 0x10], edx
jne 0x46c531
mov esi, dword [esp + 0x60]
xor edx, edx
cmp edx, esi
jne 0x46c531
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
sub ebp, esi
mov esi, dword [esp + 0x30]
sbb esi, edx
mov edx, dword [esp + 0x28]
add ebp, edi
adc esi, ebx
cmp esi, edx
jl 0x46c62d
mov esi, dword [esp + 0x24]
jg 0x46c539
cmp ebp, esi
jbe 0x46c62d
jmp 0x46c539
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov eax, esi
mov ebx, edx
sub eax, ecx
sbb ebx, edi
mov dword [esp + 0x80], ebx
js 0x46c55f
jg 0x46c559
cmp eax, 0xa
jbe 0x46c55f
add esi, 3
adc edx, 0
mov eax, esi
sub eax, ecx
mov ecx, edx
sbb ecx, edi
mov dword [esp + 0x80], ecx
js 0x46c614
jg 0x46c60e
cmp eax, 0x64
jbe 0x46c614
jmp 0x46c60e
sub edx, esi
mov esi, ecx
sbb esi, ebp
mov ebp, dword [esp + 0x10]
cmp ebp, edx
jne 0x46c5c8
xor edx, edx
cmp edx, esi
jne 0x46c5c8
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
sub ebp, esi
mov esi, dword [esp + 0x30]
sbb esi, edx
mov edx, dword [esp + 0x28]
add ebp, edi
adc esi, ebx
cmp esi, edx
jl 0x46c62d
mov esi, dword [esp + 0x24]
jg 0x46c5d0
cmp ebp, esi
jbe 0x46c62d
jmp 0x46c5d0
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov eax, esi
mov ebx, edx
sub eax, ecx
sbb ebx, edi
mov dword [esp + 0x80], ebx
js 0x46c5f6
jg 0x46c5f0
cmp eax, 0xa
jbe 0x46c5f6
add esi, 3
adc edx, 0
mov eax, esi
sub eax, ecx
mov ecx, edx
sbb ecx, edi
mov dword [esp + 0x80], ecx
js 0x46c614
jg 0x46c60e
cmp eax, 0x64
jbe 0x46c614
add esi, 0xa
adc edx, 0
mov ebp, dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
add esi, 1
adc edx, 0
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edx
jmp 0x46c3bc
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x40]
mov dword [0x4d5c18], eax
mov eax, dword [esp + 0x3c]
mov edx, esi
sub edx, eax
mov eax, edi
sbb eax, ebp
push 0
push 2
push eax
push edx
mov dword [0x4d5c1c], ecx
call fcn.0047a660
mov ebp, dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
sub esi, eax
sbb edi, edx
mov dword [0x4d5c10], esi
mov dword [0x4d5c14], edi
jmp 0x46c69a
mov ecx, dword [0x4d5c10]
mov edx, dword [0x4d5c14]
and ecx, edx
cmp ecx, 0xffffffff
jne 0x46c69a
mov dword [0x4d5c10], 0x3b9aca00
mov dword [0x4d5c14], 0
lea edx, [esp + 0x74]
push edx
call ebp
lea eax, [esp + 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x70]
mov ebx, dword [0x4d5c14]
mov ecx, dword [esp + 0x6c]
cmp eax, ebx
jg 0x46c6e2
jl 0x46c6c8
cmp ecx, dword [0x4d5c10]
jae 0x46c6e2
or eax, 0xffffffff
mov dword [0x4d5c10], eax
mov dword [0x4d5c14], eax
call fcn.0046c2f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x78]
xor edi, edi
xor ebp, ebp
or edi, edx
mov edx, dword [0x4d5c10]
or esi, ebp
sub ecx, edx
sbb eax, ebx
push ebp
push 0x989680
push eax
push ecx
call fcn.0047a710
mov ecx, dword [0x4d5c24]
push ecx
mov ecx, dword [0x4d5c20]
push ecx
push edx
push eax
call fcn.0047a660
mov ecx, dword [0x4d5c18]
mov ebp, dword [0x4d5c1c]
add eax, ecx
adc edx, ebp
cmp edx, esi
jg 0x46c763
jl 0x46c738
cmp eax, edi
jae 0x46c763
sub eax, edi
push 0
sbb edx, esi
push 4
push edx
push eax
call fcn.0047a660
mov ecx, dword [0x4d5c10]
add ecx, eax
mov eax, edi
adc ebx, edx
mov dword [0x4d5c10], ecx
mov dword [0x4d5c14], ebx
mov edx, esi
jmp 0x46c7b6
mov ecx, dword [0x4d5c28]
mov ebx, dword [0x4d5c2c]
mov ebp, ecx
add ebp, edi
adc ebx, esi
cmp edx, ebx
jl 0x46c7b6
jg 0x46c77f
cmp eax, ebp
jbe 0x46c7b6
sub eax, ecx
mov ecx, dword [0x4d5c2c]
sbb edx, ecx
sub eax, edi
sbb edx, esi
push 0
push 4
push edx
push eax
call fcn.0047a660
mov ecx, dword [0x4d5c10]
add ecx, eax
mov eax, dword [0x4d5c14]
adc eax, edx
mov dword [0x4d5c10], ecx
mov dword [0x4d5c14], eax
mov eax, ebp
mov edx, ebx
push 0
push 0x2710
push edx
push eax
call fcn.0047a660
pop edi
sub eax, 0x30b66800
pop esi
pop ebp
sbb edx, 0xa97
pop ebx
add esp, 0x74
ret