Function at 0x100b1a70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x470
mov eax, dword [0x10415990]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0xa4], 1
mov dword [ebp - 0x468], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x44c], ecx
mov ecx, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x470], ecx
je 0x100b19ef
mov eax, 0xffffbf80
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1015eea7
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 4]
mov dword [ebp - 0x450], ecx
add ecx, 0xfffffff0
cmp ecx, 0x3f0
ja 0x100b19db
mov ecx, dword [eax + 0xa8]
add ecx, 0xfffffffd
push esi
cmp ecx, 6
ja case.default.0x100b1a12
jmp dword [ecx*4 + 0x100b1c84]
mov esi, 0x102994b0
push edi
movzx edi, byte [esi + 8]
lea ecx, [edi + edi]
mov dword [ebp - 0x46c], ecx
add ecx, 2
cmp ecx, dword [ebp - 0x450]
jbe 0x100b1a8c
pop edi
pop esi
mov eax, 0xffffbf80
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1015eea7
mov esp, ebp
pop ebp
ret
mov esi, 0x102994e0
jmp 0x100b1a1e
mov esi, 0x10299510
jmp 0x100b1a1e
mov esi, 0x10299540
jmp 0x100b1a1e
mov esi, 0x10299570
jmp 0x100b1a1e
mov esi, 0x102995a0
jmp 0x100b1a1e
mov esi, 0x102995d0
jmp 0x100b1a1e
pop esi
mov eax, 0xffffbf80
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1015eea7
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x444]
push ecx
mov ecx, dword [ebp - 0x44c]
push ebx
push edx
push eax
call fcn.100b1430
add esp, 0x10
test eax, eax
jne 0x100b1c71
mov edx, dword [esi + 0x20]
mov dword [ebp - 0x460], eax
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x458], eax
call edx
mov dword [ebp - 0x45c], eax
test eax, eax
je 0x100b1c11
push 0
push 0
lea ecx, [ebp - 0x44]
mov eax, esi
mov dword [ebp - 0x460], esi
call fcn.100b0b60
mov ebx, dword [ebp - 0x450]
sub ebx, edi
dec ebx
lea eax, [ebp + edi - 0x443]
push ebx
push eax
push edi
lea esi, [ebp - 0x460]
lea ecx, [ebp - 0x443]
call fcn.100b1660
push edi
lea eax, [ebp - 0x443]
push eax
push ebx
lea ecx, [ebp + edi - 0x443]
call fcn.100b1660
add esp, 0x20
call fcn.100b0a30
mov al, byte [ebp - 0x444]
xor edx, edx
xor esi, esi
mov byte [ebp - 0x445], al
lea ecx, [ebp + edi - 0x443]
cmp edi, edx
jbe 0x100b1b55
mov bl, byte [ebp + esi - 0x44]
xor bl, byte [ecx]
inc esi
or al, bl
inc ecx
cmp esi, edi
jb 0x100b1b41
mov byte [ebp - 0x445], al
mov edi, dword [ebp - 0x450]
sub edi, dword [ebp - 0x46c]
xor al, al
sub edi, 2
xor esi, esi
mov dword [ebp - 0x454], edx
mov dword [ebp - 0x44c], edx
mov dword [ebp - 0x464], edx
cmp edi, 2
jl 0x100b1bbf
nop
or al, byte [ecx + esi]
add esi, 2
mov dl, al
neg dl
or dl, al
or al, byte [ecx + esi - 1]
not dl
movzx edx, dl
shr edx, 7
add dword [ebp - 0x454], edx
mov dl, al
neg dl
or dl, al
not dl
movzx edx, dl
shr edx, 7
add dword [ebp - 0x44c], edx
lea edx, [edi - 1]
cmp esi, edx
jb 0x100b1b80
mov edx, dword [ebp - 0x464]
mov ebx, dword [ebp - 0x450]
cmp esi, edi
jae 0x100b1bda
or al, byte [esi + ecx]
mov dl, al
neg dl
or dl, al
not dl
movzx edx, dl
shr edx, 7
mov eax, dword [ebp - 0x454]
add eax, dword [ebp - 0x44c]
add eax, edx
mov dl, byte [ecx + eax]
add ecx, eax
mov al, byte [ebp - 0x445]
xor dl, 1
inc ecx
or al, dl
je 0x100b1c32
pop edi
pop esi
mov eax, 0xffffbf00
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1015eea7
mov esp, ebp
pop ebp
ret
lea esi, [ebp - 0x460]
call fcn.100b0a30
pop edi
pop esi
mov eax, 0xffffae80
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1015eea7
mov esp, ebp
pop ebp
ret
sub ebx, ecx
lea eax, [ebp + ebx - 0x444]
cmp eax, dword [ebp + 0x18]
jbe 0x100b1c56
pop edi
pop esi
mov eax, 0xffffbc00
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1015eea7
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x468]
push eax
mov dword [edx], eax
mov eax, dword [ebp - 0x470]
push ecx
push eax
call sub.MSVCR100.dll_memcpy
add esp, 0xc
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1015eea7
mov esp, ebp
pop ebp
ret