Function at 0x51c22e
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ecx
cmp ah, 0x7b
pushal
bsr ebx, ecx
push sp
jmp 0x51c02f
rdtsc
lea esp, [esp + 5]
mov dx, 0xa038
mov dh, cl
mov byte [esp + 1], dl
sub esp, 1
jmp 0x51bfee
lea esi, [edx*4]
lea eax, [ebx*4]
pop esi
jmp 0x51c057
lea eax, [ebx*4]
popal
not edi
lea esi, [ecx + esi]
clc
jmp 0x51c019
add esp, 0
bsr edi, esp
cmc
inc eax
stc
sete cl
jmp 0x51c004
xchg dword [esp], edx
lea esp, [esp + 5]
btr ebx, ecx
mov bh, byte [esp]
mov ch, dl
mov edi, dword [esp]
jmp 0x51c0bc
bsr bp, si
mov bl, byte [esp + 5]
std
bt esi, ebp
not bp
pop di
jmp 0x51c049
bt dx, ax
call fcn.0051c06b
xchg ch, cl
add esp, 0
mov ecx, eax
mov dl, dh
add esp, 0
mov si, 0xaa18
jmp 0x51c112
mov ebx, ebp
mov si, dx
push word [esp]
pop dword [esp + 2]
lea edi, [esp + eax]
stc
jmp 0x51c082
mov cl, 0xce
lea edx, [esp + ebp]
lea esp, [esp + 2]
pop dword [esp + 6]
jmp 0x51c124
dec dl
bsr dx, dx
xchg byte [esp], cl
cld
lea esp, [esp]
sub esp, 0x12
jmp 0x51c0fc
mov dh, byte [esp + 7]
mov cl, 0x48
neg cl
cpuid
mov al, 0x4b
lea esp, [esp + 8]
jmp 0x51c2e1
setb dh
mov edx, 0xa28d33ee
push eax
xchg bh, dl
dec edi
rdtsc
jmp 0x51c0e9
push word [esp + 0x1b]
mov byte [esp + 0x11], bh
sub esp, 0xb
xchg dword [esp + 0x12], ebp
jmp 0x51c18d
sub cl, 0xc4
pushal
pop di
add esp, 0x21
bswap ebp
bsr bx, bp
jmp 0x51c150
rcr esi, cl
call fcn.0051c1bc
inc edi
je 0x51c1d2
jb 0x51c1f3
arpl word [ecx + 0x64], ax
jb 0x51c1ef
jae 0x51c1ff
add byte [esi - 0x47], bl
push ebx
pop ss
add eax, 0x112c8d4f
pop esi
mov ecx, 0x4f051753
lea ebp, [ecx + edx]
pop esi
lea eax, [edi*4]
xchg byte [esp], dl
jmp 0x51c177
add al, 0x8c
pop ds
xchg cx, ax
mov esi, 0x162a4996
xchg esi, ecx
mov byte [esp + 0x1d], bl
sub esp, 7
xchg edx, edi
xchg dword [esp + 0x26], edi
jmp 0x51c20a
imul esi, dword [ebp + 0x46], reloc.KERNEL32.dll_GetProcAddress
imul ebp, dword [ebp], reloc.KERNEL32.dll_GetProcAddress
mov ax, 0xd09c
not ah
xchg bp, di
std
mov dx, sp
pushal
pop esi
jmp 0x51c166
lea eax, [esp + eax]
bts edx, eax
lea esp, [esp + 0x2c]
mov ebp, 0x24379af3
jmp 0x51c24d
xchg al, dh
pop ebp
cmc
xchg cx, ax
jmp 0x51c27e
lea edi, [ecx + ecx]
setne bh
mov dl, cl
sub esp, 0
bt esi, ebx
jmp 0x51c258
push word [esp + 1]
stc
call fcn.0051c22e
mov ecx, dword [esp]
rdtsc
mov byte [esp], ch
xor ax, 0xa8d2
inc cx
lea esp, [esp]
jmp 0x51c2b3
dec eax
mov ebx, dword [esp + 1]
mov word [esp + 2], cx
lea esi, [eax + eax]
std
pop esi
jmp 0x51c237
lea edx, [esp + edi]
lea edi, [esp + eax]
setns dl
mov bx, word [esp]
mov ax, 0x1822
neg esi
jmp 0x51c2c9
mov al, byte [esp]
add esp, 0
mov esi, edx
mov ebp, dword [esp]
add esp, 0
lea ebx, reloc.KERNEL32.dll_GetProcAddress
jmp 0x51c28f
mov ebp, dword [esp]
xchg ah, dl
sub esp, 0xe
lea esp, [esp + 5]
mov byte [esp + 3], dl
jmp 0x51c348
mov word [esp], ax
lea esp, [esp + 1]
pop ax
mov dl, 0xc5
xchg byte [esp], dh
push si
jmp 0x51c1f7
mov ax, word [esp + 4]
rdtsc
xchg dword [esp], ecx
xchg dword [esp], ebp
neg dx
jmp 0x51c31f
add esp, 6
mov dword [esp], edi
xchg bx, ax
lea edx, [ecx + edx]
not ecx
neg ax
jmp 0x51c2f7
rcl cx, cl
mov word [esp + 1], sp
mov dword [esp], ebp
lea ebp, [eax*4]
mov dword [esp], ebp
lea ebx, [edx*4]
jmp 0x51c35c
push dword [esp]
neg bh
rdtsc
mov bh, byte [esp + 0xd]
pop word [esp + 8]
cpuid
jmp 0x51c30d
pop dx
push word [esp]
mov byte [esp + 4], bl
xchg dh, dl
inc dx
cmc
jmp 0x51c371
pop ebx
push word [esp + 1]
lea ebp, [esi + 0x35]
setne dl
xchg ebp, esi
jmp 0x51c456
mov ah, al
mov dx, 0x8b99
mov bh, byte [esp + 4]
dec bh
push word [esp + 2]
xchg cx, si
jmp 0x51c140
mov esi, dword [esp]
not dh
bsr bx, dx
add esp, 1
mov dl, byte [esp]
jmp 0x51c3e2
pop bx
mov ecx, dword [esp]
add esp, 0
xchg word [esp], dx
not bx
xor di, 0xcf10
jmp 0x51c3a0
lea edx, [edi*4]
mov ebx, 0x32e14292
std
mov ebx, eax
jmp 0x51c408
bsr di, bp
stc
xchg byte [esp], bh
lea esp, [esp]
cld
xchg ah, al
jmp 0x51c3cc
sub esp, 0x13
xchg dx, si
popal
mov ebx, edi
mov dword [esp + 4], esp
pushal
jmp 0x51c430
sub esp, 0x1b
lea ecx, [eax + edx]
pop ax
or bh, 0xd1
cld
pop dword [esp + 3]
jmp 0x51c3f2
inc esi
mov edx, edi
cpuid
shr eax, 5
mov dword [esp + 1], ebx
jmp 0x51c4cf
popal
pop word [esp + 4]
push word [esp + 5]
xchg ebx, eax
ror ebp, 1
xchg dword [esp], esi
jmp 0x51c41a
mov edx, 0xe10023cc
mov byte [esp + 2], ch
mov dh, 8
mov di, 0x636d
cpuid
mov dl, byte [esp + 2]
jmp 0x51c3b6
push word [esp + 3]
lea esi, reloc.KERNEL32.dll_GetProcAddress
mov edi, dword [esp + 8]
mov di, 0x2cf2
call fcn.0051c486
lea ebx, reloc.KERNEL32.dll_GetProcAddress
mov edi, esp
bts cx, cx
pop eax
jmp 0x51c522
bsr dx, cx
pop ebp
mov word [esp + 5], bp
cpuid
xchg dword [esp + 6], eax
jmp 0x51c535
mov dword [esp + 0x17], edx
push dword [esp + 0x16]
rcl dx, cl
mov ah, ch
popal
push dword [esp]
jmp 0x51c50c
mov dword [esp + 2], esp
push word [esp + 0xa]
pop ebp
add esp, 8
bts ebp, eax
xchg byte [esp], cl
jmp 0x51c590
mov edi, dword [esp]
not ch
push word [esp + 1]
call fcn.0051c57a
inc ebp
js 0x51c60b
je 0x51c5f4
jb 0x51c615
arpl word [ebp + 0x73], sp
jae 0x51c5ab
or dword [eax + reloc.KERNEL32.dll_GetProcAddress], ebp
pop ax
xchg di, ax
mov dword [esp + 3], esp
mov edx, eax
pop word [esp + 2]
jmp 0x51c387
lea esp, [esp + 2]
cmc
mov bl, 6
mov si, bx
xchg byte [esp + 1], bl
jmp 0x51c659
shl cx, 0xc
xchg byte [esp + 7], bh
mov edi, ecx
lea esp, [esp + 7]
cld
mov dword [esp], esp
jmp 0x51c5c5
inc ebp
js 0x51c65a
jo 0x51c66e
imul ebp, dword [edi + 0x6e], reloc.KERNEL32.dll_GetProcAddress
add al, 0x24
pop word [esp]
mov dword [esp], edi
mov dword [esp], eax
push ecx
push eax
xchg edi, ebp
jmp 0x51c5db
retf
lea edi, [eax + esi]
cmp al, 0x30
lea esp, [esp + 2]
mov byte [esp], dh
call fcn.0051c62a
xor di, bp
lea esp, [esp]
bsr edx, ebx
mov esi, dword [esp]
dec ch
jmp 0x51c691
neg cx
lea edi, [esp - 0xaf]
not ebp
rdtsc
mov al, byte [esp]
lea ecx, [edx*4]
jmp 0x51c741
xchg ebx, ebp
mov ebp, edi
mov bx, bp
std
xchg ebp, ebx
xchg dword [esp], esi
jmp 0x51c5ff
mov ecx, dword [esp]
mov edi, 0x53c59174
call 0x51c6e1
mov cl, byte [esp + 1]
not bp
mov edx, dword [esp + 4]
mov ch, cl
jmp 0x51c76b
bsf ax, bp
xchg word [esp + 7], bx
call fcn.0051c7ab
dec eax
popal
jo 0x51c7c1
jb 0x51c7e5
popal
je 0x51c7e8
add byte [edi], cl
mov dword [reloc.KERNEL32.dll_GetProcAddress], eax
add al, 0x66
pop eax
lea eax, [eax + ecx]
call fcn.0051c764
cpuid
mov di, 0xc5a1
stc
xchg ecx, edx
sub esp, 0x17
mov byte [esp + 0x22], dl
jmp 0x51c7d1
rdtsc
mov byte [esp + 0x15], dl
bswap eax
bsr bx, cx
jmp 0x51c893
push word [esp + 7]
not dx
pop dx
push dword [esp + 0x1b]
mov dword [esp + 0x1f], edi
pop dx
jmp 0x51c7bb
je 0x51c837
popal
jae 0x51c862
inc ebp
jb 0x51c863
outsd dx, dword [esi]
jb 0x51c7f4
mov ah, byte [0x4245c8a]
dec dx
lea ecx, [esi*4]
pop si
mov word [esp + 2], bp
xchg word [esp], di
jmp 0x51c6b4
bsr si, cx
push word [esp + 1]
rcr bh, cl
popal
pop bp
call fcn.0051c813
xchg dword [esp + 4], edx
add al, 0xb
mov dword [esp + 5], edi
lea edi, [edi*4]
jmp 0x51c86a
xchg ch, bh
mov di, word [esp + 0x18]
setl dl
xchg al, bh
clc
mov al, bh
not dl
jmp 0x51c829
lea edx, [eax*4]
adc edi, ecx
xchg byte [esp + 9], bl
stc
clc
xchg word [esp + 1], dx
jmp 0x51c990
or si, 0x7a5f
bts dx, bp
bt bx, si
mov ebx, 0x4e48e008
mov ebp, 0xc627a851
pop ebp
jmp 0x51c858
xchg word [esp + 4], bp
mov dl, byte [esp + 1]
mov dword [esp + 5], edx
add bp, bx
jmp 0x51c925
bsr ebx, ebp
mov ebx, dword [esp + 0xb]
mov dword [esp + 7], edi
add esp, 1
push word [esp + 0xa]
lea esp, [esp + 3]
jmp 0x51c8ad
mov ebx, dword [esp + 9]
or edi, 0xf7b9fd19
pop si
xchg word [esp + 4], dx
sub esp, 0x12
pop dword [esp]
call fcn.0051c8f2
inc edi
je 0x51c988
jne 0x51c9b9
jb 0x51c9ae
outsb dx, byte [esi]
je 0x51c9a0
push 0x64616572
dec ecx
add bh, dh
fsub dword [esi - 0x71]
add al, 0x24
neg eax
pop word [esp]
mov dx, word [esp + 4]
mov word [esp + 6], bx
shl dh, cl
push dword [esp + 4]
jmp 0x51c8c3
aaa
scasb al, byte es:[edi]
cmp al, 0x5b
mov dh, 0x31
aas
push es
xor edx, ebp
std
lea edx, reloc.KERNEL32.dll_GetProcAddress
shr dx, 6
mov ebp, 0x17eada64
lea ebx, [edi*4]
jmp 0x51c954
ljmp 0:0xbd1c8d17
lea esp, [esp + 0x12]
mov cx, word [esp + 1]
adc ah, byte [esi - 0x75]
dec esp
and al, 1
lea esp, [esp]
jmp 0x51c9f4
lodsd eax, dword [esi]
xor dword [ecx - reloc.KERNEL32.dll_GetProcAddress], esp
mov bl, 0xf
leave
jmp 0x51c9ab
mov dx, 0xc734
bswap ebx
pop bp
xchg dl, bh
mov ah, al
neg dl
jmp 0x51ca0a
mov ebx, ecx
mov dh, ch
bsr si, bx
lea edi, [eax*4]
jmp 0x51c9c5
push word [esp + 1]
pop bp
and ah, 0xe
lea esp, [esp + 1]
xchg ebp, ebx
mov word [esp], ax
jmp 0x51c9db
mov dl, 0xaf
xor ax, bp
mov dx, word [esp]
bswap eax
call fcn.0051cb2d
lodsb al, byte [esi]
sub eax, 0xd337c4bd
mov esp, 0x75249c8d
adc al, byte [eax]
add byte [esi - 0x75], ah
dec esp
and al, 1
mov dl, 0xb5
cmc
mov si, 0x8965
call 0x51c9c1
mov esi, eax
push si
sub esp, 0x13
bsr cx, si
pop eax
rdtsc
jmp 0x51ca61
setno ch
neg ebp
setb bl
btc edi, edx
adc bl, al
xchg bp, bx
jmp 0x51ca39
dec ax
mov esi, 0x35c14e3a
pop word [esp + 3]
mov ebx, dword [esp + 0xc]
call fcn.0051cac7
xchg ebp, eax
lea ebp, [edi*4]
lea esp, [esp + 3]
mov bx, sp
xchg edi, esi
xchg bh, dl
lea ebp, [eax*4]
jmp 0x51ca4f