Function at 0x8b5f10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xb8
nop
mov edi, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x8b6770
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.008b6760
mov edx, dword [0xa461c0]
mov ecx, dword [0xa461a0]
mov esi, 0x32c5
sub esi, eax
mov dword [ebp - 0x38], esi
sub ecx, esi
add ecx, edx
call dword [0xa0535c]
call ecx
mov ebx, eax
lea eax, [edi + 4]
mov dword [ebp - 0x24], eax
mov dword [edi + 8], 0
mov esi, ebx
xor esi, 0xbb6367e8
push esi
call fcn.008ea17d
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [edi + 4], eax
lea ecx, [edi + 0xc]
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov edx, ebx
xor edx, 0xbb6367ff
mov dword [edi + 0x18], edx
mov dword [ebp - 0x2c], ebx
xor ebx, 0xbb6367f0
mov dword [ebp - 0x28], ebx
mov dword [edi + 0x1c], ebx
mov dword [edi], 0x3f800000
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x20], ecx
push eax
push esi
call fcn.006d5dc0
nop
mov eax, dword [0xa461e8]
xor eax, dword [ebp - 0x2c]
cmp eax, 0x29bb72fa
mov eax, dword [0x9badb0]
lea eax, [eax + 0x9badb0]
mov dword [ebp - 0xa4], eax
jne 0x8b6008
nop
mov dword [0xa461f0], 0xc293cba2
nop
mov eax, dword [0x9badc8]
mov dword [ebp - 0x58], eax
mov eax, 0x9badc0
add eax, dword [0x9badc0]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x2c]
mov eax, ecx
xor eax, 0xbb6367f7
mov dword [ebp - 0x64], eax
mov dword [ebp - 0xa8], eax
mov eax, ecx
xor eax, 0xbb6367f3
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xac], eax
movzx eax, byte [0xa4611c]
xor cl, 0x57
mov byte [ebp - 0x24], cl
cmp al, cl
je 0x8b60cf
mov eax, dword [ebp - 0x2c]
mov ecx, eax
xor cl, 0xcb
mov edx, eax
xor dl, 0xf7
mov eax, ecx
lock cmpxchg byte [0xa4611c], dl
je 0x8b6073
cmp al, byte [ebp - 0x24]
jne 0x8b6060
jmp 0x8b60cf
mov ecx, dword [ebp - 0x2c]
mov edi, ecx
xor edi, 0x8308a7d
mov ebx, ecx
xor ebx, 0xbb6367f4
xor esi, esi
nop dword [eax + eax]
lea eax, [esi + edi]
xor edx, edx
div ebx
movzx eax, byte [esi + 0xa46110]
xor al, byte [edx + 0x9badd0]
xor al, cl
xor al, 0x59
mov byte [esi + 0xa46110], al
mov eax, esi
xor eax, 1
and esi, 1
lea esi, [eax + esi*2]
cmp esi, ebx
jl 0x8b6090
nop
movzx eax, byte [ebp - 0x24]
xchg byte [0xa4611c], al
mov dword [ebp - 0x10], 0xffffffff
nop
mov eax, dword [0xa461d8]
mov ecx, dword [0xa461a8]
sub ecx, dword [ebp - 0x38]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa0535c]
lea esi, [ebp - 0xbc]
mov edi, dword [ebp - 0x20]
push edi
push 0xa46110
push esi
call ecx
add esp, 0xc
mov byte [ebp + edi - 0xbc], 0
mov dword [ebp - 0x10], 3
push esi
push dword [ebp + 0x14]
call fcn.008a5fa0
add esp, 8
nop
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x44], eax
movzx eax, byte [0xa56fa8]
mov byte [ebp - 0x2d], al
mov eax, dword [0xa461dc]
lea ecx, [eax + 1]
mov dword [0xa461dc], ecx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], ecx
test ecx, eax
nop
mov dword [ebp - 0x3c], 0
je 0x8b6239
nop
mov edx, dword [ebp - 0x44]
cmp edx, dword [ebp - 0x64]
seta al
or al, byte [0xa56fc2]
movzx ecx, byte [ebp - 0x2d]
or al, cl
test al, 1
je 0x8b654b
nop
mov eax, dword [ebp - 0x5c]
test dword [ebp - 0x60], eax
sete ch
mov esi, dword [ebp - 0x2c]
mov eax, esi
xor eax, 0xbb636807
mov dword [ebp - 0x20], eax
mov edi, esi
shr edi, 3
mov edx, esi
shl edx, 0x1d
mov eax, esi
xor eax, 0xfb766e80
xor edx, eax
xor edi, 0x41834ad8
mov ebx, dword [ebp - 0xbc]
mov dword [ebp - 0x28], ebx
mov ebx, dword [0x9badbc]
mov dword [ebp - 0x24], ebx
mov ebx, dword [0x9badb8]
sub ebx, edx
sbb dword [ebp - 0x24], edi
lea edx, [esi*4]
xor edx, 0xbb62b9c7
mov edi, dword [ebp - 0x40]
sub edi, eax
mov esi, dword [ebp - 0x3c]
sbb esi, edx
xor edi, ebx
xor esi, dword [ebp - 0x24]
or esi, edi
setne al
and al, ch
or cl, al
mov eax, dword [ebp - 0x44]
lea edx, [eax + 1]
and cl, 1
cmp edx, dword [ebp - 0x20]
mov byte [0xa56fa8], cl
jbe 0x8b653d
nop
mov edx, dword [ebp - 0x28]
mov esi, dword [edx - 4]
mov ecx, dword [ebp - 0x2c]
mov eax, ecx
xor eax, 0x449c9804
add eax, edx
sub eax, esi
mov edx, ecx
xor edx, 0xbb6367d8
cmp eax, edx
jae 0x8b6652
xor ecx, 0xbb6367dc
mov edx, dword [ebp - 0x44]
add edx, ecx
jmp 0x8b6540
nop
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
cmp dword [ebp - 0x58], 0
jle 0x8b663f
add ecx, eax
mov dword [ebp - 0x34], ecx
mov eax, dword [0xa461ec]
mov edx, dword [ebp - 0x2c]
xor eax, edx
mov dword [ebp - 0xa0], eax
mov esi, edx
shr esi, 5
mov eax, edx
shl eax, 0x1b
xor eax, edx
mov dword [ebp - 0x4c], eax
xor eax, 0xa55774d8
mov dword [ebp - 0x24], eax
xor esi, 0xe4947620
mov ecx, edx
shr ecx, 4
mov ebx, edx
shl ebx, 0x1c
xor ebx, edx
mov eax, ebx
xor eax, 0x1aa88b27
mov edi, ecx
xor edi, 0x1506a49f
add eax, dword [ebp - 0x24]
adc edi, esi
add eax, 1
mov dword [ebp - 0x90], eax
adc edi, 0
mov dword [ebp - 0x8c], edi
mov eax, edx
shl eax, 4
xor eax, 0x96fce680
mov esi, edx
xor esi, 0x7e918dc0
xor ebx, 0x16e723f
xor ecx, 0xd4835080
add ebx, esi
adc ecx, eax
add ebx, 1
mov dword [ebp - 0x94], ebx
adc ecx, 0
mov dword [ebp - 0x98], ecx
mov eax, edx
shr eax, 1
mov dword [ebp - 0x88], eax
mov eax, edx
shl eax, 0x1f
xor eax, edx
mov dword [ebp - 0x84], eax
lea eax, [edx + edx]
xor eax, 0x76c6cff0
mov dword [ebp - 0x80], eax
mov eax, dword [0xa461f0]
xor eax, edx
mov dword [ebp - 0x7c], eax
xor dword [ebp - 0x4c], 0x7b6367fb
lea eax, [edx*8]
xor eax, 0xe0ad3fab
mov dword [ebp - 0x6c], eax
mov eax, edx
xor eax, 0x1a6f3a7e
lea ecx, [edx*4]
xor ecx, 0xd63b9f8b
mov dword [ebp - 0x68], eax
add eax, 0xffffffff
mov dword [ebp - 0x74], eax
adc ecx, 0xffffffff
mov dword [ebp - 0x78], ecx
xor edx, 0xbb6367fc
sub edx, dword [ebp - 0x28]
mov dword [ebp - 0x70], edx
xor esi, esi
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x54], 0
jmp 0x8b6395
mov esi, dword [ebp - 0x24]
xor dword [ebp - 0x3c], edx
xor dword [ebp - 0x40], edi
add esi, dword [ebp - 0x28]
cmp esi, dword [ebp - 0x58]
jge 0x8b615c
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x24], esi
lea ecx, [eax + esi]
cmp dword [ebp - 0xa0], 0x22489349
mov dword [ebp - 0x20], ecx
jne 0x8b63f0
mov eax, ecx
neg eax
mov ecx, 0
sbb ecx, ecx
mov ebx, dword [ebp - 0x48]
mov edx, ebx
xor edx, ecx
mov edi, dword [ebp - 0x34]
mov esi, edi
xor esi, eax
and eax, edi
and ecx, ebx
shld ecx, eax, 1
add eax, eax
add eax, esi
adc ecx, edx
cmp eax, dword [ebp - 0x28]
sbb ecx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x20]
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
jl 0x8b64a5
jmp 0x8b6380
mov eax, ecx
mul ecx
mov esi, eax
neg esi
mov ebx, 0
sbb ebx, edx
shld ebx, esi, cl
shl esi, cl
test cl, 0x20
cmovne ebx, esi
mov eax, 0
cmovne esi, eax
sub esi, ecx
sbb ebx, 0
mov ecx, dword [ebp - 0x90]
add ecx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x8c]
adc edi, dword [ebp - 0x48]
sub ecx, esi
sbb edi, ebx
mov eax, ecx
mul esi
imul ecx, ebx
add edx, ecx
imul edi, esi
add edx, edi
mov ecx, eax
mov dword [ebp - 0x9c], eax
sub esi, eax
sbb ebx, edx
mov eax, dword [ebp - 0x94]
add eax, ecx
mov ecx, dword [ebp - 0x98]
adc ecx, edx
mov edi, edx
sub eax, esi
sbb ecx, ebx
imul ecx, esi
imul ebx, eax
mul esi
add edx, ebx
add edx, ecx
add eax, dword [ebp - 0x9c]
adc edx, edi
xor edx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x84]
xor ecx, eax
xor edx, 0x5db1b3fc
xor ecx, 0xbb6367f0
or ecx, edx
mov dword [0xa461e8], 0xe05776a0
mov ecx, dword [ebp - 0x20]
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
jne 0x8b6380
cmp dword [ebp - 0x7c], 0x37f59acf
jne 0x8b64c0
nop
mov dword [0xa461e0], 0xbe5956b8
jmp 0x8b64fa
mov dword [ebp - 0x20], edx
mov edx, eax
mov ecx, dword [ebp - 0x4c]
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne edx, ecx
xor ebx, ebx
mov ecx, edx
mov esi, 1
shld ebx, esi, cl
shl esi, cl
test dl, 0x20
mov edx, dword [ebp - 0x20]
cmovne ebx, esi
mov ecx, 0
cmovne esi, ecx
sub esi, dword [ebp - 0x68]
sbb ebx, dword [ebp - 0x6c]
nop
add esi, dword [ebp - 0x74]
adc ebx, dword [ebp - 0x78]
and edi, esi
mov dword [ebp - 0x20], edi
and edx, ebx
mov ebx, dword [ebp - 0x54]
lea edi, [ebx + 1]
mov esi, dword [ebp - 0x24]
add esi, dword [ebp - 0x70]
add esi, eax
mov eax, dword [ebp - 0x50]
mov ecx, edx
lea edx, [eax + ebx*4]
add edx, 4
add edx, dword [eax + ebx*4 + 4]
mov dword [ebp - 0x34], edx
mov edx, ecx
mov dword [ebp - 0x48], 0
nop
mov dword [ebp - 0x54], edi
mov edi, dword [ebp - 0x20]
jmp 0x8b6383
mov esi, dword [ebp - 0x28]
nop
push edx
push esi
call fcn.008ea1ad
add esp, 8
nop
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
nop
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x20], eax
nop dword [eax]
nop
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
cmp eax, dword [ebp - 0x34]
je 0x8b6627
nop
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x128]
mov eax, dword [eax + 0x12c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], eax
cmp esi, eax
je 0x8b65da
nop
mov eax, dword [ebp - 0x20]
lea ebx, [eax + 0xc]
mov dword [ebp - 0x10], 0xffffffff
nop
nop
mov eax, dword [0xa461cc]
mov edi, dword [0xa461b4]
sub edi, dword [ebp - 0x38]
add edi, eax
mov ecx, edi
call dword [0xa0535c]
mov ecx, esi
push 0
push ebx
call edi
cmp eax, 0xffffffff
jne 0x8b65d0
add esi, 0x18
cmp esi, dword [ebp - 0x24]
jne 0x8b65a0
jmp 0x8b65da
nop
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x28], eax
nop
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 8]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x10], 2
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.008aa180
nop
push dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
push dword [eax + 8]
push dword [ebp + 0x14]
call fcn.008a6330
add esp, 0xc
jmp 0x8b6560
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
add esp, 0xb8
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
jmp 0x8b615c
nop
mov dword [ebp - 0x10], 1
call fcn.008cd651
nop
push ebp
sub esp, 0xc
add ebp, 0xc
call fcn.00901a00
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
nop
mov eax, dword [0xa461c4]
mov esi, dword [0xa461b0]
sub esi, dword [ebp - 0x38]
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0xbc]
call esi
add esp, 0xc
pop ebp
ret