Function at 0x500f31
Capabilities:
Execute anti-debugging instructions

Disassembly:
bt esi, esi
cmc
cmp dword [ebp + 0xc], 0
pushfd
pushal
mov word [esp + 0xc], si
lea esp, [esp + 0x24]
je 0x504b34
jmp 0x505134
cmp si, 0x4636
pushal
cmp dword [ebp - 0x1c], 8
call fcn.00503a82
mov edx, dword [ebp - 0x134]
call fcn.00511174
lea esp, [esp + 8]
je 0x5108f2
xchg dx, cx
pushal
jmp 0x50b559
jmp 0x501f76
pushfd
pushfd
mov dword [ebp - 0x14], 0
pushfd
pushal
push 0x902f5c96
push 0x861e11d5
lea esp, [esp + 0x34]
jmp 0x503f06
mov dword [ebp - 0x18], eax
bt si, 5
cmc
test edx, edx
pushal
pushal
mov dword [esp], esi
pushfd
lea esp, [esp + 0x44]
je 0x50cd46
push edi
pushfd
mov dword [esp + 4], 0x506064
mov word [esp], 0x136d
call fcn.00509a95
mov dword [esp + 0x48], eax
call fcn.00510791
sbb dh, 0xd2
or eax, ecx
sub dl, 0x97
adc dl, bl
mov byte [ebp - 0x10], al
neg ah
adc ah, 5
mov dword [ebp - 0x1c], 1
daa
call fcn.00507639
and dx, si
mov edx, dword [ebp - 0x18]
bt di, 0xf
add edx, 1
clc
cmc
bt dx, dx
cmp dx, di
mov dword [ebp - 0x18], edx
pushal
stc
cmp dword [ebp - 0x18], 8
call fcn.00509351
pushal
lea ecx, [ebp - 8]
mov ah, 0x71
mov dword [esp + 0x1c], ecx
bswap ax
not dh
pop edx
pushfd
mov edx, dword [ebp + 0x10]
not ax
pushfd
mov byte [esp + 8], bl
setp ah
mov dword [esp + 0x1c], edx
movsx ax, cl
mov eax, dword [ebp + 8]
call fcn.005094d5
mov dword [ebp - 0x14], eax
add esp, 4
pushal
lea esp, [esp + 0x20]
jle 0x501627
cmc
cmp dword [ebp - 0x14], 8
push 0xc1f99b1f
pushfd
pushfd
lea esp, [esp + 0xc]
jge 0x501590
lea ecx, [esi*4 - 0x51f576a4]
mov ecx, dword [ebp + 0x14]
cmp cl, dh
add ecx, dword [ebp - 0x14]
bsr edx, esp
mov edx, dword [ebp - 0x14]
dec al
adc al, 0xb1
shr al, 1
not al
mov al, byte [ecx]
and cl, 0x73
bsf cx, ax
rcr cl, 1
xor al, byte [ebp + edx - 0x28]
or ch, 0x5b
cmp ch, cl
test bh, ch
mov cx, sp
mov ecx, dword [ebp + 0x14]
cmp dl, ah
add ecx, dword [ebp - 0x14]
pushal
jmp 0x504f5e
jmp 0x500b7a
call fcn.0050c84f
push 0x266018d4
cmc
cmp bh, dl
cmp dword [ebp - 0x14], 8
jmp 0x502333
lea esp, [esp + 0x2c]
jge 0x5083d2
not cl
mov cl, ah
lea edx, [ecx*2 - 0x29cca15b]
bswap dx
mov ecx, dword [ebp - 0x14]
call fcn.0051077c
mov eax, dword [ebp - 0x14]
pushfd
mov byte [ebp + eax - 0x10], dl
push ebx
lea esp, [esp + 0x30]
jmp 0x504aff
rdtsc
lea eax, [ebp - 0x340]
seto cl
movsx cx, al
bswap dx
push eax
mov dh, 0x6a
rdtsc
movsx cx, bl
mov ecx, dword [ebp - 0x28]
seta ah
rdtsc
mov edx, esi
push ecx
xchg edx, eax
bswap ax
call fcn.00504b24
mov dword [ebp - 0x1c], 0
pushfd
pushfd
lea esp, [esp + 8]
jmp 0x50031f
clc
test bx, 0x7751
mov eax, dword [ebp - 0x14]
cmp ax, 0x34f7
clc
cmc
test al, 0xfe
add eax, 1
bt cx, 2
stc
call 0x500f31
add ecx, 1
pushfd
cmc
pushal
mov dword [ebp - 0x24], ecx
sub esp, 0xffffffdc
pushfd
mov word [esp], 0x3626
cmp dword [ebp - 0x24], 8
call fcn.004ffa7d
pushal
pushfd
jmp 0x501a7c
mov byte [esp], 0x86
pushal
call fcn.0051143a
lea esp, [esp + 8]
je 0x5108f2
xchg dh, ch
mov ecx, dword [ebp - 0x340]
pushfd
mov dword [esp], ecx
pushfd
movsx dx, bl
pushfd
pushal
mov dword [esp + 0x24], 0
movsx dx, cl
movzx dx, cl
mov edx, dword [ebp - 0x28]
push 0x1dfd0d2d
mov dword [esp + 0x24], edx
pushal
push dword [esp]
pushfd
push 0xe83bc759
lea esp, [esp + 0x50]
call sub.MSVCRT.dll_memset
xadd cx, ax
add esp, 0xc
jmp 0x500b07
bt eax, edx
pushfd
cmp dword [ebp - 0x14], 8
call fcn.00500cbd
bt bx, 0xc
add ecx, 8
pushal
mov dword [ebp + 8], ecx
jmp 0x50e8eb
pushal
cmc
mov dword [ebp - 8], 1
add esp, 0x20
test bl, 6
call fcn.005109a5
shrd cx, bx, 0xa
sub eax, 8
adc cl, 0x92
mov dword [ebp + 0xc], eax
shl cl, cl
btr cx, di
stc
mov ecx, dword [ebp + 8]
jmp 0x5040d9
sal edx, cl
mov edx, dword [ebp - 0x14]
clc
cmp dl, 0x79
add edx, 1
pushfd
pushfd
mov word [esp], 0xedaa
push ecx
mov dword [ebp - 0x14], edx
add esp, 0xc
bt ebp, ecx
jmp 0x504988
mov byte [ecx], al
push ecx
push ebx
push 0xbfaf173d
lea esp, [esp + 0x2c]
jmp 0x502186
cmp bh, 0x40
cmp bp, dx
cmc
cmp dword [ebp - 0x1c], 8
push 0xe7d3126
push 0xa70853be
push ebx
lea esp, [esp + 0xc]
jge 0x50b058
cmc
btc dx, 0xb
bswap eax
pushfd
mov edx, dword [ebp - 0x1c]
call fcn.0050a3ee
adc dword [esi], ebp
xor ah, byte [eax]
xor eax, 0x813332d
adc al, byte [ecx]
push ds
pop es
add byte [eax], al
add al, byte [edx]
retf
clc
add esp, 8
jns 0x507bf9
sub eax, 1
cmp bl, 6
bt ebp, 6
jmp 0x500e85
push edi
pushal
mov dword [esp + 0x20], 0x506a60
pushfd
pushal
jmp 0x506df3
push dword [sym.imp.MSVCRT.dll_rand]
pop dword [esp + 0x40]
push dword [esp + 4]
pushfd
push dword [esp + 0x48]
ret 0x4c
pushfd
jmp 0x501622
bt ecx, 0x16
push ebx
call fcn.00501f62
not dl
lea ecx, [ebx - 0x10bd329]
neg ax
mov dword [ebp - 0x1c], 0
mov ch, 0xe8
mov ecx, dword [ebp + 0x14]
push esi
rdtsc
mov dword [ebp - 0x20], ecx
cmp cx, di
daa
clc
mov edx, dword [ebp + 0x18]
shld ax, bx, 4
xor cl, 0xac
mov eax, dword [edx]
pushal
add eax, 8
shl cl, 1
mov ecx, dword [ebp + 0x18]
dec dx
rcl dl, 5
mov dword [ecx], eax
lea edx, [ebx - 0x749a0443]
lea edx, [ebx*4 + 0x25eb334e]
mov edx, dword [ebp + 0x14]
stc
add edx, 8
mov byte [esp], dl
pushal
jmp 0x50a89b
jmp 0x510af4
mov dword [ebp + 0x14], edx
lea esp, [esp + 0x44]
pushal
mov byte [esp + 8], 0xc9
mov word [esp + 4], 0xb00a
lea esp, [esp + 0x20]
jmp 0x50025b
clc
cmp al, 0xd4
cmp dword [ebp - 0x1c], 8
jmp 0x51134e
push ebp
mov ecx, dword [ebp - 0x340]
mov dh, byte [esp + 4]
push ecx
mov dword [esp + 0x24], ecx
movzx dx, dl
call fcn.00506ebf
not ax
lea eax, [ebp - 0x18]
call fcn.00511220
call fcn.00510767
jno 0x50cd9b
push ebx
dec edx
push edi
dec esi
pop ebx
jnp 0x50cdbc
jp 0x50cdb7
jg 0x50cdc1
popal
rcl cl, 1
shl dword [ebp - 0x3e135d5b], 1
rol al, 0xd4
aad 0x98
mov ds, esi
call 0xf1dc2a80
int1
cmp byte [esi + 0x35], dh
movsd dword es:[edi], dword [esi]
mov esi, 0x12060607
sbb ah, byte [ebx + 0x64]
sub al, byte [0x19160202]
retf 0x4761
dec edi
rcl dword [esi - 0x40e74c46], cl
ljmp 0xf31f
pop esi
lds ecx, [edx - 0x1f]
int 0xe7
call 0x7117c04a
xchg esi, eax
out 0xe8, eax
mov dl, dh
invalid
jo 0x50cd59
xor cl, ah
cmp dword [ecx + 0x4cd15ea3], ebx
xchg edi, eax
xchg eax, esi
sbb byte [esi + ecx], bl
jge 0x50ce1b
inc edx
dec edx
dec edx
inc eax
cmp dword [esi], edx
pop ss
pop ss
add ecx, dword [ebx]
cmpsd dword [esi], dword es:[edi]
div byte [eax - 0x608c6a66]
stosd dword es:[edi], eax
jo 0x50cdb8
and al, 0xd6
cmp al, byte [edi + edi*2]
push ebx
sub eax, 0x7fd2c84f
movsb byte es:[edi], byte [esi]
pushal
invalid
salc
mov cl, 0x5d
push 0x6d67676f
adc al, 0x39
xor esi, dword [ebx]
daa
das
imul dword [esi + 2]
sub byte [edx], ah
and ah, byte [esi - 0x6c]
dec edi
xor dword [ebx], 0x17e7a773
mov dword [edi + eax*2 + 0x6ed07744], edi
sub ch, byte [esi - 0x61]
pop ecx
mov esi, 0x373dd0cb
jns 0x50cebe
jae 0x50cea9
pop ebp
pop ebp
dec ecx
inc ecx
clc
enter 0xffffffffffffdadd, 0xffffffffffffff81
pop edx
inc edx
jne 0x50ced3
sub dword [ecx], edx
ror ebx, cl
aam 0xe5
jp 0x50cec3
imul ecx, dword [eax - 0x5b], 0xffffffaf
salc
ret 0xbcc3
test al, 0xab
and edx, dword [0x97ab7e09]
or byte [ebx - 0x58], cl
int1
invalid
invalid
add byte [ebp - 0x750a2141], 0x19
mov bl, byte [ecx]
adc ebx, dword [ebp + 0x42]
mov al, 0xbb
pushfd
outsb dx, byte [esi]
and byte [esp + esi*4], ah
div ebx
sahf
jae 0x50ce99
lds ebp, [esi + ebx*4 - 0x40]
adc al, 0x3b
dec edx
insb byte es:[edi], dx
sahf
rcl byte [ebx + edi], 0x4a
sub eax, eax
outsd dx, dword [esi]
push esi
int 0xe9
jecxz 0x50cf57
jle 0x50cee2
fstpnce st(6), st(0)
fmulp st(2)
ret 0x8bba
add byte [eax + ecx*4 + 0x33970cb1], al
push 0x46
dec esi
or eax, dword [eax]
dec ebx
add al, 0xc
inc edx
push esi
push ecx
xor eax, 0x35fe9f34
cmp eax, 0x4b1ae873
xlatb
rcr ch, 1
fild word [eax + 0x4b]
cmp dh, byte [edi - 0x4a]
xor dword [eax - 0x3f5b9e5f], 0x98ad8701
cdq
mov eax, dword [0x439cbdf8]
sbb bh, byte [esi]
jbe 0x50d008
cmp al, 0x1b
sbb dl, byte [eax + eax*2 + 0x47]
pop ds
push es
sbb ecx, dword gs:[edx - 0x7dbdae2d]
loopne 0x50d008
test byte [ebp - 0x4c532a22], 0xb1
mov esi, 0x7e1b13b6
jno 0x50d022
or ebx, dword [edx]
mov dl, 0x1e
aad 0xdd
insd dword es:[edi], dx
xchg ebp, eax
mov eax, dword [0x92376c31]
xlatb
inc edi
jge 0x50cfdf
or dword [esi], ecx
push cs
and esp, dword [edx*4 + 0x24758081]
bound ebp, qword [ebp + 0x1d]
salc
fnstcw word [esi]
test al, 0x9c
xchg ebx, eax
call 0xda960dd9
dec esp
out dx, al
movsd dword es:[edi], dword [esi]
aam 0xf0
scasb al, byte es:[edi]
mov ebx, ebx
mov dh, 7
invalid
pop es
cmp dword [eax], eax
add eax, 0x121d8212
ja 0x50d028
pop ebx
inc eax
inc ecx
ror byte [ecx - 0x7d1c3731], cl
inc edi
inc eax
push cs
pop es
ja 0x50d04c
pop es
out dx, eax
ficomp dword [ebx - 0x3e3f13af]
mov ch, byte [ebp - 0x46415556]
or esp, dword [edi]
dec eax
stosb byte es:[edi], al
mov esi, 0x48270bb9
retf 0xfba5
loope 0x50cfe4
cli
and byte [esi + esi], dh
inc esp
sbb ecx, ebp
xchg edx, eax
jl 0x50d02c
call [ebp - 0x49da0f6e]
add eax, 0x6aa4a9c8
pop esp
call 0x8bf06fd5
mov word [edi], es
jbe 0x50d020
popfd
xchg edx, eax
invalid
in al, 0xb6
mov ecx, 0x6521212a
cdq
pop esi
jmp 0x45256128
fcom dword [eax - 0x37d4bb2c]
shr bl, 0x53
sbb eax, 0x50444443
push edx
in eax, 0x54
das
sub ebx, dword ss:[esp + edi*2]
push esi
push ecx
das
pop ebx
pop es
rcl dword ss:[ebx], 0x95
and dh, byte [edx - 0x49e91678]
arpl word [edx], bx
mov ch, 0x92
mov al, byte [0x46e6894f]
dec esi
dec esi
pop edx
pop ebp
push es
jne 0x50d0d2
pop ecx
add dword [ebx], ebp
sub dword [ecx], ebp
sub al, 0xa2
dec esi
in al, dx
mov al, 0x42
mov bl, 7
loope 0x50d0ba
retf
int3
fldenv [edi]
jg 0x50d111
push 0x8b80115a
push ss
sub dh, byte [ebp - 0xf0e404c]
mov byte [edi - 0x2284464], cl
cld
pushfd
invalid
jecxz 0x50d13d
mov edx, 0x59f5debb
inc ebx
inc edx
cmp dh, byte [ecx]
mov byte [0x3d19fa49], al
scasb al, byte es:[edi]
test eax, 0x924816d0
inc ecx
adc al, 0xba
sbb ah, ah
sbb edi, ebp
imul eax, dword [edi], 0x1c
enter 0xffffffffffffcb40, 0x17
xchg dword [edi + 0x347a725d], ecx
and byte [edi], ah
or al, 6
into
xor edx, dword [esi - 0x7cc74bfb]
xlatb
test ch, al
mov edi, 0xcca9a131
mov dword [0x949edcc2], eax
int1
fidivr dword [ebx - 0x3c444a4b]
enter 0xffffffffffffc2c8, 0xffffffffffffffc2
xor byte [ebx], bh
jne 0x50d1c4
scasw ax, word es:[edi]
invalid
push esi
pop edi
push edx
pop esi
push ebx
mov ecx, 0x8790d1bf
pop ss
cmc
mov dword [ebp - 0x18], eax
cmc
push dword [esp + 8]
test edx, edx
mov word [esp], 0xcf35
push 0xdcd1c43
lea esp, [esp + 0x38]
jl 0x5084ca
je 0x50cd46
jmp 0x507340
push edx
call fcn.00511034
pushal
call fcn.00507cd4
jmp 0x5111c7
pushal
lea esp, [esp + 0x20]
je 0x50cd46
jmp 0x506266
push 0xcabb6ab1
pushal
push 0x13388fe4
mov dword [esp + 0x20], 0x43f26ca8
pushfd
lea esp, [esp + 0x24]
jmp loc.00415225
jne 0x50a8a2
call fcn.00500239