Function at 0x97ad15
Capabilities:
Check for software breakpoints
Encode data using xor

Disassembly:
pop eax
add eax, 0xb
mov dword [ebx], eax
jmp 0x97ac7c
call 0x97ac88
js 0x97acc6
sub al, 0x4d
or byte [ebp + 0x28c0f], dl
add byte [eax], al
mov eax, edi
pop edi
mov dl, 0x69
add edi, 0xe2cc
jmp 0x97acb0
xor esi, esi
mov dx, 0x6f5e
push dword [esi + edi]
sbb bl, 0x63
pop ecx
cmc
arpl word [ecx - 0xb], bx
xor ecx, 0x3a18b500
jg 0x97accf
add eax, 0xba000000
push 0x812edc33
jmp 0x990b672
mov edx, 0x2edc3368
sub ecx, 0x8f9099d
mov bh, ah
xor ecx, 0x73b5e605
mov bh, dh
mov dword [edi + esi], ecx
or al, 0x37
or ax, 0x57f1
mov dh, 0x30
sub esi, 4
mov edx, 0x7a2e1ba1
cmp esi, 0xffff1df4
jne 0x97ad29
call 0x97ad15
insd dword es:[edi], dx
and edi, eax
jb 0x97ace0
sbb ah, dh
mov ch, 0x9f
xchg esi, eax
xor byte [edx], cl
pop eax
add byte [edx + eax*4 + 0x57], cl
xchg esp, eax
xor dword [edi - 0x1604a5a3], 0x27
add byte [eax], al
add byte [edx + 0x60], ch
inc ebp
jae 0x97acbb
xchg esp, eax
xchg ecx, eax
jge 0x97ad9a
cmp ah, byte [eax - 4]
pushal
cld
pushal
pushal
popal
mov edi, 0x2b45d763
popal
popal
jmp 0x97acb6
lea esp, [esi]
cmp esp, ebx
sbb cl, byte [ebx - 0x23f6e243]
sbb cl, byte [ebx + 0x501a3b5]
sbb ecx, dword [ebx + 0x4518b01]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
sub dword [ebp + 0x1adc170d], edx
sub edx, 8
add ecx, 8
add eax, edi
pushal
mov ebx, eax
push ebx
push 0x1000
push ebx
call dword [ebp + 0x1adc304f]
pop ebx
test eax, eax
je 0x97adec
lea eax, [ebp + 0x1adc2a3f]
push eax
push 0x40
push 0x1000
push ebx
call dword [ebp + 0x1adc9daf]
popal
mov bx, word [ecx]
test bx, 0xf000
je 0x97aeae
and ebx, 0xfff
add ebx, eax
cmp byte [ebx - 1], 0xc5
jne 0x97ae30
cmp dword [ebp + 0x1adc36ea], 0
je 0x97ae30
cmp dword [ebp + 0x1adc024d], 0
je 0x97ae30
mov byte [ebx - 1], 0xe9
jmp 0x97aeae
cmp dword [ebp + 0x1adc12d9], 0
je 0x97ae5d
cmp byte [ebx - 1], 0xc5
jne 0x97ae5d
cmp dword [ebp + 0x1adc36ea], 0
je 0x97ae5d
mov byte [ebx - 1], 0xe9
jmp 0x97aeae
cmp byte [ebx - 2], 0xc5
jne 0x97ae80
cmp byte [ebx + 3], 0x90
jne 0x97ae80
mov byte [ebx - 2], 0xe9
je 0x97aeae
jmp 0x97ae9e
cmp byte [ebx - 2], 0xcc
jne 0x97ae9e
cmp byte [ebx + 3], 0x90
jne 0x97ae9e
mov byte [ebx - 2], 0xe8
je 0x97aeae
cmp dword [ebx], 0x90909090
je 0x97aeae
sub dword [ebx], esi
add dword [ebx], edi
add ecx, 2
sub edx, 2
jne 0x97aded
cmp dword [ebp + 0x1adc170d], 0
jne 0x97adab
mov edi, dword [ebp + 0x1adc3926]
mov ecx, 0x1120c
xor al, al
rep stosb byte es:[edi], al
mov edx, 0x286edc26
mov edi, dword [ebp + 0x1adc1235]
mov ecx, 0x79
lea esi, [ebp + 0x1b17bf29]
rep movsb byte es:[edi], byte [esi]
xor edx, 0x28634112
mov edi, dword [ebp + 0x1adc1235]
add edi, 0xe
test edx, edx
je 0x97af0b
add edx, dword [ebp + 0x1adc091d]
mov dword [edi + 1], edx
mov edx, dword [ebp + 0x1adc1791]
mov edi, dword [ebp + 0x1adc1235]
add edi, 0x54
mov dword [edi + 1], edx
mov edi, dword [ebp + 0x1adc1235]
add edi, 0x49
mov dword [edi + 1], ebp
mov edi, dword [ebp + 0x1adc1235]
add edi, 0x25
mov dword [edi + 1], ebp
jmp 0x97afb6
mov eax, edx
lea ebx, [ebp + 0x1adc3772]
mov eax, 0x2ed0
mov dword [ebp + 0x1b054612], eax
call 0x97afce
pop eax
add eax, 0xb
mov dword [ebx], eax
jmp 0x97dea9
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dh, bh
retf 0x7d91
dec dl
xchg ecx, eax
jge 0x97de74
test al, 0x16
retf 0x8a82