Function at 0x981700
Capabilities:
Execute anti-debugging instructions

Disassembly:
xor eax, ebx
movzx edx, cl
call fcn.00d24f18
movsx eax, dl
mov al, byte [ebp + eax - 4]
movsx ecx, dx
mov cl, byte [ebp + 2]
or dx, 0x4321
imul edx, edx
adc ebp, 1
bswap edx
add edx, edx
shr al, cl
dec dl
mov word [ebp], ax
movzx eax, dl
lea ecx, [eax + edx*4 + 0x4b8b4c9a]
xadd al, ch
mov edx, dword [esi + eax - 0x5e]
lea esi, [esi + eax*2 - 0xb8]
sal eax, 0xe
add ecx, ecx
ror eax, 0x41
xor edx, ebx
ror edx, 1
btc ax, 0x24
or ecx, 0x7ab93039
rol cl, 3
lea edx, [edx + eax - 0xd189235]
ror edx, 1
not edx
sub ecx, ecx
ror eax, 0xfb
ror edx, 1
not edx
btr ecx, ecx
inc edx
btr cx, ax
xor edx, 0x36a7b40a
bt eax, eax
xor ebx, edx
jmp 0xf17c92
mov dword [eax + edi + 8], ecx
neg eax
call fcn.00c42fcd
rdtsc
sub ebp, 8
mov ecx, 0xbdab9995
mov dword [ebp + 4], eax
mov dword [ebp], edx
or ecx, 0xbbb06980
jne 0xe2335f
dec eax
lea edi, [ecx + ecx - 0x70cd7065]
dec ebp
lea esp, [esp + ebx*4 - 0x329]
inc ecx
mov eax, 0xefb2b294
inc esi
movzx esi, byte [ebx - 0xca]
inc ebp
xor dh, dl
inc ecx
ror dh, 1
sub ebx, edi
xchg bh, bl
inc ecx
sbb dh, 0x89
movsx edx, cx
inc esp
mov ebx, ebx
inc ecx
mov ebp, eax
inc ecx
rol dh, 1
inc esp
movzx edi, bp
or dx, bp
sub di, 0xf5a7
inc ecx
sbb dh, 0x91
inc ebp
xor dl, dh
dec esp
add esi, esp
dec ecx
sar eax, 0x3e
not bl
inc ecx
mov dword [esi + ebx - 0x5faf9bd2], eax
sar cx, cl
dec esi
lea esp, [ebx - 0x5faf9bd6]
inc ebx
mov eax, dword [esp + eax*4]
not edi
not edx
dec esp
lea esi, [ebx*8 + 0x48bef12e]
inc ecx
xor eax, edx
dec ecx
sal esi, cl
inc eax
bswap eax
dec ecx
btc edi, 0x37
setb dl
neg eax
bswap eax
and ebp, 0x1a3dec2b
btr ecx, 0x3c
not eax
inc eax
dec esp
lea ebp, [ecx*2 + 0x7b36cd18]
neg eax
dec ecx
sar esi, 0x46
inc ebp
xadd esi, ebx
inc esp
adc ch, dl
inc ecx
push edx
xor dword [esp + ebx - 0x5faf9bd2], eax
sal ebp, 3
ja 0xd7da5c
dec ecx
sub esp, 4
call fcn.00c619cc
mov ecx, 0xf8addd11
ror dl, 1
not ecx
add ecx, ecx
sbb dl, 0xac
add cl, cl
rol dl, 1
not dl
add ecx, ecx
neg cx
sbb ecx, 0xc680bb91
xor bl, dl
sal ecx, 0x88
adc edx, esp
mov byte [edx], al
jmp 0xc53724
dec ecx
bswap ecx
lea ecx, [ecx + eax - 0x50292d40]
sub edx, 0x612a0a1e
btr eax, edx
rol ecx, 1
xor edx, edx
xor ebx, ecx
add edx, 0xa5aa0c38
and dl, 6
shl eax, 0x66
adc ebp, ecx
lea ecx, [edx*2 - 0x2ec4f4f2]
movzx ax, byte [esi + ecx - 0x1c8f230e]
btr ecx, ecx
mov cl, byte [esi + ecx*2 - 0x391e461a]
xor dl, dh
adc esi, 2
bts edx, edx
push edx
shr al, cl
not edx
lea ecx, [edx + edx*2 + 0x6918e4a6]
call fcn.00cd1970
lea edx, [edx*2 - 0x56e96963]
btr edx, edx
mov dword [esi], ecx
sbb ebp, 4
movzx ecx, dl
mov edx, dword [ebp + ecx*4 - 0x64]
xor edx, ebx
lea eax, [ecx + ecx*8 + 0x2ebcec05]
push eax
inc edx
lea eax, [ecx + ecx*2 - 0x36cd2cf2]
or dword [esp + ecx*2 - 0x32], ecx
rol dword [esp + ecx - 0x19], 0x76
not edx
sal cl, 0x46
or dword [esp + ecx - 0x40], 0xdb034405
bswap edx
inc edx
push ecx
sal ecx, 0x68
not dword [esp + ecx*8 - 0x1fffc]
xor ebx, edx
call fcn.00e8b77a
mov edi, 0x82a55e94
lea eax, [edi + edi*2 - 0x107642cb]
mov edx, dword [esi + eax - 0x7779d8f1]
lea esi, [eax + esi - 0x7779d8ed]
lea ecx, [edi + eax*2 - 0x73550555]
xchg edx, esi
xadd ecx, eax
xor ecx, 0x5487d200
mov edi, edx
movzx edx, ax
jo 0x95e3eb
or edx, 0xe91e6d21
jle 0xce58a4
mov byte [eax + edx - 0x4d32df32], cl
lea eax, [edx*2 - 0x5c71ece4]
not al
mov byte [esp + eax*2 - 0x7be7a2f8], dl
mov edx, dword [esi + edx - 0x4d32df38]
lea esi, [esi + eax - 0x3df3d185]
jl 0xde5c09
mov edx, dword [ebp - 6]
dec ecx
sub ebp, 6
movsx eax, cl
inc ax
xor edx, ebx
sar ax, 0xe3
push eax
not edx
rol edx, 1
add edx, 0xb3f073d
xchg al, cl
sal eax, 0xa9
bswap edx
sub dword [esp], 0xf68b2609
ror dword [esp], 0x7b
lea edx, [edx + ecx - 0x2416f04a]
bswap edx
bt ax, ax
sbb edx, 0xecbcd83a
not edx
xor ebx, edx
bts cx, ax
adc esi, edx
xchg byte [esp + 3], cl
inc cl
pop ecx
jns fcn.00953c34
jle 0xe3154c
adc edx, edx
call fcn.00ec4a4b
sub esi, 4
mov ecx, 0x421dcaad
mov ecx, dword [esi + ecx - 0x421dcaad]
jmp 0xe941ac
ror ecx, 0x61
inc ecx
pop edx
dec eax
arpl ax, ax
dec esp
adc ecx, eax
dec ebp
xor eax, ecx
inc ecx
jmp eax
movsx ecx, al
xor edx, ebx
rol edx, 3
cwde
dec ecx
lea edx, [ecx + edx + 0xab0b16]
ror edx, 1
lea edx, [edx + ecx - 0x6fada912]
sal dword [esp + ecx*2 - 0xfb], 0x54
xor ebx, edx
rol word [esp + ecx*2 - 0xfc], 0xcf
idiv cl
ror cl, 0xc7
add ebp, edx
mov edx, dword [esp + ecx*2 - 0x1f6]
mov dword [esp + ecx - 0xfc], ebp
ret 4
mov ecx, dword [esi]
adc esi, 4
mov edx, 0x78054b96
shl edx, 0x41
movzx eax, dl
xor ecx, ebx
div dl
add ecx, eax
call fcn.00999672
mov eax, 0x7a27c688
movsx ecx, al
movzx edx, al
lea ebp, [edx + ebp - 0x8c]
rol dx, 0x81
btr ax, cx
shl edx, 0xaf
mov eax, dword [eax + ebp - 0x7a27c688]
inc edx
xor eax, ebx
rol dx, cl
ror eax, 1
imul dx, cx
not ecx
dec eax
rol dx, 0x8a
call fcn.00cabbf6
mov eax, 0x8083710f
mov ecx, dword [esi]
add esi, 4
btr eax, eax
jb 0xf00f62
lea edx, [eax*8 + 0x66ad4087]
xor ecx, ebx
inc dl
xor eax, eax
adc al, ah
lea ecx, [ecx + eax*4 - 0x1981c597]
je 0xce0cd1
lea esi, [esi + edx*2 - 0xa7e0038]
not edx
mov dword [ecx], eax
sbb ebp, 4
movzx eax, dx
movzx ecx, dl
mov eax, dword [eax + ebp - 0xffdf]
shl dl, 0xe3
inc edx
xor eax, ebx
dec edx
not eax
dec dl
not edx
xadd dx, cx
dec eax
xor ecx, ecx
and edx, 0xce18cdbd
sar ecx, 0x3d
rol eax, 1
inc ecx
imul ecx, ecx
add cl, 0x2b
dec eax
sal edx, cl
jp 0xf26003
inc ecx
mov ebx, 0xe3928c19
dec ebx
lea eax, [ebx + ebx*4 + 0x58bdef3f]
dec eax
mov esp, esi
dec eax
lea ebp, [eax + eax*8 - 0x2b429163]
mov edi, eax
pop eax
dec ecx
lea ecx, [ebx + edi + 0x222b13bc]
mov edx, ecx
inc ecx
pop edi
inc esp
movsx esp, ch
dec esp
lea ecx, [ecx + ebp*4 + 0x39b70628]
inc ecx
push ebx
dec edx
mov ebx, dword [esp - 0x31]
dec edx
mov edi, dword [esp - 0x1b8]
dec edx
mov dword [esp - 0x1b8], 0x25ad9217
movzx esi, dl
dec edx
mov esi, dword [esp - 0x5a]
dec esi
mov esi, dword [esp - 0x19]
inc ecx
sal ebx, cl
dec esi
mov ecx, dword [esp + ebx - 0x1831ffd8]
inc edx
xor byte [esp + ebx - 0x1831fff0], ch
dec esi
mov edx, dword [esp + ebx*2 - 0x3063ffd0]
call fcn.00e0c13b
mov edx, 0x74043936
mov ecx, dword [edi + edx - 0x74043936]
lea eax, [edx*2 + 0x59991f83]
ror ax, 0xc4
rol edx, 0x4d
lea edi, [eax + edi - 0x41a1f91a]
sbb eax, 0x4bb87ea9
xor ecx, ebx
add eax, eax
sar dl, 0xe5
jp 0xc4fe59
mov eax, dword [edi]
mov ecx, 0xe10a7e83
btr cx, cx
jae 0x956e5e
lodsd eax, dword [esi]
push ss
xchg ebp, eax
inc esi
xchg esi, eax
rcr dword [edi + ecx*2], cl
adc dh, byte [ebx + 0x4f0cedb9]
adc dh, byte [ebx + 0x4f08d7a1]
adc dh, byte [ebx + 0x79498da3]
xor ah, byte [edx]
cwde
in eax, dx
inc esi
in al, dx
test al, 0x7d
jmp 0x94e13f05
adc eax, esp
sub ecx, 0x9b9bf1b9
call fcn.00dc1063
mov eax, 0x27b6221f
xor ecx, ebx
neg ecx
sar ax, 0xcc
push eax
dec ecx
ror ecx, 1
ror ax, 0xa5
rol eax, 0x17
neg ecx
sub dword [esp + eax*8 - 0x9ed840], eax
xor ebx, ecx
neg word [esp + eax - 0x13db07]
add ebp, ecx
dec word [esp + eax - 0x13db06]
movzx ecx, al
mov ecx, dword [edi + eax*2 - 0x27b610]
mov eax, dword [edi + eax*2 - 0x27b60c]
pop edx
rol dl, 5
lea edi, [edx + edi - 0x275cdc57]
sar dx, 0x23
rol edx, 0x24
lea edx, [edx + edx + 0x7091bca3]
mov dword fs:[ecx + edx - 0x5c312e07], eax
jmp ebp
rol edx, 1
shr eax, 0x7e
lea ecx, [eax + ecx*4 - 0x6bc826cf]
not edx
xadd eax, ecx
setl cl
adc edx, ecx
shl ax, cl
sar cx, cl
sar eax, 0xf5
xor ebx, edx
inc cx
add esi, edx
call fcn.00cf7578
or cl, ah
adc edi, edx
movsx edx, cl
or ecx, 0x303b60d
shr al, 0x43
jmp edi
sbb cx, 0x5320
xor ebx, eax
btr cx, dx
shl ecx, cl
or cx, dx
adc edi, eax
movzx eax, cl
sub ecx, edx
or eax, edi
jmp eax