Function at 0x510398
Capabilities:
Execute anti-debugging instructions

Disassembly:
bswap ebp
mov ecx, esp
mov word [esp + 2], ax
jmp 0x510318
setnp dl
rdtsc
call 0x5102a1
rdtsc
xchg ebx, edx
mov bp, dx
lea edi, [ebx*4]
mov bl, bh
jmp 0x51034d
cmp eax, 0x7c4928a3
mov si, bx
lea eax, [eax + 0x25]
mov eax, edi
mov bh, byte [esp]
lea esp, [esp]
jmp 0x510322
xchg byte [esp], ch
bts eax, edx
mov ebx, ecx
call 0x510398
push eax
jb 0x5103cc
arpl word [ebp + 0x73], sp
jae 0x510395
xor cl, byte [esi + 0x65]
js 0x5103db
push edi
add byte [eax], dl
xchg ebx, eax
or ah, byte [ebp - 0x7535f02c]
dec esp
and al, 0xc
sub esp, 5
mov si, ax
mov dh, 0xf3
lea esp, [esp + 0x1b]
jmp 0x510338
not ebp
bswap eax
xchg word [esp + 1], dx
pop word [esp]
jmp 0x510549
out dx, al
stc
fdivr st(1)
mov esi, 0x82e6bc09
mov word [esp + 2], bx
jmp 0x510382
sub esp, 6
mov di, 0xf023
xchg dword [esp], ecx
jmp 0x5104e9
cmp edx, dword [edx]
lea ebx, [edi + ebp*2]
not edx
bsf di, bx
call fcn.005103ca
mov edx, esp
mov dword [esp + 0x14], eax
neg dh
not cx
cmc
cpuid
jmp 0x51041b
lea esi, reloc.KERNEL32.dll_WriteProcessMemory
mov ecx, dword [esp + 0xf]
mov ebx, dword [esp + 0xa]
neg cx
mov cx, word [esp + 0x1a]
push si
jmp 0x5103eb
pushfd
mov word [esp + 0x10], si
xchg dl, bl
lea esp, [esp + 0x22]
bswap edi
add esp, 0
jmp 0x51045e
mov edi, dword [esp + 0xb]
sub esp, 0xb
dec cx
xchg word [esp + 0x13], di
mov bp, word [esp + 6]
std
jmp 0x510401
xchg esi, ebx
mov edi, 0x3b48a8e0
cpuid
mov ebp, eax
stc
jmp 0x5104a2
mov esi, dword [esp]
rdtsc
xchg ah, cl
lea esi, [edi*4]
mov dh, byte [esp]
jmp 0x510448
sub esp, 9
mov dh, cl
mov byte [esp + 4], dl
mov byte [esp], ah
neg edi
lea ebx, reloc.KERNEL32.dll_WriteProcessMemory
jmp 0x510432
lea esi, reloc.KERNEL32.dll_WriteProcessMemory
mov ecx, esi
rdtsc
call 0x51048c
xchg word [esp], si
lea esp, [esp]
call fcn.0051051d
dec eax
popal
jo 0x510503
insb byte es:[edi], dx
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [eax], ax
lea esi, reloc.KERNEL32.dll_WriteProcessMemory
bt esi, esp
xchg si, cx
lea edi, [ebp*4]
std
dec ebx
jmp 0x5104b1
mov dword [esp + 3], edi
bswap ecx
mov word [esp + 7], di
mov bh, 0x37
pop esi
mov dword [esp], edx
jmp 0x510476
neg esi
not dx
rdtsc
mov word [esp], si
mov dh, dl
jmp 0x51052e
pop word [esp]
xchg word [esp + 1], bp
xchg byte [esp], bl
setns bh
mov si, bx
jmp 0x510684
mov di, 0x3caa
xchg byte [esp + 1], ah
stc
mov word [esp], bp
dec ebp
setno cl
jmp 0x5103e0
mov ecx, dword [esp]
mov dh, byte [esp]
lea ebx, [edx*4]
mov ch, dh
jmp 0x510587
rcr dx, 1
mov ecx, eax
lea esp, [esp]
setno ah
pop bx
xchg byte [esp], bl
jmp 0x51055f
mov di, cx
xchg ecx, ebp
neg bx
mov bh, 6
mov cl, bh
lea ebp, [edx*4]
jmp 0x510649
pop cx
push bp
bsf ax, cx
lea ebx, [ecx*4]
mov di, 0xf282
xchg word [esp], ax
jmp 0x510575
mov bh, byte [esp]
xchg ah, al
lea esp, [esp]
call 0x5105d6
bsf si, bx
pop cx
std
stc
xchg si, bx
jmp 0x51069c
lea esp, [esp + 1]
ror di, cl
mov word [esp], di
xchg cx, dx
not si
xchg ecx, esi
jmp 0x5105a7
lea ebp, [eax*4]
pop ebp
xchg bp, cx
mov bx, word [esp]
not dl
mov byte [esp + 3], bh
jmp 0x510869
mov dl, byte [esp + 0xf]
popal
mov ah, byte [esp + 7]
lea ebp, [ebx*4]
jmp 0x510702
lea edi, [esi*4]
mov di, 0x29c4
push dword [esp + 0x2f]
stc
mov dword [esp + 0x38], esp
std
jmp 0x5106d5
mov byte [esp + 9], al
not ch
rdtsc
not di
bt ax, sp
rdtsc
jmp 0x51077f
push dword [esp + 0x23]
xchg word [esp + 8], si
cpuid
push word [esp + 0x1c]
lea esi, [eax*4]
mov ch, 0xec
jmp 0x5106eb
cpuid
pop word [esp]
mov eax, dword [esp]
xchg di, bx
clc
jmp 0x510768
bswap eax
not bl
bsr ax, ax
mov word [esp + 3], bp
cpuid
pop bx
jmp 0x51073f
xchg byte [esp + 1], bl
mov cl, byte [esp]
not eax
add esp, 0
mov byte [esp], bh
jmp 0x510798
mov dword [esp + 2], esi
xchg byte [esp + 5], ah
lea eax, [eax + 0xf9]
add esp, 0x15
pop bp
mov byte [esp + 1], al
jmp 0x510755
sub esp, 0xd
xchg cx, dx
dec edi
mov esi, 0x232d5a47
sub esp, 0x1f
mov edi, esp
jmp 0x510802
sub esp, 0x16
lea eax, [edx + 0x5b]
sub esp, 0x17
mov cl, byte [esp + 0x25]
bsf esi, esp
stc
jmp 0x510724
mov byte [esp], ch
xchg esi, edi
neg al
push word [esp + 6]
jmp 0x51082a
lea eax, reloc.KERNEL32.dll_WriteProcessMemory
mov dh, dl
mov bx, bp
popal
pop dword [esp]
mov di, sp
jmp 0x5107d2
mov edi, 0x791af2a6
xchg di, bx
xchg ebx, ebp
mov bh, 0xb7
xchg byte [esp], ah
pop ebp
jmp 0x5107e8
mov bx, 0x4029
call fcn.0051083f
inc edi
je 0x51086d
popal
jae 0x510898
inc ebp
jb 0x510899
outsd dx, dword [esi]
jb 0x51082a
xor eax, 0x49c93c24
mov di, 0x4255
cpuid
ror bx, cl
mov esi, dword [esp + 7]
pop ecx
jmp 0x510814
clc
mov ch, byte [esp + 6]
push es
cld
lea ecx, [esp + ecx]
bsr edx, esp
rcr ebx, 0x1e
jmp 0x5107bc
lea esp, [esp + 1]
popal
std
sub esp, 1
mov byte [esp], bl
add esp, 0
jmp 0x5108b9
xchg byte [esp], al
add al, 0x24
lea esp, [esp]
xchg ecx, eax
rdtsc
jmp 0x51087d
lea esp, [esp + 1]
popfd
push 0xc64227b9
jmp 0x510960
xchg byte [esp + 1], cl
mov dword [esp + 1], eax
lea ecx, [edx + 0xbb]
jmp 0x510978
lea esp, [esp + 2]
mov dword [esp + 2], ecx
pushfd
mov cx, 0xa192
mov cl, al
mov word [esp], cx
jmp 0x510930
add dword [esp], reloc.KERNEL32.dll_WriteProcessMemory
pushfd
push word [esp]
mov dword [esp], eax
mov dword [esp], ebp
push dword [esp + 5]
jmp 0x510946
mov ah, byte [esp]
mov ax, word [esp]
lea ecx, [esi + ebp]
xchg ecx, eax
mov cl, byte [esp]
mov eax, 0x78824be3
jmp 0x5109e9
setge ah
mov edx, dword [esp]
xchg dl, cl
mov ch, byte [esp]
call fcn.005109d2
pop esi
test eax, 0x3d826bc8
setns al
xchg edx, eax
lea eax, reloc.KERNEL32.dll_WriteProcessMemory
mov edx, 0xcd73bf02
mov eax, dword [esp]
mov al, dl
jmp 0x5109a6
xchg cx, ax
push edx
mov al, byte [esp]
lea eax, reloc.KERNEL32.dll_WriteProcessMemory
setns dl
mov ax, word [esp]
jmp 0x5109bc