Function at 0x8e6200
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x94
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x8e6a30
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
call fcn.008e6a20
mov edx, dword [0xa7b474]
mov ecx, dword [0xa7b448]
mov ebx, 0xffff3ed3
sub ebx, eax
sub ecx, ebx
add ecx, edx
call dword [0xa37360]
call ecx
mov edi, eax
mov dword [ebp - 0x98], 0
mov eax, dword [0xa7b478]
mov dword [ebp - 0x34], eax
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x9ecb6c]
mov dword [ebp - 0x3c], eax
mov eax, dword [0xa7b47c]
add eax, dword [eax]
mov dword [ebp - 0x24], eax
mov eax, dword [0xa7b460]
mov esi, dword [0xa7b450]
mov dword [ebp - 0x54], ebx
sub esi, ebx
add esi, eax
mov ecx, esi
call dword [0xa37360]
lea eax, [ebp - 0xa0]
lea edx, [ebp - 0x98]
mov ecx, dword [ebp + 8]
push eax
push edx
call esi
mov eax, edi
xor eax, 0x9edfaf00
mov ecx, edi
xor ecx, 0x9edfaf04
mov edx, edi
xor edx, 0x9edfaf1f
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x68], edx
mov dword [ebp + ecx - 0x98], edx
mov ecx, edi
xor ecx, 0x9edfaf1b
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x38], ecx
mov dword [ebp + eax - 0x98], ecx
movzx eax, byte [0xa7b3bc]
mov dword [ebp - 0x30], edi
mov ecx, edi
xor cl, 0x48
mov byte [ebp - 0x20], cl
cmp al, cl
je 0x8e6394
mov eax, dword [ebp - 0x30]
mov ecx, eax
xor cl, 0x6c
mov edx, eax
xor dl, 0x5b
nop dword [eax]
mov eax, ecx
lock cmpxchg byte [0xa7b3bc], dl
je 0x8e6323
cmp al, byte [ebp - 0x20]
jne 0x8e6310
jmp 0x8e6394
mov ebx, dword [ebp - 0x30]
mov eax, ebx
xor eax, 0x3a851a68
mov dword [ebp - 0x28], eax
mov eax, ebx
xor eax, 0x9edfaf1a
mov dword [ebp - 0x40], eax
mov esi, ebx
xor esi, 0xd61a598d
mov ecx, ebx
xor ecx, 0x9edfaf1c
xor edi, edi
nop dword [eax]
nop
mov eax, dword [ebp - 0x28]
add eax, edi
xor edx, edx
div dword [ebp - 0x40]
movzx eax, byte [edi + 0xa7b3b0]
xor al, byte [edx + 0x9ecb80]
xor al, bl
xor al, 0x92
mov byte [edi + 0xa7b3b0], al
sub edi, esi
inc edi
mov eax, edi
xor eax, esi
and edi, esi
lea edi, [eax + edi*2]
cmp edi, ecx
jl 0x8e6350
nop
movzx eax, byte [ebp - 0x20]
xchg byte [0xa7b3bc], al
mov dword [ebp - 0x10], 0xffffffff
nop
mov eax, dword [0xa7b470]
mov ecx, dword [0xa7b454]
sub ecx, dword [ebp - 0x54]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa37360]
mov edi, dword [ebp - 0x38]
push edi
push 0xa7b3b0
lea esi, [ebp - 0x98]
push esi
call ecx
add esp, 0xc
mov byte [ebp + edi - 0x98], 0
mov dword [ebp - 0x10], 2
push esi
push dword [ebp + 0x14]
call fcn.008d56d0
add esp, 8
nop
mov eax, dword [ebp - 0x74]
mov esi, dword [ebp + eax - 0x98]
cmp esi, dword [ebp - 0x68]
jbe 0x8e6678
nop
mov edx, dword [ebp - 0x30]
mov eax, edx
xor eax, 0xc48b9c3f
mov ecx, edx
xor ecx, 0x3b7463c0
add ecx, eax
mov dword [ebp - 0x7c], esi
lea eax, [esi + ecx]
add eax, 2
mov dword [ebp - 0x44], eax
xor edx, 0x9edfa0ef
mov dword [ebp - 0x5c], edx
mov ecx, dword [0xa8daf0]
lea eax, [ecx + 1]
mov dword [0xa8daf0], eax
xor edi, edi
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ecx
test eax, ecx
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x48], eax
je 0x8e6523
nop
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x44], eax
seta cl
movzx eax, byte [0xa8c618]
or cl, al
test cl, 1
je 0x8e651b
nop
mov ebx, dword [ebp - 0x30]
mov ecx, ebx
xor ecx, 0x612050ec
mov esi, dword [ebp - 0x48]
lea edx, [esi + ecx]
mov esi, dword [esi + ecx]
mov dword [ebp - 0x48], esi
sub edx, esi
mov ecx, ebx
xor ecx, 0x9edfaf30
cmp edx, ecx
jae 0x8e6992
mov ecx, ebx
xor ecx, 0x9edfaf34
mov dword [ebp - 0x20], ecx
mov ecx, dword [0xa7b484]
xor ecx, ebx
cmp ecx, 0x964bc66a
mov esi, dword [0x9ecb74]
jne 0x8e663e
nop
mov dword [ebp - 0x28], esi
mov esi, dword [ebp - 0x70]
and esi, dword [ebp - 0x6c]
mov edx, ebx
xor edx, 0xc64c7274
mov ecx, ebx
xor ecx, 0x39b38d8b
add ecx, edx
cmp esi, 1
sbb ecx, 0xffffffff
mov edx, ebx
xor edx, 0x9a5d0338
mov esi, dword [ebp - 0x28]
add esi, edx
neg esi
add edx, edi
xor ebx, 0x161c2153
mov edi, ebx
xor edi, esi
add edx, edi
and esi, ebx
add ebx, dword [ebp - 0x28]
lea edx, [edx + esi*2]
sub ebx, edx
add ecx, 2
shl ebx, cl
and ebx, ecx
mov dword [0xa7b488], 0xb58d377a
mov dword [0xa7b480], 0x820d827d
jmp 0x8e6656
mov edx, dword [ebp - 0x44]
jmp 0x8e666b
nop
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
cmp dword [ebp - 0x3c], 0
jle 0x8e6447
nop
mov edi, dword [ebp - 0x30]
mov eax, edi
shl eax, 0x1e
mov esi, edi
shl esi, 0x1b
mov edx, edi
shl edx, 0x1f
xor esi, edi
xor edx, edi
xor esi, 0xf7450944
xor edx, 0x407f9db6
add edx, esi
mov ebx, edi
shl ebx, 0x1d
xor eax, edi
xor ebx, edi
mov esi, ebx
xor esi, 0x88baf6bb
xor eax, 0xbf806249
add eax, esi
add eax, edx
mov edx, dword [ebp - 0x2c]
sub edx, eax
mov esi, edi
shr esi, 3
mov eax, dword [ebp - 0x34]
add eax, edx
add eax, 0xfffffffe
mov dword [ebp - 0x38], eax
add ecx, dword [ebp - 0x24]
xor ebx, 0x9edfaf14
mov dword [ebp - 0x28], ebx
xor esi, 0x13dbf5e2
mov dword [ebp - 0x40], esi
mov eax, dword [0xa7b480]
xor eax, edi
mov edx, edi
xor edx, 0x8db4f79e
mov dword [ebp - 0x4c], edx
mov edx, edi
xor edx, 0x9edfaf14
cmp eax, 0x2c876ae2
nop
mov dword [ebp - 0x34], edx
jne 0x8e68bf
lea eax, [edx + 2]
mov dword [ebp - 0x2c], eax
xor esi, esi
mov dword [ebp - 0x20], 0
xor edx, edx
mov ebx, dword [ebp - 0x38]
jmp 0x8e65ff
mov eax, dword [ebp - 0x2c]
sub eax, esi
nop
mov dword [0xa7b484], 0x729566f9
imul eax, dword [ebp - 0x34]
cmp dword [ebp - 0x3c], eax
mov esi, eax
jle 0x8e6447
lea eax, [ebx + esi]
mov edi, ecx
sub edi, eax
mov eax, dword [ebp - 0x20]
sbb eax, 0
cmp edi, dword [ebp - 0x28]
sbb eax, dword [ebp - 0x40]
mov eax, dword [ebx + esi]
jge 0x8e65e0
nop
mov ecx, dword [ebp - 0x4c]
add edx, ecx
mov eax, edx
xor eax, 1
and edx, 1
sub eax, ecx
lea edx, [eax + edx*2]
add esi, edi
mov eax, dword [ebp - 0x24]
lea ecx, [eax + edx*4]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x20], 0
jmp 0x8e65e0
sub esi, edi
xor ecx, ecx
xor ebx, ebx
mov edx, dword [ebp - 0x6c]
test dword [ebp - 0x70], edx
cmove ecx, esi
setne bl
neg ebx
xor ebx, esi
and ebx, ecx
nop
mov edx, dword [ebp - 0x7c]
add edx, dword [ebp - 0x20]
test ebx, ebx
setne cl
or al, cl
and al, 1
mov byte [0xa8c618], al
nop
push edx
push dword [ebp - 0x48]
call fcn.0091d82d
add esp, 8
nop
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x30]
mov edx, ecx
xor edx, 0x9edfaf14
mov dword [ebp - 0x60], edx
mov eax, dword [eax + edx]
mov edx, ecx
xor edx, 0x9edfae38
mov dword [ebp - 0x50], edx
mov edx, ecx
xor edx, 0x9edfae3c
mov dword [ebp - 0x48], edx
mov edx, ecx
xor edx, 0x9edfaf18
mov dword [ebp - 0x4c], edx
mov edx, ecx
xor edx, 0x9edfaf1c
mov dword [ebp - 0x44], edx
mov edx, ecx
xor edx, 0x9edfaf0c
mov dword [ebp - 0x5c], edx
mov edx, ecx
xor edx, 0x9edfaf30
mov dword [ebp - 0x58], edx
mov edx, ecx
xor edx, 0x9edfaf08
mov dword [ebp - 0x38], edx
xor ecx, 0x9edfaf34
mov dword [ebp - 0x30], ecx
nop
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x24], eax
nop word [eax + eax]
nop
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp - 0x64]
je 0x8e68a7
nop
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + eax]
mov eax, dword [ebp - 0x48]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x3c], eax
cmp edi, eax
je 0x8e6850
nop
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x24]
cmp dword [edx + ecx], eax
jbe 0x8e6740
mov eax, dword [ebp - 0x44]
mov eax, dword [edx + eax]
jmp 0x8e6745
mov eax, dword [ebp - 0x44]
add eax, edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [edx + eax]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x8e679c
nop word cs:[eax + eax]
nop
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [edi + eax]
jbe 0x8e6838
add edi, dword [ebp - 0x38]
cmp edi, dword [ebp - 0x3c]
jne 0x8e6760
jmp 0x8e6850
sub esi, dword [ebp - 0x34]
cmp esi, 0xffffffff
jne 0x8e6838
nop dword [eax]
add edi, dword [ebp - 0x38]
cmp edi, dword [ebp - 0x3c]
je 0x8e6850
nop
mov eax, dword [ebp - 0x78]
mov ebx, dword [edi + eax]
sub ebx, dword [ebp - 0x20]
jb 0x8e6790
mov edx, edi
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x68]
cmp dword [edi + eax], ecx
jbe 0x8e67b7
mov edx, dword [edi]
mov eax, dword [ebp - 0x28]
movsx ecx, byte [eax]
lea eax, [ebx + 1]
push eax
mov dword [ebp - 0x40], ecx
push ecx
mov dword [ebp - 0x34], edx
push edx
call fcn.00937180
add esp, 0xc
test eax, eax
je 0x8e6790
mov esi, eax
mov eax, dword [ebp - 0x34]
add ebx, eax
inc ebx
mov dword [ebp - 0x10], 0xffffffff
nop word cs:[eax + eax]
nop
mov eax, dword [0xa7b46c]
mov ecx, dword [0xa7b444]
sub ecx, dword [ebp - 0x54]
add ecx, eax
call dword [0xa37360]
push dword [ebp - 0x20]
push dword [ebp - 0x28]
push esi
call ecx
add esp, 0xc
test eax, eax
je 0x8e677d
inc esi
mov eax, ebx
sub eax, esi
push eax
push dword [ebp - 0x40]
push esi
call fcn.00937180
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x8e67f0
jmp 0x8e6790
nop
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 1
nop dword [eax]
nop
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp + eax - 0x98], ecx
mov dword [ebp - 0x10], 1
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.008d96c0
nop
push dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x24]
push dword [ecx + eax]
push dword [ebp + 0x14]
call fcn.008d5b90
add esp, 0xc
jmp 0x8e66f0
nop
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
add esp, 0x94
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, edi
xor eax, 0x9edfaf13
mov dword [ebp - 0x58], eax
mov eax, edi
xor eax, 0xe896ab
xor edi, 0xff176954
add edi, eax
mov dword [ebp - 0x80], edi
mov eax, dword [0xa8c5bc]
mov dword [ebp - 0x64], eax
not eax
mov dword [ebp - 0x60], eax
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x50], 0
jmp 0x8e692e
mov eax, dword [ebp - 0x64]
mov edx, eax
and edx, edi
not edi
mov esi, dword [ebp - 0x60]
and esi, edi
or esi, edx
mov edx, eax
and edx, edi
lea edx, [esi + edx*2]
mov eax, dword [ebp - 0x20]
and edx, eax
or edi, eax
not edi
or edi, edx
add ebx, dword [ebp - 0x34]
cmp ebx, dword [ebp - 0x3c]
jge 0x8e6447
nop
mov eax, dword [ebp - 0x38]
lea esi, [eax + ebx]
mov edx, ecx
sub edx, esi
mov esi, dword [ebp - 0x2c]
sbb esi, 0
cmp edx, dword [ebp - 0x28]
sbb esi, dword [ebp - 0x40]
mov eax, dword [eax + ebx]
mov dword [ebp - 0x20], eax
jge 0x8e6900
mov eax, edx
mov ecx, dword [ebp - 0x58]
shl eax, cl
mov esi, 1
mov ecx, eax
shl esi, cl
add esi, dword [ebp - 0x80]
and dword [ebp - 0x20], esi
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x50]
add esi, ecx
mov eax, esi
xor eax, 1
and esi, 1
sub eax, ecx
lea esi, [eax + esi*2]
add ebx, edx
mov eax, dword [ebp - 0x24]
lea ecx, [eax + esi*4]
mov dword [ebp - 0x50], esi
add ecx, dword [eax + esi*4]
mov dword [ebp - 0x2c], 0
jmp 0x8e6900
nop
mov dword [ebp - 0x10], 0
call fcn.00900ce1
nop
push ebp
sub esp, 0xc
add ebp, 0xc
call fcn.009350a0
nop dword [eax]
push ebp
sub esp, 0xc
add ebp, 0xc
nop
mov eax, dword [0xa7b468]
mov esi, dword [0xa7b440]
sub esi, dword [ebp - 0x54]
add esi, eax
mov ecx, esi
call dword [0xa37360]
lea ecx, [ebp - 0x98]
call esi
add esp, 0xc
pop ebp
ret