Function at 0x4ad990
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
mov ebx, ecx
push esi
push edi
test ebx, ebx
jne 0x4ad9ab
mov edi, 0xc000000d
jmp 0x4adbc5
mov eax, dword [ebx + 0x484dc]
mov edi, 0xc00000b5
add eax, 0x20
mov dword [ebp - 0xc], edi
push eax
call dword [0x50afe4]
test eax, eax
jns 0x4adbba
mov eax, dword [ebx + 0x48608]
mov edx, dword [ebx + 0x48604]
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
add eax, eax
lea esi, [ebx + eax*8]
mov ecx, dword [esi + 0xc]
mov eax, ecx
and eax, 1
mov dword [ebp - 0x18], esi
cmp eax, edx
jne 0x4adb64
xor edi, edi
and ecx, 0xfc00
mov dword [ebp - 0xc], edi
cmp ecx, 0x8000
je 0x4ada59
mov esi, dword [0x50af68]
inc esi
mov dword [0x50af68], esi
cmp dword [0x50aff8], edi
je 0x4adb41
cmp dword [0x50ae48], edi
je 0x4adb41
mov ecx, dword [0x50aff4]
rdtsc
sub eax, ecx
add ecx, eax
mov dword [0x50aff4], ecx
mov ecx, dword [0x50b000]
cmp ecx, 1
jbe 0x4ada4e
xor edx, edx
div ecx
push esi
push 0x52f
jmp 0x4adb2b
mov edi, dword [ebx + 0x486e4]
mov ecx, dword [esi + 4]
cmp ecx, edi
mov eax, dword [ebx + 0x486e0]
mov edx, dword [esi]
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], eax
jb 0x4adae7
ja 0x4ada80
cmp edx, eax
jb 0x4adae7
mov ecx, dword [ebx + 0x486e8]
xor eax, eax
add ecx, dword [ebp - 0x10]
adc eax, dword [ebp - 0x14]
cmp dword [ebp - 0x18], eax
ja 0x4adae7
jb 0x4ada99
cmp edx, ecx
jae 0x4adae7
sub edx, dword [ebx + 0x486e0]
add edx, ebx
mov eax, dword [edx + 8]
mov ecx, eax
and ecx, 0x1ffff
sub ecx, dword [esi + 8]
xor ecx, eax
and ecx, 0xffffff
xor ecx, eax
mov eax, dword [edx + 0xc]
mov dword [edx + 8], ecx
mov cl, byte [esi + 0xb]
mov byte [edx + 0xb], cl
xor eax, dword [esi + 0xc]
and eax, 0xfc00
xor dword [edx + 0xc], eax
cmp cl, 0xd
jne 0x4adadf
inc dword [0x50af34]
mov byte [edx + 0xb], 1
inc dword [0x50af2c]
jmp 0x4adb3e
mov esi, dword [0x50af4c]
inc esi
mov dword [0x50af4c], esi
cmp dword [0x50aff8], edi
je 0x4adb3e
cmp dword [0x50ae48], edi
je 0x4adb3e
mov ecx, dword [0x50aff4]
rdtsc
sub eax, ecx
add ecx, eax
mov dword [0x50aff4], ecx
mov ecx, dword [0x50b000]
cmp ecx, 1
jbe 0x4adb25
xor edx, edx
div ecx
push esi
push 0x53e
push 0x4c84a0
push eax
push 0x4c7d32
call fcn.004ac34c
add esp, 0x14
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
inc eax
and eax, 0x3ff
mov dword [ebp - 8], eax
jne 0x4ad9dd
xor eax, eax
test edx, edx
sete al
mov edx, eax
mov eax, dword [ebp - 8]
jmp 0x4ad9da
mov eax, dword [ebx + 0x484dc]
add eax, 0x20
push eax
call dword [0x50afe4]
mov esi, eax
test edi, edi
js 0x4adbb6
mov eax, dword [ebp - 8]
push dword [ebp - 0x18]
mov dword [ebx + 0x48608], eax
mov eax, dword [ebp - 4]
mov dword [ebx + 0x48604], eax
call dword [0x50afbc]
mov ebx, dword [ebx + 0x484dc]
mov edi, edx
push eax
add ebx, 0x18
push ebx
call dword [0x50aff0]
push edi
lea eax, [ebx + 4]
push eax
call dword [0x50aff0]
mov edi, dword [ebp - 0xc]
test esi, esi
js 0x4adbc5
inc dword [0x50af50]
mov edi, 0xc000020d
cmp dword [0x50aff8], 0
je 0x4adc11
cmp dword [0x50ae48], 0
je 0x4adc11
mov ecx, dword [0x50aff4]
rdtsc
sub eax, ecx
add ecx, eax
mov dword [0x50aff4], ecx
mov ecx, dword [0x50b000]
cmp ecx, 1
jbe 0x4adbf8
xor edx, edx
div ecx
push edi
push 0x56e
push 0x4c84a0
push eax
push 0x4c7d32
call fcn.004ac34c
add esp, 0x14
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret