Function at 0x437107
Capabilities:
Check for time delay via queryperformancecounter
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xfc
mov eax, dword [0x735064]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0xbc], 0x499602d2
xorps xmm0, xmm0
mov dword [ebp - 0xe4], edi
movlpd qword [ebp - 0xb8], xmm0
movlpd qword [ebp - 0x98], xmm0
test byte [edi + 0x75c], 0x80
movlpd qword [ebp - 0xb0], xmm0
movlpd qword [ebp - 0xd8], xmm0
jne 0x437b02
lea eax, [ebp - 0x88]
mov dword [ebp - 0x9c], 8
push eax
lea eax, [ebp - 0x8c]
push eax
push 0xce
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x43719a
mov eax, dword [ebp - 0x8c]
shr eax, 8
movzx eax, al
mov dword [ebp - 0x9c], eax
lea eax, [ebp - 0x88]
xor ebx, ebx
push eax
lea eax, [ebp - 0x8c]
mov dword [ebp - 0xe0], ebx
push eax
push 0x1a0
call fcn.004328a3
xor esi, esi
add esp, 0xc
inc esi
test eax, eax
je 0x4371d6
test byte [ebp - 0x88], 0x40
mov eax, ebx
cmovne eax, esi
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0x88]
mov dword [ebp - 0xa0], 0xff
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x64c
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x437233
mov eax, dword [ebp - 0x8c]
test eax, eax
js 0x437233
push dword [ebp - 0x88]
movzx ecx, al
and eax, 0xffffff01
or eax, esi
mov dword [ebp - 0xa0], ecx
push eax
push 0x64c
mov dword [ebp - 0x8c], eax
call fcn.0043a6f5
add esp, 0xc
push 0x80
lea eax, [ebp - 0x84]
push ebx
push eax
call fcn.00624a40
add esp, 0xc
mov dword [ebp - 0xc0], ebx
cmp dword [edi + 0x7b0], ebx
je 0x4372aa
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x772
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x4372aa
mov eax, dword [ebp - 0x8c]
push dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x9c]
shl eax, 8
or eax, dword [ebp - 0x9c]
push eax
push 0x772
mov dword [ebp - 0xc0], esi
call fcn.0043a6f5
add esp, 0xc
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0xcc], 7
mov ecx, dword [ebp - 0x90]
mov eax, esi
shl eax, cl
test dword [edi + 8], eax
je 0x437415
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
test eax, eax
je 0x437415
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x38f
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x43731e
mov eax, dword [ebp - 0x88]
or eax, 7
push eax
mov eax, dword [ebp - 0x8c]
or eax, 3
push eax
push 0x38f
call fcn.0043a6f5
add esp, 0xc
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x38d
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x437361
mov eax, dword [ebp - 0x8c]
push dword [ebp - 0x88]
and eax, 0xfffffbbf
or eax, 0x330
push eax
push 0x38d
call fcn.0043a6f5
add esp, 0xc
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x19a
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x43739d
push dword [ebp - 0x88]
mov eax, dword [ebp - 0x8c]
and eax, 0xffffffef
push eax
push 0x19a
call fcn.0043a6f5
add esp, 0xc
cmp dword [edi + 0x7b0], ebx
je 0x437415
cmp dword [ebp - 0xc0], ebx
jne 0x437415
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x774
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x437415
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x88]
and ecx, 0xfffffbff
mov dword [ebp + edx*4 - 0x84], eax
mov eax, dword [ebp - 0x9c]
shl eax, 8
or eax, dword [ebp - 0x9c]
push ecx
push eax
push 0x774
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x8c], eax
call fcn.0043a6f5
add esp, 0xc
mov eax, dword [ebp - 0x90]
inc eax
mov dword [ebp - 0x90], eax
cmp eax, 0x20
jb 0x4372ba
push dword [edi + 8]
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
push ebx
push ebx
xorps xmm0, xmm0
mov dword [0x73bd00], ebx
push 0xfffffffffffffffe
push 0x73bcc0
push 0x433173
mov dword [0x73bcfc], esi
mov dword [0x73bcf8], ebx
mov dword [0x73bce8], ebx
movlpd qword [0x73bcd8], xmm0
movlpd qword [0x73bce0], xmm0
movlpd qword [0x73bcc8], xmm0
movlpd qword [0x73bcd0], xmm0
movsd qword [0x73bcf0], xmm0
mov dword [0x73bcc0], ebx
mov dword [0x73bcc4], 0x30
mov dword [0x73bd04], esi
mov dword [0x73bd08], esi
call fcn.00469326
mov eax, dword [edi + 8]
lea edx, [edi + 0x20]
xorps xmm0, xmm0
mov dword [ebp - 0xc8], ebx
movlpd qword [ebp - 0xf4], xmm0
mov ecx, ebx
movlpd qword [ebp - 0xfc], xmm0
mov edi, ebx
movlpd qword [ebp - 0xec], xmm0
movlpd qword [ebp - 0xa8], xmm0
movsd xmm0, qword [0x6a5bf8]
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0x90], eax
mov eax, esi
shl eax, cl
push 0
pop ebx
test dword [ebp - 0x90], eax
je 0x437518
comisd xmm0, xmmword [edx]
jbe 0x437518
movsd xmm0, qword [edx]
mov edi, ecx
inc ecx
add edx, 8
cmp ecx, 0x20
jb 0x4374fd
mov ecx, edi
mov eax, esi
mov edi, dword [ebp - 0xe4]
shl eax, cl
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, esi
mov dword [ebp - 0x90], ecx
mov eax, dword [ebp - 0xbc]
xor edx, edx
div dword [ebp - 0xcc]
mov dword [ebp - 0xbc], eax
movzx eax, cx
cmp eax, esi
jne 0x4375aa
cmp dword [edi + 0x7a8], ebx
je 0x4375aa
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x1a0
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x4375a4
mov eax, dword [ebp - 0x88]
or eax, 0x40
push eax
push dword [ebp - 0x8c]
push 0x1a0
call fcn.0043a6f5
add esp, 0xc
mov ecx, dword [ebp - 0x90]
test ecx, 0xfff
jne 0x4375f8
cmp dword [ebp - 0xdc], 0
je 0x4375f8
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x198
call fcn.004328a3
mov ecx, dword [ebp - 0x90]
add esp, 0xc
test eax, eax
je 0x4375f8
mov eax, dword [ebp - 0x8c]
inc dword [ebp - 0xc8]
shr eax, 8
movzx eax, al
add dword [ebp - 0xc4], eax
cmp ecx, 0x100000
jne 0x43765c
push ebx
mov dword [ebp - 0xdc], esi
call dword [sym.imp.KERNEL32.dll_Sleep]
rdtsc
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
lea eax, [ebp - 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [0x73bbd0]
lea eax, [ebp - 0xf4]
push eax
push 0x30a
call fcn.0041c1fa
mov ecx, dword [0x73bbd0]
lea eax, [ebp - 0xec]
push eax
push 0x30b
call fcn.0041c1fa
mov ecx, dword [ebp - 0x90]
inc ecx
mov dword [ebp - 0x90], ecx
cmp ecx, 0x2500000
jbe 0x437545
cmp dword [ebp - 0xbc], 0
jne 0x4376ce
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
rdtsc
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
lea eax, [ebp - 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [0x73bbd0]
lea eax, [ebp - 0xfc]
push eax
push 0x30a
call fcn.0041c1fa
mov ecx, dword [0x73bbd0]
lea eax, [ebp - 0xa8]
push eax
push 0x30b
call fcn.0041c1fa
mov dword [0x73bcfc], ebx
cmp dword [edi + 0x7b0], ebx
je 0x4377a4
cmp dword [ebp - 0xc0], 0
je 0x437721
lea eax, [ebp - 0x88]
mov esi, 0x772
push eax
lea eax, [ebp - 0x8c]
push eax
push esi
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x4377a4
push dword [ebp - 0x88]
push dword [ebp - 0x84]
push esi
call fcn.0043a6f5
add esp, 0xc
jmp 0x4377a4
mov eax, ebx
mov dword [ebp - 0x90], ebx
mov edx, esi
mov ecx, eax
shl edx, cl
test dword [edi + 8], edx
je 0x437786
push edx
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
test eax, eax
je 0x437780
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x774
call fcn.004328a3
add esp, 0xc
test eax, eax
mov eax, dword [ebp - 0x90]
je 0x437786
push dword [ebp - 0x88]
push dword [ebp + eax*4 - 0x84]
push 0x774
call fcn.0043a6f5
add esp, 0xc
mov eax, dword [ebp - 0x90]
inc eax
mov dword [ebp - 0x90], eax
cmp eax, 0x20
jb 0x437729
push dword [edi + 8]
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x88]
mov esi, 0x1a0
push eax
lea eax, [ebp - 0x8c]
push eax
push esi
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x4377e6
cmp dword [ebp - 0xe0], 0
jne 0x4377e6
mov eax, dword [ebp - 0x88]
and eax, 0xffffffbf
push eax
push dword [ebp - 0x8c]
push esi
call fcn.0043a6f5
add esp, 0xc
mov esi, dword [ebp - 0xa0]
cmp esi, 0xff
je 0x43783e
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x64c
call fcn.004328a3
add esp, 0xc
test eax, eax
je 0x43783e
mov eax, dword [ebp - 0x8c]
test eax, eax
js 0x43783e
push dword [ebp - 0x88]
and eax, 0xffffff00
or eax, esi
push eax
push 0x64c
mov dword [ebp - 0x8c], eax
call fcn.0043a6f5
add esp, 0xc
mov ecx, dword [0x73bbd0]
xorps xmm0, xmm0
push reloc.OLEAUT32.dll_SysFreeString
push ebx
mov esi, 0x150
movsd qword [ebp - 0xd0], xmm0
push esi
call fcn.0041c7b3
test eax, eax
je 0x4378ba
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
push esi
call fcn.004328a3
add esp, 0xc
test dword [ebp - 0x88], 0x80000000
jne 0x437864
test byte [ebp - 0x88], 0x1f
jne 0x4378ba
mov eax, dword [ebp - 0x8c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6a0b40]
divsd xmm0, qword [0x6a5bf8]
movsd qword [ebp - 0xd0], xmm0
mov ecx, dword [ebp - 0xd8]
sub ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0xd4]
sbb edx, dword [ebp - 0x94]
call fcn.00621060
mov edx, dword [edi + 0x724]
mov ecx, dword [edi + 0x720]
movsd qword [ebp - 0x98], xmm0
call fcn.00621060
movsd xmm1, qword [ebp - 0x98]
divsd xmm1, xmm0
mov ecx, dword [ebp - 0xb0]
sub ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xac]
sbb edx, dword [ebp - 0xb4]
movsd qword [ebp - 0x98], xmm1
call fcn.00621060
movaps xmm2, xmm0
movsd xmm0, qword [ebp - 0x98]
movaps xmm1, xmm0
mulsd xmm1, qword [0x6a0b30]
divsd xmm2, xmm1
xorps xmm1, xmm1
comisd xmm0, xmm1
movsd qword [ebp - 0x98], xmm2
jbe 0x437a92
mov ebx, dword [ebp - 0xf8]
cmp ebx, dword [ebp - 0xf0]
jb 0x437a92
mov esi, dword [ebp - 0xfc]
ja 0x437976
cmp esi, dword [ebp - 0xf4]
jbe 0x437a92
mov edx, dword [ebp - 0xa4]
cmp edx, dword [ebp - 0xe8]
jb 0x437a92
mov ecx, dword [ebp - 0xa8]
ja 0x43799c
cmp ecx, dword [ebp - 0xec]
jbe 0x437a92
test dword [edi + 0x75c], 0x800
movsd xmm0, qword [0x6a5b98]
movsd qword [edi + 0x7a0], xmm0
movaps xmm3, xmm0
je 0x437a6e
sub ecx, dword [ebp - 0xec]
sbb edx, dword [ebp - 0xe8]
call fcn.00621060
sub esi, dword [ebp - 0xf4]
mov ecx, esi
movsd qword [ebp - 0xa8], xmm0
sbb ebx, dword [ebp - 0xf0]
mov edx, ebx
call fcn.00621060
mov eax, dword [ebp - 0xc4]
movsd xmm3, qword [ebp - 0xa8]
divsd xmm3, xmm0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
shr eax, 0x1f
movsd xmm2, qword [ebp - 0x98]
addsd xmm1, qword [eax*8 + 0x6a0b40]
mov eax, dword [ebp - 0xc8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6a0b40]
mov eax, dword [ebp - 0x9c]
divsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x6a0b40]
divsd xmm1, xmm0
movsd xmm0, qword [0x6a5b98]
mulsd xmm3, xmm1
xorps xmm1, xmm1
movsd qword [edi + 0x7a0], xmm3
mulsd xmm3, qword [edi + 0x18]
divsd xmm2, xmm3
comisd xmm0, xmm2
movsd qword [ebp - 0x98], xmm2
movsd qword [edi + 0x730], xmm2
ja 0x437a9a
movaps xmm1, xmm2
jmp 0x437acd
movsd xmm0, qword [0x6a5b98]
movsd qword [edi + 0x7a0], xmm0
movsd xmm0, qword [ebp - 0xd0]
comisd xmm0, xmm1
jbe 0x437abd
movaps xmm1, xmm0
movsd qword [edi + 0x730], xmm0
jmp 0x437acd
movsd xmm1, qword [0x6a5bd8]
movsd qword [edi + 0x730], xmm1
comisd xmm1, xmmword [0x6a5be0]
jbe 0x437cd5
movsd xmm0, qword [0x6a5be8]
comisd xmm0, xmm1
jbe 0x437cd5
movsd xmm0, qword [0x6a0b28]
movsd qword [edi + 0x730], xmm0
jmp 0x437cd5
xor ebx, ebx
movlpd qword [0x73bcd8], xmm0
push ebx
push ebx
push ebx
push 0xfffffffffffffffe
xor esi, esi
mov dword [0x73bd00], ebx
inc esi
mov dword [0x73bcf8], ebx
push 0x73bcc0
push 0x433173
mov dword [0x73bcfc], esi
mov dword [0x73bce8], ebx
movlpd qword [0x73bce0], xmm0
movlpd qword [0x73bcc8], xmm0
movlpd qword [0x73bcd0], xmm0
movsd qword [0x73bcf0], xmm0
mov dword [0x73bcc0], ebx
mov dword [0x73bcc4], 0x30
mov dword [0x73bd04], esi
call fcn.00469326
movsd xmm0, qword [0x6a5bf8]
lea edx, [edi + 0x20]
mov edi, dword [edi + 8]
mov ecx, ebx
mov eax, esi
shl eax, cl
test edi, eax
je 0x437b95
comisd xmm0, xmmword [edx]
jbe 0x437b95
movsd xmm0, qword [edx]
mov ebx, ecx
inc ecx
add edx, 8
cmp ecx, 0x10
jb 0x437b81
mov edi, dword [ebp - 0xe4]
mov ecx, ebx
shl esi, cl
push esi
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
xor ebx, ebx
push ebx
call esi
lea eax, [ebp - 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
rdtsc
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
push 0x7d
call esi
push 7
mov dword [0x73bcfc], ebx
mov ecx, 0x200001
pop ebx
mov eax, 0x499602d2
xor edx, edx
div ebx
sub ecx, 1
jne 0x437bee
test eax, eax
jne 0x437c16
lea eax, [ebp - 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
rdtsc
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
push dword [edi + 8]
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
mov ecx, dword [ebp - 0xb0]
sub ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xac]
sbb edx, dword [ebp - 0xb4]
call fcn.00621060
mov edx, dword [edi + 0x724]
mov ecx, dword [edi + 0x720]
movsd qword [ebp - 0xa8], xmm0
call fcn.00621060
movsd xmm1, qword [ebp - 0xa8]
mov ecx, dword [ebp - 0xd8]
sub ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0xd4]
sbb edx, dword [ebp - 0x94]
mulsd xmm1, xmm0
movsd qword [ebp - 0xa8], xmm1
call fcn.00621060
movsd xmm1, qword [edi + 0x738]
mulsd xmm1, qword [0x6a0b30]
mulsd xmm0, xmm1
movsd xmm1, qword [ebp - 0xa8]
divsd xmm1, xmm0
movsd qword [edi + 0x730], xmm1
mulsd xmm1, qword [edi + 0x18]
mulsd xmm1, qword [0x6a5c00]
movsd qword [edi + 0x740], xmm1
mulsd xmm1, qword [0x6a0b28]
movsd qword [edi + 0x748], xmm1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00620b15
leave
ret