Function at 0x870cb7
Capabilities:
Execute anti-debugging instructions

Disassembly:
pushfd
lea esp, [esp + 0x18]
call 0x870ba6
mov ecx, dword [ecx + 0x37e9243c]
push es
add byte [eax], al
dec ecx
jae 0x870bf3
popal
push edx
popal
push eax
je 0x870c2c
add byte [edx], ah
pop ebp
lodsb al, byte [esi]
mov edi, 0x448f3186
and al, 0xa
push dword [esp + 0xf]
sub esp, 5
add esp, 7
call fcn.00870c0b
inc ebx
outsd dx, dword [esi]
insd dword es:[edi], dx
jo 0x870c92
jb 0x870c98
push ebx
je 0x870ca8
imul ebp, dword [esi + 0x67], 0xdbf80041
xor cl, byte [ecx - 0x7cfedbac]
in al, dx
push ds
mov dword [esp + 1], edx
sub esp, 0x1e
add esp, 0x13
add esp, 0x10
add esp, 0
mov dword [esp], ebp
jmp 0x870c21
outsd dx, dword [esi]
bound esp, qword [ecx + 0x6c]
inc esi
insb byte es:[edi], dx
popal
jae 0x870c9c
pop dword [esp + 5]
pop word [esp + 7]
cld
push word [esp + 1]
mov word [esp + 3], si
mov word [esp + 4], di
jmp 0x870c3e
je 0x870cce
add dword [esi - 0x77], esp
je 0x870cd3
add esp, dword [esi - 0x77]
jl 0x870cd8
add al, 0xeb
xchg dword [esi + 0x57], esp
jmp 0x870d24
and al, 0x25
stc
mov dword [esp + 0x24], edi
push word [esp + 0x10]
jl 0x870cf9
and al, 0x66
push dword [esp + 0x10]
je 0x870cfe
adc byte [esi - 1], ah
je 0x870d03
push word [esp + 0x2e]
call 0x870cb7
call 0x870cb7
test byte [edi], dh
lea esp, [esp + 1]
lea esp, [esp + 0x38]
add dword [ebp - 0x62c7db9c], ecx
popfd
jmp 0x870d3c
pop dword [esp + 0x1b]
mov dword [esp + 0x29], esi
mov dword [esp + 0x2e], edx
mov byte [esp + 2], bl
push word [esp + 1]
std
jmp 0x870cfb
push 0x8a452014
add dword [esp], 0x761ee142
pushal
xchg ebp, eax
mov dl, ah
jmp 0x870d74
mov di, sp
lea ebx, [ebp + ebp]
xchg ebp, edi
xchg di, ax
mov dl, 0x28
jmp 0x870d87
not ecx
mov ebx, 0xe797136e
bswap ebp
xchg ebp, eax
mov si, dx
mov dx, 0xd8a9
jmp 0x870d5e
mov dx, 0xd8ea
mov dl, cl
mov ebx, 0xeeff111f
lea ebx, [ecx*4]
setnp ch
lea edi, [ecx*4]
jmp 0x870dbe
lea ecx, [ebx - 0xae]
lea eax, [edx*4]
mov esi, 0x58394b10
mov di, 0x836b
mov di, 0x9b6c
mov ax, word [esp]
jmp 0x870e38
xchg word [esp + 1], si
lea esp, [esp]
xchg word [esp], bp
jmp 0x870eac
lea edx, [edx*4]
mov ebx, dword [esp]
pop edi
mov eax, edx
rdtsc
pushfd
jmp 0x870dfd
mov al, dh
pushfd
mov ax, si
lea edx, [esi + 0xbc68]
mov byte [esp + 2], al
xchg word [esp + 1], dx
jmp 0x870e13
pop bp
push bp
not ch
push edi
mov word [esp + 9], di
mov esi, dword [esp + 9]
jmp 0x870e81
rdtsc
bswap eax
xchg cl, bh
push dword [esp + 1]
sete bl
xchg dword [esp + 2], ebx
jmp 0x870e4f
lea esp, [esp + 8]
mov ecx, esi
push ebx
xchg byte [esp + 1], dl
xchg word [esp + 4], bp
mov ah, byte [esp + 2]
jmp 0x870ec5
lea edx, [edx*4]
mov eax, edi
lea ebx, [ebp*4]
push dword [esp]
pop eax
setl bl
jmp 0x870e6e
mov dword [esp], ebx
mov word [esp + 3], bp
mov edi, 0xdbbd8ab6
not dl
xchg word [esp + 2], ax
jmp 0x870efc
pop di
mov esi, 0x8b5781c0
push word [esp + 3]
mov bh, 0xfa
xchg di, ax
mov dword [esp + 2], edi
jmp 0x870f90
lea esp, [esp + 2]
lea esp, [esp + 8]
popal
pushal
call fcn.00870f24
lea esi, [edx + edx]
xchg ecx, edx
rdtsc
xchg bp, dx
cpuid
mov ecx, ebx
jmp 0x870f6e
xchg ecx, edi
jmp 0x870f49
bswap ebp
mov ah, byte [esp]
mov edx, 0x4488d9ff
mov bx, di
call fcn.00870fbc
inc edi
je 0x870fd7
add byte [eax], al
add byte [edi + 0x65], al
je 0x870fd7
je 0x870fea
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
add byte gs:[edx - 0x7b], ch
xor al, 0x66
pop dword [esp + 1]
pop word [esp + 1]
xchg dword [esp], ebx
xchg dl, ch
xchg dword [esp], edi
push dword [esp]
mov byte [esp + 5], bh
jmp 0x870f3a
not ebx
xchg byte [esp + 3], al
setg ah
push word [esp + 0x1c]
jmp 0x87100e
cmp byte [ebx], bl
jb 0x871048
jl 0x870f6a
lea ebx, [ebp + 0x9d74]
popfd
je 0x870f7d
add byte [eax], al
pop word [esp + 1]
lea ebp, [ecx - 0x4ac9]
mov ax, 0x21bf
pushal
xchg byte [esp + 0x1f], bl
jmp 0x870fc6
mov ch, 0xff
jmp dword [esi - 0x48]
lea ecx, [edx + ebp]
mov cl, 0x78
lea ebx, [eax + ecx]
call fcn.00870ff8
lea eax, [eax + ebx]
mov cl, 0x87
mov cl, 0x2c
mov dh, bh
popal
setle dh
jmp 0x871067
not ch
mov word [esp + 1], dx
jmp 0x870fdc
mov al, ah
call fcn.00871079
push ebx
je 0x8710a4
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
inc ebx
outsd dx, dword [esi]
jne 0x8710d3
je 0x871067
rdtsc
pop ax
pop dword [esp]
xchg dword [esp], ebx
pop word [esp]
mov ah, 0x1d
jmp 0x871051
mov bx, word [esp + 0xb]
lea esp, [esp + 0xc]
pop edx
xchg ch, bh
pop dword [esp + 7]
jmp 0x871197
popal
jo 0x87111c
jb 0x87113d
add byte gs:[ebp - 0xfedb9c], cl
je 0x871105
or al, 0x8d
xor al, 0xb5
add byte [eax], al
add byte [eax], al
push esp
imul ebp, dword [ebp + 0x65], 0xe8556600
jecxz 0x87110f
invalid
invalid
add byte [eax], al
add dh, dl
mov ah, byte [ecx - 0x2a089990]
lea ebp, [esp - 0x22c21d9d]
mov ebx, edx
call fcn.00871168