Function at 0x40e506
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov edx, 0x48
xor edx, 0x43
mov dword [ebp - 0x58], edx
push ebx
mov dword [ebp - 4], edx
push esi
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x58], ebx
push edi
cmp ebx, edx
jne 0x40e596
add ebx, 0x23700800
cmp ebx, dword [ebp - 4]
jne 0x40e596
mov ecx, edx
add ebx, edx
cmp ebx, 0x1c05
je 0x40e596
mov edi, 0xe9
sub ebx, 0x8b402500
mov dword [ebp - 0x58], edi
cmp ebx, dword [ebp - 0x20]
je 0x40e596
mov dword [ebp - 0x58], ebx
mov edi, 0x2c6d
test ebx, 0x39
jne 0x40e591
sub ecx, ebx
test ecx, 0x9c
je 0x40e591
mov esi, dword [0x41555c]
mov dword [ebp - 4], esi
cmp ecx, 0x3c
jne 0x40e591
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x1c], ecx
cmp ebx, 0x73
je 0x40e591
test ebx, 0xfe
je 0x40e591
xor ebx, edx
mov dword [ebp - 0x58], ebx
sub edi, ecx
mov dword [ebp - 8], edi
mov ebx, dword [ebp - 0x58]
add ebx, esi
test ebx, 0xa3
je 0x40e5ba
add ebx, esi
mov dword [ebp - 0x58], edx
cmp ecx, 0xffffffc5
jne 0x40e5ba
cmp edi, dword [ebp - 0x5c]
jne 0x40e5ba
cmp edi, dword [ebp - 0x44]
jne 0x40e5ba
mov dword [ebp - 4], ebx
cmp ebx, edx
jne 0x40e5da
cmp ebx, edi
je 0x40e5da
add edi, 0x4b
cmp ebx, dword [0x41555c]
je 0x40e5da
mov ebx, 0x87
mov dword [ebp - 0x10], edi
sub ebx, edx
mov dword [ebp - 0x4c], ebx
rdtsc
xor ecx, ebx
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x58], edx
cmp ecx, 0xffffff9c
jne 0x40e66e
mov edx, dword [ebp - 0x58]
add ecx, 0xffffff93
cmp edx, 0x40
jne 0x40e66e
sub ecx, ebx
mov dword [ebp - 0x58], edi
mov edi, ecx
cmp esi, dword [ebp - 0x48]
jne 0x40e66e
mov ebx, dword [ebp - 0x58]
add esi, 0x25
cmp edx, dword [0x41555c]
jne 0x40e66e
add ebx, 0x3b
cmp ecx, dword [ebp - 0x48]
je 0x40e66e
mov ecx, dword [ebp - 0x58]
cmp edi, 0xffffff83
je 0x40e66e
xor edi, 0x7e
cmp ebx, esi
je 0x40e66e
mov dword [ebp - 4], ecx
mov ecx, 0x850e
mov dword [ebp - 0x54], esi
and ebx, esi
mov dword [ebp - 0x14], eax
cmp ebx, dword [0x41555c]
je 0x40e66e
mov dword [ebp - 0x58], ebx
mov ebx, 0xb0
xor ebx, eax
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x58], edi
cmp esi, 0xa261
je 0x40e66e
mov dword [ebp - 0x14], ecx
add edx, eax
cmp edx, 0x41020000
jne 0x40e66e
sub edx, edi
mov dword [ebp - 0x54], edx
cmp esi, 0xffffffd9
je 0x40e69d
mov edx, eax
or edx, esi
cmp edx, dword [0x41555c]
je 0x40e69d
mov ebx, 0xa9994040
mov dword [ebp - 0x58], ebx
cmp edx, esi
je 0x40e69d
mov esi, dword [ebp - 4]
xor edx, edi
mov dword [ebp - 4], esi
cmp edx, 0xffffffce
jne 0x40e69d
sub edx, eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x58], ecx
mov eax, 0x81
sub eax, 0x63
mov dword [ebp - 4], edx
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 4]
test eax, 0xf3
je 0x40e6da
or eax, 0x81508000
mov edx, 0x28
cmp eax, 0x53110800
je 0x40e6da
mov dword [ebp - 0x58], edx
mov edi, 0x6e
mov dword [ebp - 4], eax
mov dword [ebp - 4], edi
mov eax, dword [ebp - 4]
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x58], eax
mov eax, 0xadd6
mov dword [ebp - 0x58], eax
test esi, 0x72
jne 0x40e703
xor edi, edx
mov esi, 0xf9
mov dword [ebp - 4], ecx
mov dword [ebp - 4], esi
mov dword [ebp - 0x58], edi
rdtsc
add edx, ecx
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x58], edx
cmp ecx, edx
je 0x40e714
mov dword [ebp - 0x40], ecx
mov edi, 0xb1
cmp ecx, 0x3084011
je 0x40e729
mov esi, dword [ebp - 4]
sub edi, esi
mov dword [ebp - 4], edi
mov edx, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x58]
cmp edx, 0xffffff9a
jne 0x40e74e
mov esi, ebx
mov dword [ebp - 0x28], eax
and edi, 0x39
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 4], edx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 4], esi
sub eax, edx
mov dword [ebp - 4], esi
sub ebx, 0xffffffd3
mov esi, dword [ebp - 4]
cmp eax, dword [0x41555c]
je 0x40e782
mov ecx, 0x33
cmp esi, dword [0x41555c]
je 0x40e782
mov edi, 0x17ee
mov dword [ebp - 0x58], ebx
mov dword [ebp - 4], eax
mov dword [ebp - 0x58], ecx
mov dword [ebp - 4], esi
mov dword [ebp - 0x58], edi
mov dword [ebp - 4], edx
pop edi
xor esi, 0x15
mov dword [ebp - 0x58], esi
pop esi
cmp edi, 0x82a7
jne 0x40e798
mov dword [ebp - 4], edi
pop ebx
mov edx, dword [ebp - 4]
add edx, ebx
mov dword [ebp - 0x58], esi
test edx, 0xe4
je 0x40e7ac
mov dword [ebp - 0x58], edx
leave
ret