Function at 0x100b0a5
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
lea eax, [ebx + 0x5b9]
push eax
mov esi, 0x101
push esi
lea edi, [ebx + 0x6ba]
push edi
call fcn.0100a1fa
push dword [ebp + 0xc]
push esi
push edi
call fcn.0100aeb9
lea edi, [esi + 0x7f]
push edi
mov esi, 0x8000
lea eax, [ebx + 0x6ba]
push esi
push eax
call dword [ebx + 0xc]
add esp, 0xc
mov dword [ebx + 0x88], eax
cmp eax, 0xffffffff
je 0x100b1ca
push edi
lea eax, [ebx + 0x6ba]
push esi
push eax
call dword [ebx + 0xc]
add esp, 0xc
mov dword [ebx + 0x84], eax
cmp eax, 0xffffffff
je 0x100b1ca
push 0x24
lea eax, [ebp - 0x24]
push eax
push dword [ebx + 0x88]
call dword [ebx + 0x10]
add esp, 0xc
cmp eax, 0x24
je 0x100af8f
push 0
push 2
jmp 0x100b1ce
cmp dword [ebp - 0x24], 0x4643534d
jne 0x100af86
mov eax, 0x103
cmp word [ebp - 0xc], ax
je 0x100afaf
movzx eax, word [ebp - 0xc]
push eax
push 3
jmp 0x100b1ce
mov ax, word [ebp + 0x14]
mov ecx, 0xffff
cmp ax, cx
je 0x100afd6
mov cx, word [ebp + 0x10]
cmp cx, word [ebp - 4]
jne 0x100afcd
cmp ax, word [ebp - 2]
je 0x100afd6
push 0
push 0xa
jmp 0x100b1ce
push 9
xor eax, eax
lea edi, [ebx + 0x50]
pop ecx
lea esi, [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
test byte [ebx + 0x6e], 4
mov word [ebp + 8], ax
mov byte [ebp + 0xa], al
mov byte [ebp + 0xb], al
je 0x100b031
push 4
lea eax, [ebp + 8]
push eax
push dword [ebx + 0x88]
call dword [ebx + 0x10]
add esp, 0xc
cmp eax, 4
jne 0x100af86
mov eax, 0xea60
cmp word [ebp + 8], ax
ja 0x100af86
cmp byte [ebp + 0xa], 0xff
ja 0x100af86
cmp byte [ebp + 0xb], 0xff
ja 0x100af86
movzx eax, word [ebp + 8]
xor edi, edi
cmp dword [ebx + 0xa0], eax
je 0x100b070
mov eax, dword [ebx + 0x4c]
cmp eax, edi
je 0x100b04e
push eax
call dword [ebx + 4]
pop ecx
mov dword [ebx + 0x4c], edi
movzx eax, word [ebp + 8]
mov dword [ebx + 0xa0], eax
cmp eax, edi
jbe 0x100b070
push eax
call dword [ebx + 8]
pop ecx
mov dword [ebx + 0x4c], eax
cmp eax, edi
jne 0x100b070
push edi
push 5
jmp 0x100b1ce
mov eax, dword [ebx + 0xa0]
cmp eax, edi
jbe 0x100b098
push eax
push dword [ebx + 0x4c]
push dword [ebx + 0x88]
call dword [ebx + 0x10]
add esp, 0xc
cmp dword [ebx + 0xa0], eax
je 0x100b098
push edi
jmp 0x100af88
movzx eax, byte [ebp + 0xa]
add eax, 8
cmp dword [ebx + 0x44], edi
jne 0x100b0e6
push eax
mov dword [ebx + 0xa4], eax
call dword [ebx + 8]
pop ecx
mov dword [ebx + 0x44], eax
cmp eax, edi
je 0x100b068
movzx eax, byte [ebp + 0xb]
add eax, 8
cmp dword [ebx + 0x48], edi
jne 0x100b0f6
push eax
mov dword [ebx + 0xa8], eax
call dword [ebx + 8]
pop ecx
mov dword [ebx + 0x48], eax
cmp eax, edi
je 0x100b068
push dword [ebx + 0xa8]
push edi
push eax
call fcn.01009702
add esp, 0xc
jmp 0x100b0fe
cmp eax, dword [ebx + 0xa4]
je 0x100b0b6
push edi
push 9
jmp 0x100b1ce
cmp eax, dword [ebx + 0xa8]
jne 0x100b0ee
test byte [ebx + 0x6e], 1
mov esi, 0x100
je 0x100b136
push ebx
push esi
lea eax, [ebx + 0x1b5]
push eax
call fcn.0100a9c2
test eax, eax
je 0x100b1d5
push ebx
push esi
lea eax, [ebx + 0x2b6]
push eax
call fcn.0100a9c2
test eax, eax
jne 0x100b144
jmp 0x100b1d5
mov byte [ebx + 0x1b5], 0
mov byte [ebx + 0x2b6], 0
test byte [ebx + 0x6e], 2
je 0x100b170
push ebx
push esi
lea eax, [ebx + 0x3b7]
push eax
call fcn.0100a9c2
test eax, eax
je 0x100b1d5
push ebx
push esi
lea eax, [ebx + 0x4b8]
push eax
call fcn.0100a9c2
test eax, eax
jne 0x100b17e
jmp 0x100b1d5
mov byte [ebx + 0x3b7], 0
mov byte [ebx + 0x4b8], 0
push 1
push edi
push dword [ebx + 0x88]
call dword [ebx + 0x1c]
add esp, 0xc
mov dword [ebx + 0x2c], eax
push edi
cmp eax, 0xffffffff
jne 0x100b19a
push 4
jmp 0x100b1ce
push dword [ebx + 0x60]
push dword [ebx + 0x88]
call dword [ebx + 0x1c]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x100b1b1
push edi
jmp 0x100b196
mov ax, word [ebx + 0x6c]
push ebx
mov word [ebx + 0xac], ax
call fcn.0100a7d8
neg eax
sbb eax, eax
neg eax
jmp 0x100b1d7
push 0
push 1
push dword [ebx]
call fcn.0100ba0a
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 0x10