Function at 0x101b34c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
sub esp, 0x18
cmp dword [ecx + 0x78], 0
jne 0x101b34eb
mov eax, dword [ebp + 0x14]
imul eax, dword [ebp + 0x1c]
shl eax, 2
push eax
push 0
push dword [ebp + 0x10]
call fcn.1039a3e0
add esp, 0xc
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 0x128]
push ebx
mov ebx, dword [ecx + 0x280]
sub ebx, dword [ecx + 0x278]
mov ecx, dword [ecx + 0x254]
add ebx, 0xc
push esi
lea esi, [eax + 1]
mov dword [ebp - 8], ebx
imul esi, eax
dec ecx
mov eax, 1
shl eax, cl
mov ecx, dword [ebp + 0x14]
push edi
add esi, esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], esi
test ecx, ecx
jle 0x101b35de
mov eax, dword [ebp + 0x1c]
mov dx, word [0x107527e8]
mov edi, dword [ebp + 0x18]
shl eax, 2
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
nop dword [eax]
test edi, edi
jle 0x101b35c7
mov esi, dword [ebp + 0x18]
mov ecx, ebx
mov edi, 1
mov ebx, eax
rol edi, cl
sar edi, 1
mov cx, dx
lea ebx, [ebx + 4]
add cx, cx
mov eax, 0xf000
xor cx, dx
shl cx, 2
xor cx, dx
shl cx, 9
xor cx, dx
and cx, ax
mov ax, dx
shr ax, 1
shl cx, 3
mov dx, cx
mov ecx, dword [ebp - 8]
or dx, ax
movzx eax, dx
shr eax, 5
mov eax, dword [eax*4 + 0x10459e30]
add eax, edi
sar eax, cl
mov dword [ebx - 4], eax
sub esi, 1
jne 0x101b3564
mov eax, dword [ebp - 0x10]
mov ebx, ecx
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp + 0x18]
mov word [0x107527e8], dx
add eax, esi
sub ecx, 1
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
jne 0x101b3550
mov esi, dword [ebp - 4]
mov ecx, dword [ebp + 0x14]
sub ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x24]
mov dword [ebp - 8], ecx
cmp edx, ecx
jge 0x101b36cb
mov eax, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x18]
sub edi, dword [ebp + 0x28]
mov ebx, dword [ebp + 0x20]
lea ecx, [eax*4]
mov dword [ebp + 0x18], edi
imul eax, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0x10]
add eax, ebx
lea ecx, [ecx + eax*4]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], ecx
nop dword [eax]
cmp dword [ebp + 0x20], edi
jge 0x101b36b6
mov dword [ebp - 0x14], ecx
nop dword [eax]
xor edi, edi
xor eax, eax
test esi, esi
jle 0x101b366d
mov esi, dword [ebp + 8]
add esi, 0x12c
mov ecx, dword [ebp + 0xc]
lea esi, [esi + 4]
mov ecx, dword [ecx + eax*4]
inc eax
mov edx, dword [ecx]
add edx, dword [ebp + 0x24]
imul edx, dword [ebp + 0x1c]
add edx, dword [ecx + 4]
mov ecx, dword [ebp + 0x10]
add edx, ebx
mov ecx, dword [ecx + edx*4]
imul ecx, dword [esi - 4]
add edi, ecx
cmp eax, dword [ebp - 4]
jl 0x101b3641
mov esi, dword [ebp - 4]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x18]
add eax, edi
mov edi, dword [0x107527e0]
mov ecx, dword [ecx + 0x254]
sar eax, cl
mov ecx, dword [ebp - 0x14]
add eax, dword [ecx]
cmp eax, edi
jge 0x101b3690
mov eax, edi
jmp 0x101b369d
cmp eax, dword [0x107527e4]
cmovg eax, dword [0x107527e4]
mov edi, dword [ebp + 0x18]
inc ebx
mov dword [ecx], eax
add ecx, 4
mov dword [ebp - 0x14], ecx
cmp ebx, edi
jl 0x101b3630
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp + 0x20]
inc edx
add ecx, eax
mov dword [ebp + 0x24], edx
mov dword [ebp - 0xc], ecx
cmp edx, dword [ebp - 8]
jl 0x101b3620
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret