Function at 0x100c09f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov edi, dword [esp + 0x24]
mov esi, ecx
push 0x98
push 0
push edi
call fcn.1019fc10
add esp, 0xc
mov ecx, dword [esi]
mov dword [esp + 8], esi
mov eax, dword [ecx + 0x16344]
test eax, eax
je 0x100c0a36
cmp byte [eax + 0x238], 0
je 0x100c0a36
cmp byte [0x1020d937], 0
setne al
mov dword [esp + 4], eax
jmp 0x100c0a3e
mov dword [esp + 4], 0
xor esi, esi
inc esi
push esi
call fcn.100b3334
mov ebp, dword [esp + 8]
mov ebx, eax
mov ecx, dword [ebp]
push esi
call fcn.100b335c
mov ecx, dword [ebp]
add al, al
mov byte [esp + 0xc], al
push 0
call fcn.100b338a
mov bh, al
mov ecx, dword [ebp]
shl bh, 2
or bh, bl
push esi
call fcn.100b338a
mov bl, al
shl bl, 3
or bl, bh
or bl, byte [esp + 0xc]
mov byte [edi], bl
mov ecx, dword [ebp]
call fcn.100b36e2
mov bh, 0x10
test al, al
jne 0x100c0aa5
mov ecx, dword [ebp]
call fcn.100b36aa
test eax, eax
setne bh
or bh, byte [esp + 4]
shl bh, 4
mov ecx, dword [ebp]
call fcn.100b3e74
mov ecx, dword [esp + 4]
or cl, al
shl cl, 5
mov esi, ecx
mov ecx, dword [ebp]
call fcn.100b3e74
mov ecx, dword [ebp]
shl al, 6
mov byte [esp + 4], al
call fcn.100b383c
or bh, bl
shl al, 7
or bh, byte [esp + 4]
or bh, al
mov eax, esi
or bh, al
mov byte [edi], bh
mov ecx, dword [ebp]
mov esi, dword [ecx + 0x54]
and esi, 3
shl esi, 0xc
mov dword [edi + 4], esi
call fcn.100b372e
mov ecx, dword [ebp]
test al, al
je 0x100c0b00
mov dl, byte [ecx + 0x24]
jmp 0x100c0b02
xor edx, edx
xorps xmm0, xmm0
ucomiss xmm0, dword [ecx + 0x60]
setp ah
setne al
or al, ah
add al, al
or al, dl
mov byte [edi + 8], al
mov edx, dword [ecx + 0x16344]
test edx, edx
je 0x100c0b2d
mov dl, byte [edx + 0x239]
shl dl, 2
jmp 0x100c0b2f
xor edx, edx
or dl, al
mov eax, esi
or eax, 0x880
mov byte [edi + 8], dl
mov dword [edi + 4], eax
call fcn.100b4226
and eax, 7
mov dword [edi + 0xc], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov al, byte [ecx + 0x163e0]
mov byte [edi + 0x10], al
mov edx, dword [ecx + 0x16348]
test edx, edx
je 0x100c0b7d
mov eax, dword [edx + 0x2f8]
mov ecx, dword [edx + 0x2fc]
and eax, 0x3f
and ecx, 0x3f
shl ecx, 6
or eax, esi
or eax, ecx
jmp 0x100c0b8e
call fcn.100b363a
test al, al
je 0x100c0b91
or esi, 0x2c0
mov eax, esi
mov dword [edi + 4], eax
lea ebp, [edi + 0x11]
push 0x80
push 0x22
push ebp
call fcn.1019fc10
add esp, 0xc
mov esi, dword [esp + 8]
mov ecx, dword [esi]
push 1
call fcn.100b3334
mov ecx, dword [esi]
mov ebx, eax
call fcn.100b383c
mov ecx, dword [esi]
mov bh, al
xor eax, eax
mov byte [esp + 1], bl
cmp dword [ecx + 0x50], eax
sete dl
or dl, bl
cmp dword [ecx + 0x16348], eax
mov byte [esp + 3], dl
je 0x100c0cc1
cmp dword [ecx + 0x16344], 0
je 0x100c0cc1
xor bh, 1
xor eax, eax
and bh, byte [esp + 1]
mov byte [esp + 2], bh
mov dword [esp + 4], eax
lea eax, [eax - 2]
xor edi, edi
mov dword [esp + 0xc], eax
mov esi, dword [esp + 8]
mov ecx, dword [esi]
push edi
push dword [esp + 0x10]
call fcn.100b385a
mov ecx, dword [esi]
movzx eax, al
mov esi, edi
sub esi, eax
mov ecx, dword [ecx + 0x16344]
push esi
push dword [esp + 8]
call fcn.10103112
cmp byte [eax], 0xff
je 0x100c0ca4
mov ebp, eax
xor ebx, ebx
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x16348]
push esi
push ebx
call fcn.1015011a
mov cl, byte [ebp]
cmp cl, byte [eax]
jne 0x100c0c57
mov dl, byte [ebp + 1]
cmp dl, byte [eax + 1]
je 0x100c0c65
inc ebx
cmp ebx, 0x22
jb 0x100c0c35
mov edx, dword [esp + 4]
mov ebx, edx
jmp 0x100c0c69
mov edx, dword [esp + 4]
cmp cl, 0xa
je 0x100c0c7d
mov al, byte [esp + 1]
cmp cl, 5
jne 0x100c0c88
mov al, byte [esp + 2]
jmp 0x100c0c88
cmp byte [ebp + 3], 0
setne al
or al, byte [esp + 3]
mov ecx, dword [esp + 0x24]
and bl, 0x3f
shl al, 6
or al, bl
lea ecx, [ecx + edx*4]
mov dl, byte [edi + ecx + 0x11]
and dl, 0x80
or al, dl
mov byte [edi + ecx + 0x11], al
inc edi
cmp edi, 4
jne 0x100c0c03
mov eax, dword [esp + 4]
inc eax
cmp eax, 0x20
jne 0x100c0bf6
jmp 0x100c0e02
cmp byte [ecx + 0x16274], 0
je 0x100c0d44
cmp dword [ecx + 0x16344], 0
je 0x100c0d44
xor bh, 1
xor esi, esi
and bh, byte [esp + 1]
mov byte [esp + 2], bh
mov edi, dword [esp + 8]
xor ebx, ebx
mov eax, dword [edi]
mov ecx, dword [eax + 0x16344]
push ebx
push esi
call fcn.10103112
mov cl, byte [eax]
cmp cl, 5
je 0x100c0d09
cmp cl, 0xa
jne 0x100c0d30
mov dl, byte [esp + 3]
mov cl, 1
jmp 0x100c0d0f
mov dl, byte [esp + 2]
mov cl, 3
add cl, byte [eax + 1]
mov ch, byte [ebp + ebx]
and cl, 0x3f
and ch, 0x80
cmp byte [eax + 3], 0
setne al
or al, dl
shl al, 6
or al, cl
or al, ch
mov byte [ebp + ebx], al
inc ebx
cmp ebx, 4
jne 0x100c0ce6
inc esi
add ebp, 4
cmp esi, 0x20
jne 0x100c0ce0
jmp 0x100c0e02
call fcn.100b3628
movzx eax, ax
cmp eax, 0x2ff
ja 0x100c0e02
xor bh, 1
mov ebp, dword [esp + 0x24]
and bh, byte [esp + 1]
lea esi, [ebp + 0x19]
shl bh, 6
mov byte [esp + 2], bh
xor ebx, ebx
mov eax, ebx
xor edi, edi
add al, 3
and al, 0x3f
or al, byte [esp + 2]
mov byte [esp + 4], al
mov eax, dword [esp + 8]
mov ecx, dword [eax]
push edi
push ebx
call fcn.100b40e0
test al, al
je 0x100c0dad
mov eax, dword [esp + 8]
mov eax, dword [eax]
movzx eax, byte [eax + ebx + 0x16281]
bt eax, edi
setb al
shl al, 7
or al, byte [esp + 4]
mov byte [esi + edi], al
inc edi
cmp edi, 4
jne 0x100c0d7e
inc ebx
add esi, 4
cmp ebx, 8
jne 0x100c0d6e
shl byte [esp + 3], 6
lea esi, [ebp + 0x11]
xor ebx, ebx
mov eax, ebx
xor edi, edi
inc al
and al, 0x3f
or al, byte [esp + 3]
mov byte [esp + 4], al
mov eax, dword [esp + 8]
mov ecx, dword [eax]
push edi
push ebx
call fcn.100b40c2
test al, al
je 0x100c0df3
mov al, byte [esi + edi]
and al, 0x80
or al, byte [esp + 4]
mov byte [esi + edi], al
inc edi
cmp edi, 4
jne 0x100c0dd6
inc ebx
add esi, 4
cmp ebx, 2
jne 0x100c0dc6
mov eax, dword [esp + 8]
mov ecx, dword [eax]
call fcn.100b35a6
test al, al
mov eax, dword [esp + 0x24]
je 0x100c0e2a
mov cl, byte [eax + 0x39]
mov dl, byte [esp + 1]
and cl, 0x80
shl dl, 6
or dl, cl
or dl, 0xb
mov byte [eax + 0x39], dl
xor edx, edx
mov ecx, 0xffffff6c
xor edx, dword [eax + ecx + 0x94]
add ecx, 4
jne 0x100c0e31
mov dword [eax + 0x94], edx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret 4