Function at 0x100080ca
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x10027080]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push edi
push 6
xor edx, edx
mov esi, ecx
pop ecx
div ecx
mov eax, dword [ebp + 8]
push 3
pop ecx
mov dword [ebp - 0x58], edx
xor edx, edx
div ecx
mov edi, eax
cmp edi, 0x40
jle 0x100080ff
push 0x40
pop edi
push ebx
push edi
lea eax, [ebp - 0x44]
push esi
push eax
call fcn.10010a50
and dword [ebp - 0x50], 0
and dword [ebp - 0x4c], 0
add esp, 0xc
dec edi
mov dword [ebp - 0x54], edi
test edi, edi
jle 0x10008174
inc dword [ebp - 0x50]
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
mov cl, byte [ecx + 0x10028ab8]
lea eax, [ebp + ebx - 0x44]
xor byte [eax], cl
cmp dword [ebp - 0x50], 6
mov dl, byte [eax]
jge 0x10008174
and ebx, 0x80000007
jns 0x10008148
dec ebx
or ebx, 0xfffffff8
inc ebx
movzx edi, dl
mov ecx, ebx
shl edi, cl
test edi, edi
jne 0x10008165
mov cl, byte [ebp + 0xc]
sub cl, bl
add cl, 8
shr dl, cl
test dl, dl
jne 0x10008165
xor cl, cl
jmp 0x10008167
mov cl, 1
inc dword [ebp - 0x4c]
mov byte [eax], cl
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x54]
jl 0x1000811e
mov eax, dword [ebp + 0x10]
mov ecx, eax
shl ecx, 2
cmp dword [ebp - 0x58], 0
je 0x10008199
mov edi, dword [ebp + 0xc]
add edi, dword [0x1002a174]
push 0x48
xor edi, 0x13
pop edx
sub edx, edi
mov dword [0x1002a178], edx
add dword [0x1002a178], ecx
mov edi, eax
and edi, 0x80000001
jns 0x100081ae
dec edi
or edi, 0xfffffffe
inc edi
mov dword [ebp - 0x4c], eax
sar dword [ebp - 0x4c], 2
mov dword [ebp - 0x50], edi
test edi, edi
je 0x10008257
and dword [ebp - 0x5c], 0
xor ecx, ecx
cmp dword [ebp - 0x4c], ecx
jbe 0x1000824f
xor eax, eax
mov dword [ebp - 0x58], 0x10028be0
mov dword [ebp - 0x54], eax
jmp 0x100081e0
mov eax, dword [ebp - 0x54]
mov edx, ecx
and edx, 0x80000003
jns 0x100081ef
dec edx
or edx, 0xfffffffc
inc edx
jne 0x10008218
movzx edi, byte [eax + 0x10028abe]
mov eax, dword [ebp - 0x4c]
xor edx, edx
push 7
pop ebx
div ebx
add edx, ecx
cmp edx, edi
jne 0x10008246
cmp dword [ebp - 0x50], 0
je 0x10008213
inc byte [esi + ecx]
jmp 0x10008246
dec byte [esi + ecx]
jmp 0x10008246
mov dl, byte [eax + 0x10028ba6]
xor byte [esi + ecx], dl
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov edx, dword [edx]
mov ebx, dword [ebp - 0x5c]
cmp ebx, dword [edx*4 + 0x10028ba8]
jle 0x10008246
sub dword [ebp - 0x58], 4
dec eax
mov dword [ebp - 0x54], eax
add eax, 6
jns 0x1000824f
and dword [ebp - 0x5c], 0
mov edi, dword [ebp - 0x50]
inc ecx
cmp ecx, dword [ebp - 0x4c]
jb 0x100081dd
test edi, edi
je 0x100083b6
mov eax, dword [ebp - 0x4c]
add eax, 0xfffffff8
cmp eax, 0x5a
ja 0x10008329
mov ecx, 0x10028b18
xor edi, edi
cmp dword [ebp - 0x50], 0
je 0x100082c8
mov dl, byte [edi + 0x10028abf]
mov eax, dword [ecx]
add eax, esi
movzx ebx, dl
and ebx, 0x80000001
mov dword [ebp - 0x54], eax
mov al, byte [eax]
jns 0x10008292
dec ebx
or ebx, 0xfffffffe
inc ebx
jne 0x10008298
xor al, dl
jmp 0x1000829e
xor al, byte [edi + 0x10028ba7]
mov byte [ebp - 0x45], al
lea eax, [edi + 7]
push 3
cdq
pop ebx
idiv ebx
test edx, edx
jne 0x100082b2
add byte [ebp - 0x45], 2
mov eax, dword [ecx + 4]
mov al, byte [esi + eax]
mov edx, dword [ebp - 0x54]
mov byte [edx], al
mov eax, dword [ecx + 4]
mov dl, byte [ebp - 0x45]
mov byte [esi + eax], dl
jmp 0x10008318
mov eax, dword [ecx + 4]
add eax, esi
mov dword [ebp - 0x54], eax
mov al, byte [eax]
mov byte [ebp - 0x45], al
lea eax, [edi + 7]
cdq
push 3
pop ebx
idiv ebx
mov al, byte [ebp - 0x45]
test edx, edx
jne 0x100082e7
add al, 0xfe
mov dl, byte [edi + 0x10028abf]
movzx ebx, dl
and ebx, 0x80000001
jns 0x100082fd
dec ebx
or ebx, 0xfffffffe
inc ebx
jne 0x10008303
xor al, dl
jmp 0x10008309
xor al, byte [edi + 0x10028ba7]
mov edx, dword [ecx]
mov dl, byte [esi + edx]
mov ebx, dword [ebp - 0x54]
mov byte [ebx], dl
mov edx, dword [ecx]
mov byte [esi + edx], al
dec edi
lea eax, [edi + 7]
sub ecx, 8
test eax, eax
jns 0x1000826d
jmp 0x100083a5
cmp dword [ebp - 0x4c], 0x9e
jbe 0x10008398
push 0x10
mov eax, 0x10028b20
pop edx
cmp dword [ebp - 0x50], 0
mov ecx, edx
je 0x10008368
and ecx, 0x80000007
mov edi, dword [eax]
jns 0x10008351
dec ecx
or ecx, 0xfffffff8
inc ecx
mov ebx, dword [eax + 4]
mov cl, byte [ecx + 0x10028ab8]
xor cl, byte [edi + esi]
mov bl, byte [esi + ebx]
mov byte [edi + esi], bl
mov edi, dword [eax + 4]
jmp 0x1000838b
and ecx, 0x80000007
mov edi, dword [eax + 4]
jns 0x10008378
dec ecx
or ecx, 0xfffffff8
inc ecx
mov ebx, dword [eax]
mov cl, byte [ecx + 0x10028ab8]
xor cl, byte [edi + esi]
mov bl, byte [esi + ebx]
mov byte [edi + esi], bl
mov edi, dword [eax]
dec edx
add eax, 8
mov byte [esi + edi], cl
test edx, edx
jg 0x1000833a
jmp 0x100083a5
mov al, byte [0x10028abd]
add al, byte [0x10028ba2]
xor byte [esi], al
mov edi, dword [ebp - 0x50]
add dword [0x1002a178], edi
test edi, edi
je 0x100081c0
push 0x10
pop eax
xor ecx, ecx
pop ebx
mov dl, byte [ebp + ecx - 0x44]
xor dl, 0x32
mov byte [ecx + 0x100284f0], dl
inc ecx
cmp ecx, eax
jl 0x100083bc
mov esi, dword [0x10028818]
mov dword [0x1002a178], eax
mov eax, esi
cdq
push 5
pop edi
idiv edi
xor eax, eax
add ecx, edx
test ecx, ecx
jle 0x100083fd
cmp eax, 4
jge 0x100083f8
mov dl, al
add dl, dl
add dl, cl
mov byte [ebp + eax - 0x44], dl
inc eax
cmp eax, ecx
jl 0x100083e9
movzx eax, byte [0x10028510]
add eax, dword [0x10028814]
push 0xa
add eax, esi
add eax, ecx
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
inc eax
pop esi
add dl, byte [ebp - 0x42]
mov byte [0x100284f3], dl
call fcn.1000e2d0
leave
ret