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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x108
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x8ab170
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.008aa8a0
mov esi, eax
mov eax, dword [0xa584dc]
mov ecx, dword [0xa587a8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 0x26828]
jg 0x8a006a
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x108
pop esi
pop edi
pop ebx
pop ebp
ret
nop
push 0xa584dc
call fcn.008ea32a
add esp, 4
cmp dword [0xa584dc], 0xffffffff
jne 0x8a0055
nop
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x48], 5
mov dword [ebp - 0xa8], 0x891710
mov dword [ebp - 0xa4], 1
movzx eax, byte [0xa42cf3]
cmp al, 0xcc
je 0x8a0132
mov cl, 0xd
mov al, 0xfd
lock cmpxchg byte [0xa42cf3], cl
je 0x8a00c3
cmp al, 0xcc
jne 0x8a00b1
jmp 0x8a0132
mov edi, 0xffffffee
lea ecx, [0xf9ee15e]
mov esi, 0xf0fcc072
lea ebx, [0xf9ee15f]
mov eax, esi
mov edx, 0x38e38e39
mul edx
shr edx, 1
and edx, 0xfffffffe
lea eax, [edx + edx*8]
movzx edx, byte [edi + 0xa42cf2]
xor dl, byte [ebx + eax]
xor dl, 0xba
mov byte [edi + 0xa42cf2], dl
test edi, edi
je 0x8a0123
nop
movzx edx, byte [edi + 0xa42cf3]
xor dl, byte [ecx + eax]
xor dl, 0xba
mov byte [edi + 0xa42cf3], dl
add edi, 2
add ecx, 0xfffffffe
add esi, 2
add ebx, 0xfffffffe
jmp 0x8a00d9
mov al, 0xcc
xchg byte [0xa42cf3], al
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x114]
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x20], 1
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0xa0]
push 0xa42ce0
call fcn.0076f010
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x1e], 1
mov dword [ebp - 0x10], 1
lea eax, [ebp - 0xa8]
lea edx, [ebp - 0x48]
push eax
push edx
call fcn.008a7800
nop
mov dword [ebp - 0x44], 0x10
mov dword [ebp - 0x88], 0x8b11c0
mov dword [ebp - 0x84], 0xa
movzx eax, byte [0xa42d10]
cmp al, 0x98
je 0x8a0256
mov cl, 0xdd
mov al, 0xc0
lock cmpxchg byte [0xa42d10], cl
je 0x8a01bc
cmp al, 0x98
jne 0x8a01a7
jmp 0x8a0256
mov esi, 0xfffffff0
lea eax, [0xb6816f65]
mov dword [ebp - 0x34], eax
mov edx, 0x4a1a3289
lea eax, [0xb6816f66]
mov dword [ebp - 0x30], eax
mov ecx, 0x4a1a3288
mov eax, edx
mov dword [ebp - 0x3c], edx
mov edi, 0x88888889
mul edi
mov ebx, edx
mov eax, ecx
mul edi
shr edx, 3
lea eax, [edx + edx*4]
lea eax, [eax + eax*2]
movzx edx, byte [esi + 0xa42d10]
mov edi, dword [ebp - 0x30]
xor dl, byte [edi + eax]
shr ebx, 3
lea eax, [ebx + ebx*4]
lea eax, [eax + eax*2]
xor dl, 0x56
mov byte [esi + 0xa42d10], dl
movzx edx, byte [esi + 0xa42d11]
mov ebx, dword [ebp - 0x34]
xor dl, byte [ebx + eax]
xor dl, 0x56
mov byte [esi + 0xa42d11], dl
add ebx, 0xfffffffe
mov dword [ebp - 0x34], ebx
mov edx, dword [ebp - 0x3c]
add edx, 2
add edi, 0xfffffffe
mov dword [ebp - 0x30], edi
add ecx, 2
add esi, 2
jne 0x8a01dd
mov al, 0x98
xchg byte [0xa42d10], al
mov dword [ebp - 0x10], 1
lea eax, [ebp - 0xf0]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x1e], 1
mov dword [ebp - 0x10], 1
lea ecx, [ebp - 0x80]
push 0xa42d00
call fcn.0076f010
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0x28], ecx
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 2
lea eax, [ebp - 0x88]
lea edx, [ebp - 0x44]
push eax
push edx
call fcn.008a7800
nop
mov dword [ebp - 0x40], 1
mov dword [ebp - 0x68], 0x8b1350
mov dword [ebp - 0x64], 0xa
lea ecx, [ebp - 0x60]
movzx eax, byte [0xa42d2d]
cmp al, 0x54
je 0x8a0330
mov dl, 0xb5
mov al, 0xba
lock cmpxchg byte [0xa42d2d], dl
je 0x8a02d3
cmp al, 0x54
jne 0x8a02c1
jmp 0x8a0330
mov esi, 0xfffffff4
mov edi, 0x433ce5d6
mov ebx, 0x92492493
mov eax, edi
shr eax, 1
mul ebx
shr edx, 2
imul eax, edx, 0xfffffff2
movzx edx, byte [eax + esi + 0x43d887d2]
xor dl, 0xe1
add byte [esi + 0xa42d2c], dl
test esi, esi
je 0x8a0321
lea eax, [eax + 0x9ba1f0]
movzx eax, byte [eax + esi + 0x433ce5e3]
xor al, 0xe1
add byte [esi + 0xa42d2d], al
add esi, 2
add edi, 2
jmp 0x8a02e2
mov al, 0x54
xchg byte [0xa42d2d], al
mov dword [ebp - 0x10], 2
lea eax, [ebp - 0xcc]
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 2
push 0xa42d20
call fcn.0076f010
nop
mov byte [ebp - 0x1f], 1
mov dword [ebp - 0x10], 3
lea eax, [ebp - 0x68]
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0xcc]
push eax
push edx
call fcn.008a7800
lea eax, [ebp - 0xa8]
mov dword [ebp - 0x10], 4
mov ecx, 0xa584bc
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.008a7a20
nop
mov eax, dword [0xa432c4]
mov esi, dword [0xa432b0]
mov edi, 0x69ea
sub edi, dword [ebp - 0x24]
sub esi, edi
add esi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0xcc]
call esi
mov eax, dword [0xa432c4]
mov esi, dword [0xa432b0]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0xf0]
call esi
mov eax, dword [0xa432c4]
mov esi, dword [0xa432b0]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x114]
call esi
mov eax, dword [0xa432c0]
mov esi, dword [0xa432b4]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x68]
call esi
mov eax, dword [0xa432c0]
mov esi, dword [0xa432b4]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x88]
call esi
mov eax, dword [0xa432c0]
mov esi, dword [0xa432b4]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0xa8]
call esi
push 0x8a7da0
call fcn.008ea168
add esp, 4
push 0xa584dc
call fcn.008ea2e0
add esp, 4
jmp 0x8a0055