Function at 0xb1dc08
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x2c], ebx
mov byte [ebp - 0x19], cl
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
call fcn.00b1393c
xor eax, eax
push ebp
push 0xb1e01e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.00b134ec
cmp dword [ebp - 0x14], 0
je 0xb1dff0
cmp dword [ebp - 0x18], 0
je 0xb1dff0
lea ecx, [ebp - 0x34]
lea eax, [ebp - 0x18]
mov edx, 0x400
call fcn.00b1db08
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 0x18]
call fcn.00b13584
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x18]
call fcn.00b13584
lea eax, [ebp - 0x20]
call fcn.00b139a4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x20]
call fcn.00b1374c
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
call fcn.00b1374c
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x14]
call fcn.00b1374c
mov edx, eax
lea eax, [ebp - 0x2c]
call fcn.00b13ad8
push 0x414
call fcn.00b14a2c
pop ecx
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0xb1dff0
mov ebx, dword [ebp - 0x24]
cmp dword [ebp - 0x10], 0
ja 0xb1dd1a
mov dword [ebx + 0x400], 1
mov dword [ebx + 0x404], 3
mov dword [ebx + 0x408], 5
mov dword [ebx + 0x40c], 7
mov dword [ebx + 0x410], 0xb
xor esi, esi
mov eax, 0xff
sub eax, esi
mov dword [ebx + esi*4], eax
inc esi
cmp esi, 0x100
jne 0xb1dd05
jmp 0xb1dd87
xor esi, esi
mov dword [ebx + esi*4], esi
inc esi
cmp esi, 0x100
jne 0xb1dd1c
xor eax, eax
mov dword [ebp - 8], eax
mov byte [ebp - 9], 0
mov esi, 0xff
push ebp
mov eax, esi
call fcn.00b1db64
pop ecx
and eax, 0xff
mov edi, dword [ebx + esi*4]
mov edx, dword [ebx + eax*4]
mov dword [ebx + esi*4], edx
mov dword [ebx + eax*4], edi
dec esi
test esi, esi
jne 0xb1dd36
mov eax, dword [ebx + 4]
mov dword [ebx + 0x400], eax
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x404], eax
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0x408], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x40c], eax
xor eax, eax
mov al, byte [ebp - 9]
mov eax, dword [ebx + eax*4]
mov dword [ebx + 0x410], eax
cmp byte [ebp - 0x19], 0
jne 0xb1debf
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
dec eax
test eax, eax
jl 0xb1de9e
inc eax
mov dword [ebp - 0x30], eax
xor esi, esi
mov eax, dword [ebx + 0x400]
mov eax, dword [ebx + eax*4]
add eax, dword [ebx + 0x404]
and eax, 0xff
mov dword [ebx + 0x404], eax
mov eax, dword [ebx + 0x400]
inc eax
and eax, 0xff
mov dword [ebx + 0x400], eax
mov eax, dword [ebx + 0x410]
mov edi, dword [ebx + eax*4]
mov edx, dword [ebx + 0x404]
mov edx, dword [ebx + edx*4]
mov dword [ebx + eax*4], edx
mov eax, dword [ebx + 0x40c]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x404]
mov dword [ebx + edx*4], eax
mov eax, dword [ebx + 0x400]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x40c]
mov dword [ebx + edx*4], eax
mov eax, dword [ebx + 0x400]
mov dword [ebx + eax*4], edi
mov eax, dword [ebx + edi*4]
add eax, dword [ebx + 0x408]
and eax, 0xff
mov dword [ebx + 0x408], eax
mov edx, dword [ebx + 0x40c]
mov edi, dword [ebx + edx*4]
mov edx, dword [ebx + 0x410]
add edi, dword [ebx + edx*4]
add edi, dword [ebx + eax*4]
and edi, 0xff
mov eax, dword [ebp - 0x14]
call fcn.00b1394c
movzx eax, byte [eax + esi]
mov dword [ebx + 0x40c], eax
mov eax, dword [ebx + 0x404]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x400]
add eax, dword [ebx + edx*4]
and eax, 0xff
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + edi*4]
mov edx, dword [ebx + edx*4]
xor edx, dword [ebx + 0x40c]
xor eax, edx
mov dword [ebx + 0x410], eax
lea eax, [ebp - 0x2c]
call fcn.00b139a4
mov dl, byte [ebx + 0x410]
mov byte [eax + esi], dl
inc esi
dec dword [ebp - 0x30]
jne 0xb1dda6
mov eax, dword [ebp - 0x2c]
call fcn.00b1374c
push eax
lea eax, [ebp - 0x2c]
call fcn.00b139a4
mov edx, eax
mov eax, dword [ebp + 8]
pop ecx
call fcn.00b135dc
jmp 0xb1dfe8
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
dec eax
test eax, eax
jl 0xb1dfcc
inc eax
mov dword [ebp - 0x30], eax
xor esi, esi
mov eax, dword [ebx + 0x400]
mov eax, dword [ebx + eax*4]
add eax, dword [ebx + 0x404]
and eax, 0xff
mov dword [ebx + 0x404], eax
mov eax, dword [ebx + 0x400]
inc eax
and eax, 0xff
mov dword [ebx + 0x400], eax
mov eax, dword [ebx + 0x410]
mov edi, dword [ebx + eax*4]
mov edx, dword [ebx + 0x404]
mov edx, dword [ebx + edx*4]
mov dword [ebx + eax*4], edx
mov eax, dword [ebx + 0x40c]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x404]
mov dword [ebx + edx*4], eax
mov eax, dword [ebx + 0x400]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x40c]
mov dword [ebx + edx*4], eax
mov eax, dword [ebx + 0x400]
mov dword [ebx + eax*4], edi
mov eax, dword [ebx + edi*4]
add eax, dword [ebx + 0x408]
and eax, 0xff
mov dword [ebx + 0x408], eax
mov edx, dword [ebx + 0x40c]
mov edi, dword [ebx + edx*4]
mov edx, dword [ebx + 0x410]
add edi, dword [ebx + edx*4]
add edi, dword [ebx + eax*4]
and edi, 0xff
mov eax, dword [ebp - 0x14]
call fcn.00b1394c
movzx eax, byte [eax + esi]
mov dword [ebx + 0x410], eax
mov eax, dword [ebx + 0x404]
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + 0x400]
add eax, dword [ebx + edx*4]
and eax, 0xff
mov eax, dword [ebx + eax*4]
mov edx, dword [ebx + edi*4]
mov edx, dword [ebx + edx*4]
xor edx, dword [ebx + 0x410]
xor eax, edx
mov dword [ebx + 0x40c], eax
lea eax, [ebp - 0x2c]
call fcn.00b139a4
mov dl, byte [ebx + 0x40c]
mov byte [eax + esi], dl
inc esi
dec dword [ebp - 0x30]
jne 0xb1ded4
mov eax, dword [ebp - 0x2c]
call fcn.00b1374c
push eax
lea eax, [ebp - 0x2c]
call fcn.00b139a4
mov edx, eax
mov eax, dword [ebp + 8]
pop ecx
call fcn.00b135dc
mov eax, dword [ebp - 0x24]
call fcn.00b12848
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xb1e025
lea eax, [ebp - 0x34]
call fcn.00b134ec
lea eax, [ebp - 0x2c]
call fcn.00b134ec
lea eax, [ebp - 0x20]
call fcn.00b134ec
lea eax, [ebp - 0x18]
call fcn.00b134ec
ret