Function at 0x8a0e50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x23c
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x8ab190
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.008aa880
mov esi, eax
mov eax, dword [0xa58524]
mov ecx, dword [0xa587a8]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 0x26828]
jg 0x8a0eba
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x23c
pop esi
pop edi
pop ebx
pop ebp
ret
nop
push 0xa58524
call fcn.008ea32a
add esp, 4
cmp dword [0xa58524], 0xffffffff
jne 0x8a0ea5
nop
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x6c], 0xe
mov dword [ebp - 0x14c], 0x8b2630
mov dword [ebp - 0x148], 0xa
movzx eax, byte [0xa42d7d]
cmp al, 0xbd
je 0x8a0fa3
mov cl, 0x4e
mov al, 0x26
lock cmpxchg byte [0xa42d7d], cl
je 0x8a0f16
cmp al, 0xbd
jne 0x8a0f01
jmp 0x8a0fa3
mov esi, 0xfffffff4
lea eax, [0x1a331b25]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], 0xe6688717
lea eax, [0x1a331b26]
mov dword [ebp - 0x30], eax
mov edi, 0xe6688716
nop
mov eax, dword [ebp - 0x2c]
mov ecx, 0x4ec4ec4f
mul ecx
mov ebx, edx
mov eax, edi
mul ecx
shr edx, 2
lea eax, [edx + edx*2]
lea eax, [edx + eax*4]
mov ecx, dword [ebp - 0x30]
movzx eax, byte [ecx + eax]
xor al, 0xd1
add byte [esi + 0xa42d7c], al
test esi, esi
je 0x8a0f94
shr ebx, 2
lea eax, [ebx + ebx*2]
lea eax, [ebx + eax*4]
mov edx, dword [ebp - 0x34]
movzx eax, byte [edx + eax]
xor al, 0xd1
add byte [esi + 0xa42d7d], al
add esi, 2
add edx, 0xfffffffe
mov dword [ebp - 0x34], edx
add dword [ebp - 0x2c], 2
add dword [ebp - 0x30], 0xfffffffe
add edi, 2
jmp 0x8a0f39
mov al, 0xbd
xchg byte [0xa42d7d], al
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x248]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x24], 1
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x144]
push 0xa42d70
call fcn.0076f010
lea ecx, [ebp - 0x248]
mov dword [ebp - 0x4c], ecx
mov byte [ebp - 0x22], 1
mov dword [ebp - 0x10], 1
lea eax, [ebp - 0x14c]
lea edx, [ebp - 0x6c]
push eax
push edx
call fcn.008a7800
nop
mov dword [ebp - 0x68], 3
mov dword [ebp - 0x12c], 0x8b2a90
mov dword [ebp - 0x128], 0xa
movzx eax, byte [0xa42d90]
cmp al, 0x55
je 0x8a10a7
mov cl, 0x73
mov al, 0x62
lock cmpxchg byte [0xa42d90], cl
je 0x8a102a
cmp al, 0x55
jne 0x8a1018
jmp 0x8a10a7
xor esi, esi
mov ecx, 0x6ef0ed1
mov edi, 0x6ef0ed0
mov eax, ecx
mov edx, 0x88888889
mul edx
mov ebx, edx
mov eax, edi
mov edx, 0x88888889
mul edx
shr edx, 3
mov eax, edx
shl eax, 4
sub edx, eax
shr ebx, 3
movzx eax, byte [esi + 0xa42d80]
xor al, byte [esi + edx + 0x78ab110]
mov edx, ebx
shl edx, 4
sub ebx, edx
xor al, 0xaf
mov byte [esi + 0xa42d80], al
movzx eax, byte [esi + 0xa42d81]
xor al, byte [esi + ebx + 0x78ab111]
xor al, 0xaf
mov byte [esi + 0xa42d81], al
add esi, 2
add ecx, 2
add edi, 2
cmp esi, 0x10
jne 0x8a1036
mov al, 0x55
xchg byte [0xa42d90], al
mov dword [ebp - 0x10], 1
lea eax, [ebp - 0x224]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x22], 1
mov dword [ebp - 0x10], 1
lea ecx, [ebp - 0x124]
push 0xa42d80
call fcn.0076f010
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x48], ecx
mov byte [ebp - 0x21], 1
mov dword [ebp - 0x10], 2
lea eax, [ebp - 0x12c]
lea edx, [ebp - 0x68]
push eax
push edx
call fcn.008a7800
nop
mov dword [ebp - 0x64], 2
mov dword [ebp - 0x10c], 0x8b2ef0
mov dword [ebp - 0x108], 0xa
movzx eax, byte [0xa42db4]
cmp al, 0x16
je 0x8a118f
mov dl, 0xea
mov al, 0xbc
lock cmpxchg byte [0xa42db4], dl
je 0x8a112a
cmp al, 0x16
jne 0x8a1118
jmp 0x8a118f
mov edi, 0xffffffec
mov esi, 0x8e63c19a
mov ecx, 0xcccccccd
mov eax, esi
mul ecx
shr edx, 2
and edx, 0xfffffffc
lea eax, [edx + edx*4]
mov edx, edi
sub edx, eax
movzx ebx, byte [edi + 0xa42db4]
neg eax
xor bl, byte [edi + eax - 0x71009c02]
xor bl, 0xda
mov byte [edi + 0xa42db4], bl
movzx eax, byte [edi + 0xa42db5]
xor al, byte [edx - 0x71009c01]
xor al, 0xda
mov byte [edi + 0xa42db5], al
add esi, 2
add edi, 2
jne 0x8a1139
mov al, 0x16
xchg byte [0xa42db4], al
mov dword [ebp - 0x10], 2
lea eax, [ebp - 0x200]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x21], 1
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0x104]
push 0xa42da0
call fcn.0076f010
lea ecx, [ebp - 0x200]
mov dword [ebp - 0x44], ecx
mov byte [ebp - 0x20], 1
mov dword [ebp - 0x10], 3
lea eax, [ebp - 0x10c]
lea edx, [ebp - 0x64]
push eax
push edx
call fcn.008a7800
nop
mov dword [ebp - 0x60], 0x10
mov dword [ebp - 0xec], 0x8b3140
mov dword [ebp - 0xe8], 0xa
movzx eax, byte [0xa42dd3]
cmp al, 0x7c
je 0x8a12a8
mov cl, 0x65
mov al, 0xe0
lock cmpxchg byte [0xa42dd3], cl
je 0x8a1219
cmp al, 0x7c
jne 0x8a1204
jmp 0x8a12a8
xor esi, esi
mov dword [ebp - 0x2c], 0xc04ae2c4
mov edi, 0xc04ae2c3
nop
mov eax, dword [ebp - 0x2c]
mov ecx, 0xaf286bcb
mul ecx
mov ebx, edx
mov eax, edi
mul ecx
mov eax, edi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0xffffffed
movzx edx, byte [esi + 0xa42dc0]
xor dl, byte [eax + esi - 0x3f197acd]
xor dl, 0x1f
mov byte [esi + 0xa42dc0], dl
cmp esi, 0x12
je 0x8a1299
nop
mov ecx, dword [ebp - 0x2c]
mov eax, ecx
sub eax, ebx
shr eax, 1
add eax, ebx
shr eax, 4
imul eax, eax, 0xffffffed
movzx edx, byte [esi + 0xa42dc1]
xor dl, byte [eax + esi - 0x3f197acc]
xor dl, 0x1f
mov byte [esi + 0xa42dc1], dl
add esi, 2
add ecx, 2
mov dword [ebp - 0x2c], ecx
add edi, 2
jmp 0x8a1227
mov al, 0x7c
xchg byte [0xa42dd3], al
mov dword [ebp - 0x10], 3
lea eax, [ebp - 0x1dc]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x20], 1
mov dword [ebp - 0x10], 3
lea ecx, [ebp - 0xe4]
push 0xa42dc0
call fcn.0076f010
lea ecx, [ebp - 0x1dc]
mov dword [ebp - 0x40], ecx
mov byte [ebp - 0x1f], 1
mov dword [ebp - 0x10], 4
lea eax, [ebp - 0xec]
lea edx, [ebp - 0x60]
push eax
push edx
call fcn.008a7800
nop
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0xcc], 0x8b3390
mov dword [ebp - 0xc8], 0xa
movzx eax, byte [0xa42df0]
cmp al, 0x23
je 0x8a13be
mov cl, 0xd9
mov al, 0x22
lock cmpxchg byte [0xa42df0], cl
je 0x8a1332
cmp al, 0x23
jne 0x8a131d
jmp 0x8a13be
mov ecx, 0xfffffff0
lea eax, [0x3bb37452]
mov dword [ebp - 0x2c], eax
mov edx, 0xc4e82e4c
lea eax, [0x3bb37453]
mov dword [ebp - 0x30], eax
mov esi, 0xc4e82e4b
mov eax, edx
mov dword [ebp - 0x34], edx
mov edi, 0x88888889
mul edi
mov ebx, edx
mov eax, esi
mul edi
shr edx, 3
lea eax, [edx + edx*4]
lea eax, [eax + eax*2]
mov edi, dword [ebp - 0x30]
movzx eax, byte [edi + eax]
xor al, 0x6a
add byte [ecx + 0xa42df0], al
shr ebx, 3
lea eax, [ebx + ebx*4]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + eax]
xor al, 0x6a
add byte [ecx + 0xa42df1], al
add edx, 0xfffffffe
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x34]
add edx, 2
add edi, 0xfffffffe
mov dword [ebp - 0x30], edi
add esi, 2
add ecx, 2
jne 0x8a1353
mov al, 0x23
xchg byte [0xa42df0], al
mov dword [ebp - 0x10], 4
lea eax, [ebp - 0x1b8]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x1f], 1
mov dword [ebp - 0x10], 4
lea ecx, [ebp - 0xc4]
push 0xa42de0
call fcn.0076f010
lea ecx, [ebp - 0x1b8]
mov dword [ebp - 0x3c], ecx
mov byte [ebp - 0x1e], 1
mov dword [ebp - 0x10], 5
lea eax, [ebp - 0xcc]
lea edx, [ebp - 0x5c]
push eax
push edx
call fcn.008a7800
nop
mov dword [ebp - 0x58], 0x13
mov dword [ebp - 0xac], 0x8b15a0
mov dword [ebp - 0xa8], 0xa
lea ecx, [ebp - 0xa4]
movzx eax, byte [0xa42e09]
cmp al, 0x9a
je 0x8a1476
mov dl, 0x26
mov al, 0x17
lock cmpxchg byte [0xa42e09], dl
je 0x8a1447
cmp al, 0x9a
jne 0x8a1435
jmp 0x8a1476
nop
movq xmm0, qword [0xa42e00]
paddb xmm0, xmmword [0x9b9c50]
movq qword [0xa42e00], xmm0
add byte [0xa42e08], 0xd
mov al, 0x9a
xchg byte [0xa42e09], al
mov dword [ebp - 0x10], 5
lea eax, [ebp - 0x194]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x1e], 1
mov dword [ebp - 0x10], 5
push 0xa42e00
call fcn.0076f010
lea ecx, [ebp - 0x194]
mov dword [ebp - 0x38], ecx
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 6
lea eax, [ebp - 0xac]
lea edx, [ebp - 0x58]
push eax
push edx
call fcn.008a7800
nop
mov dword [ebp - 0x54], 0x14
mov dword [ebp - 0x8c], 0x8b2a60
mov dword [ebp - 0x88], 0xa
lea ecx, [ebp - 0x84]
movzx eax, byte [0xa42e20]
cmp al, 0x51
je 0x8a1544
mov dl, 0xa1
mov al, 0xbc
lock cmpxchg byte [0xa42e20], dl
je 0x8a14f9
cmp al, 0x51
jne 0x8a14e7
jmp 0x8a1544
mov eax, 6
mov edx, eax
neg edx
and edx, 0xe
movzx edx, byte [edx + 0x9ba2a0]
xor dl, 0x37
add byte [eax + 0xa42e0a], dl
mov edx, eax
and edx, 0xe
xor edx, 0xf
movzx edx, byte [edx + 0x9ba2a0]
xor dl, 0x37
add byte [eax + 0xa42e0b], dl
add eax, 2
cmp eax, 0x16
jne 0x8a14fe
mov al, 0x51
xchg byte [0xa42e20], al
mov dword [ebp - 0x10], 6
lea eax, [ebp - 0x170]
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 6
push 0xa42e10
call fcn.0076f010
nop
mov byte [ebp - 0x23], 1
mov dword [ebp - 0x10], 7
lea eax, [ebp - 0x8c]
lea edx, [ebp - 0x54]
lea ecx, [ebp - 0x170]
push eax
push edx
call fcn.008a7800
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x10], 8
mov ecx, 0xa58504
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.008a7a20
nop
mov eax, dword [0xa43304]
mov esi, dword [0xa432f0]
mov edi, 0xca62
sub edi, dword [ebp - 0x28]
sub esi, edi
add esi, eax
mov dword [ebp - 0x10], 0xffffffff
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x170]
call esi
mov eax, dword [0xa43304]
mov esi, dword [0xa432f0]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x194]
call esi
mov eax, dword [0xa43304]
mov esi, dword [0xa432f0]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x1b8]
call esi
mov eax, dword [0xa43304]
mov esi, dword [0xa432f0]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x1dc]
call esi
mov eax, dword [0xa43304]
mov esi, dword [0xa432f0]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x200]
call esi
mov eax, dword [0xa43304]
mov esi, dword [0xa432f0]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x224]
call esi
mov eax, dword [0xa43304]
mov esi, dword [0xa432f0]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x248]
call esi
mov eax, dword [0xa43300]
mov esi, dword [0xa432f4]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x8c]
call esi
mov eax, dword [0xa43300]
mov esi, dword [0xa432f4]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0xac]
call esi
mov eax, dword [0xa43300]
mov esi, dword [0xa432f4]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0xcc]
call esi
mov eax, dword [0xa43300]
mov esi, dword [0xa432f4]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0xec]
call esi
mov eax, dword [0xa43300]
mov esi, dword [0xa432f4]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x10c]
call esi
mov eax, dword [0xa43300]
mov esi, dword [0xa432f4]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x12c]
call esi
mov eax, dword [0xa43300]
mov esi, dword [0xa432f4]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x14c]
call esi
push 0x8a93b0
call fcn.008ea168
add esp, 4
push 0xa58524
call fcn.008ea2e0
add esp, 4
jmp 0x8a0ea5