Function at 0x612bfc
Capabilities:
Execute anti-debugging instructions

Disassembly:
pop ecx
mov ebx, dword [esp + 3]
mov byte [esp + 2], bh
lea eax, [ebp*4]
bswap edi
mov dword [esp + 5], ecx
jmp 0x612775
pop di
mov ebx, ebp
push word [esp + 0xf]
mov ebp, ecx
clc
rcr ah, 1
jmp 0x612744
lea ecx, [eax*4]
mov dword [esp + 0xf], esi
pop bp
inc al
mov bx, di
jmp 0x6127b9
inc cl
mov di, dx
pop esi
xchg si, di
inc edi
stc
jmp 0x612765
bswap eax
clc
pop word [esp + 7]
xchg byte [esp + 6], dl
rdtsc
mov word [esp + 0xc], dx
jmp 0x612808
mov dh, byte [esp + 3]
bsr dx, bp
mov byte [esp + 4], ch
mov esi, eax
bswap esi
mov bp, word [esp + 0x10]
jmp 0x61279a
pop word [esp + 1]
xchg dword [esp], ebp
mov dl, dh
lea eax, reloc.RASAPI32.dll_RasHangUpA
xchg di, bp
jmp 0x612817
mov eax, esi
cpuid
bsf bx, si
mov ebp, 0xc04e6958
mov dl, 0x9c
push word [esp + 1]
jmp 0x6127d0
mov dl, 0xec
clc
neg dx
cmc
clc
xchg word [esp + 5], si
jmp 0x6127e9
xchg esi, edx
mov edi, dword [esp + 3]
pop word [esp + 0xb]
cpuid
bswap ecx
bswap ecx
jmp 0x612849
mov dl, 0x74
mov byte [esp + 5], ch
mov bx, word [esp + 8]
bsf cx, ax
mov ax, 0xf07d
lea esi, [eax + ebx]
jmp 0x61278d
push dword [esp + 2]
mov dword [esp + 5], ebp
rdtsc
mov ecx, dword [esp + 0x11]
inc edi
lea ebx, [eax - 0x89]
jmp 0x6128b2
push dword [esp + 6]
setae bh
bsr dx, cx
xchg bp, si
rdtsc
xchg dword [esp + 0x12], esi
jmp 0x61282e
mov bx, di
neg edx
ror edi, 5
call 0x612897
cld
xchg bx, bp
mov esi, eax
pushal
jmp 0x6128df
not dx
xchg byte [esp + 9], cl
pop dword [esp + 8]
sub esp, 0x1c
mov al, 0x56
cpuid
jmp 0x612889
cld
not bh
cpuid
btr esi, edx
not dh
clc
jmp 0x612a42
lea esp, [esp + 0x4e]
mov di, 0x265d
mov si, dx
mov ecx, dword [esp]
mov bp, 0x4ce7
xchg edi, edx
jmp 0x6128c6
setle ch
add esp, 5
mov dword [esp + 0x13], eax
xor ebx, esi
mov byte [esp + 0x14], ah
lea edx, [edx*4]
jmp 0x612873
mov ax, 0x8785
lea edx, [edi*4]
cmc
rcr ebx, 0x1f
cpuid
btc edx, edi
call fcn.006129b5
mov ebp, dword [esp]
mov ax, sp
add bp, 0x6ce6
btc edx, edi
xchg byte [esp], al
xchg edx, ebp
jmp 0x612af7
not ch
cmc
add al, dh
lea ebp, [esi - 0xb5]
setbe ch
mov bl, 0x70
jmp 0x6129fe
pop cx
mov byte [esp + 9], bh
xchg bh, cl
pop word [esp + 9]
pop edx
mov bh, byte [esp + 0xc]
jmp 0x6128f9
clc
setnp ah
inc ecx
cpuid
mov eax, 0x63a364fc
call fcn.00612ad9
insb byte es:[edi], dx
jae 0x612b08
jb 0x612af9
jo 0x612b11
inc ecx
add byte [esi + 0xf], ah
mov esp, 0xee87f9ee
bsf bp, si
stc
xchg esi, ebp
mov si, 0x59b9
xchg ecx, ebp
add bp, 0xb336
jmp 0x612a80
mov ecx, ebp
pop dx
mov ax, 0x8f3f
lea edi, [edx + ebx]
bsr cx, bp
inc al
jmp 0x612a9a
imul byte [esi + 0x6febdef7]
dec eax
popal
jo 0x612b62
jb 0x612b83
add byte gs:[ebx + 0x51961900], bh
mov ebx, 0x51961900
mov byte [esp + 0xe], ah
call fcn.00612b0a
dec eax
popal
jo 0x612b74
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [eax], ax
mov bl, 0xe0
rol di, cl
sub esp, 0xe
mov ecx, 0x59cd5f38
pop word [esp + 0xd]
mov ebp, dword [esp + 0xf]
jmp 0x612b20
mov ebx, 0x2cccdf94
xchg cx, ax
mov bh, byte [esp + 4]
xchg word [esp + 4], dx
jmp 0x612bbb
pop eax
xchg edi, eax
dec cl
push 0xfa20f8b
xor dword [esi - 0x79], esp
inc esp
and al, 4
cpuid
rdtsc
xchg word [esp + 4], ax
mov word [esp + 3], sp
and al, 3
mov byte [esp + 3], ah
jmp 0x612b50
outsb dx, byte [esi]
inc ecx
add byte [ebp + 0xe1e93f6], bh
ror ah, 1
xchg dword [esp], ebp
mov cl, 0xaa
lea esp, [esp + 0xb]
push word [esp + 1]
jmp 0x612b69
mov edi, eax
xchg word [esp], cx
bswap ebx
lea eax, [ecx - 0x3b]
btc ebx, ebx
mov cl, ch
jmp 0x612bd3
bsf si, ax
xchg ah, bl
xchg word [esp + 3], ax
mov dword [esp + 5], esi
mov ax, 0x81c1
btc esi, edi
jmp 0x612b9d
pop dx
sub esp, 0xc
rol bp, cl
cmc
mov cl, 0x32
lea esp, [esp + 1]
jmp 0x6133e3
jmp 0x612a69
push 0xa55c0ea3
add dword [esp], reloc.RASAPI32.dll_RasHangUpA
call fcn.00612c30
dec ecx
jae 0x612c57
popal
push edi
jb 0x612c83
je 0x612c81
push eax
je 0x612c91
add byte [edi], cl
test byte [esi - 0x11], bl
invalid
jo 0xeb612cab
ret 0x9d8d
lea ebx, [ebp + 0xbf]
mov ebx, dword [esp]
bswap ebx
call fcn.00612d04
pop ebp
lodsb al, byte [esi]
mov edi, 0x8d303186
add al, 0xbd
add byte [eax], al
add byte [eax], al
lea eax, [edi*4]
sete al
push ebx
mov bx, word [esp]
sbb al, 0x24
jmp 0x612c5e
add al, 0xbd
add byte [eax], al
add byte [eax], al
mov ax, 0x4bc1
jmp 0x612c74
mov word [esp + 4], di
lea esp, [esp + 2]
lea esp, [esp + 8]
popfd
jmp 0x612c01
lea esp, [esp + 0x14]
popal
cmc
sub esp, 6
mov dword [esp], eax
push dword [esp]
jmp 0x612e7c