Function at 0x100db9e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [0x103c4120]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [ebp - 0x48], eax
push esi
push edi
cmp dword [ebx + 0x28], 0x100
jle 0x100dba8b
lea eax, [ebx + 0x10]
push eax
call fcn.100de910
mov eax, dword [ebx + 0x9e0]
xor esi, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
test eax, eax
jle 0x100dbcb1
mov edi, 8
nop
mov eax, esi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add eax, 0x9a
push edi
add eax, eax
sub esp, 0x10
mov ecx, esp
movdqu xmm0, xmmword [ebx + eax*8]
lea eax, [ebp - 0x5c]
push eax
movdqu xmmword [ecx], xmm0
mov ecx, ebx
call fcn.100dcc10
mov ecx, dword [ebp - 0x48]
add edi, 8
movdqu xmm0, xmmword [eax]
psrldq xmm0, 8
movd eax, xmm0
mov byte [ecx + esi], al
inc esi
mov eax, dword [ebx + 0x9e0]
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp esi, eax
jl 0x100dba30
jmp 0x100dbcb1
movzx eax, byte [ebx + 0x2c]
mov esi, dword [ebx + 0x2c]
and eax, 7
sar esi, 3
test eax, eax
jle 0x100dbab8
mov ecx, 7
or dl, 0xff
sub ecx, eax
mov al, 1
shl dl, cl
and dl, byte [ebx + esi + 0x34]
shl al, cl
or dl, al
mov byte [ebx + esi + 0x34], dl
jmp 0x100dbabd
mov byte [ebx + esi + 0x34], 0x80
inc esi
cmp esi, 0x40
jge 0x100dbadf
mov ecx, 0x40
lea edi, [ebx + 0x34]
sub ecx, esi
add edi, esi
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
cmp dword [ebx + 0x30], 0
jne 0x100dbb0d
lea eax, [ebx + 0x10]
mov ecx, ebx
push eax
call fcn.100dc640
push 0x103d9618
lea eax, [ebp - 0x44]
mov ecx, ebx
push eax
call fcn.100dc2e0
mov eax, dword [ebx + 0x2c]
cdq
mov edi, eax
mov esi, edx
jmp 0x100dbb9c
mov edi, dword [ebx + 0x10]
lea ecx, [ebx + 0x10]
mov esi, dword [ecx + 4]
add edi, 1
mov eax, dword [ebx + 0x2c]
adc esi, 0
cdq
shld esi, edi, 9
push ecx
shl edi, 9
mov ecx, ebx
add edi, eax
adc esi, edx
mov dword [ebp - 0x4c], esi
call fcn.100dc100
lea eax, [ebx + 0x78]
mov ecx, ebx
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.100dc2e0
cmp dword [ebx + 0x1c], 0
ja 0x100dbb51
cmp dword [ebx + 0x18], 0
jbe 0x100dbb9c
lea esi, [ebx + 0x118]
mov ecx, ebx
push esi
lea eax, [ebp - 0x44]
push eax
call fcn.100d8a30
push esi
lea eax, [ebp - 0x44]
mov ecx, ebx
push eax
call fcn.100dc2e0
cmp dword [ebx + 0x24], 0
ja 0x100dbb7b
cmp dword [ebx + 0x20], 0
jbe 0x100dbb99
lea esi, [ebx + 0x1b8]
mov ecx, ebx
push esi
lea eax, [ebp - 0x44]
push eax
call fcn.100d8a30
push esi
lea eax, [ebp - 0x44]
mov ecx, ebx
push eax
call fcn.100dc2e0
mov esi, dword [ebp - 0x4c]
mov eax, 0x103d94e0
mov ecx, 2
xor dword [eax], edi
xor dword [eax + 4], esi
add eax, 0x10
dec ecx
jne 0x100dbba6
cmp eax, 0x103d9580
jl 0x100dbba1
push 0x103d94d8
lea eax, [ebp - 0x44]
mov ecx, ebx
push eax
call fcn.100d8a30
xor eax, eax
lea ebx, [ebx]
movdqu xmm0, xmmword [eax + 0x103d9558]
movdqu xmm1, xmmword [eax + 0x103d9538]
pxor xmm1, xmm0
movdqu xmm0, xmmword [eax + 0x103d9518]
pxor xmm1, xmm0
movdqu xmm0, xmmword [eax + 0x103d94f8]
pxor xmm1, xmm0
movdqu xmmword [ebp + eax - 0x44], xmm1
add eax, 0x10
cmp eax, 0x20
jl 0x100dbbd0
mov edi, dword [ebp - 0x48]
xor esi, esi
nop
mov edx, dword [ebp + esi*8 - 0x40]
mov eax, edx
mov ecx, dword [ebp + esi*8 - 0x44]
shr eax, 0x18
mov byte [edi + esi*8], al
mov eax, edx
shr eax, 0x10
mov byte [edi + esi*8 + 1], al
mov eax, edx
shr eax, 8
mov byte [edi + esi*8 + 2], al
mov byte [edi + esi*8 + 3], dl
cmp dword [ebx + 0x28], 0xe0
jne 0x100dbc44
cmp esi, 3
je 0x100dbc55
mov eax, edx
shrd ecx, eax, 0x18
mov byte [edi + esi*8 + 4], cl
mov ecx, dword [ebp + esi*8 - 0x44]
shr eax, 0x18
cmp dword [ebx + 0x28], 0xe0
jne 0x100dbc63
cmp esi, 3
je 0x100dbc70
mov eax, edx
shrd ecx, eax, 0x10
shr eax, 0x10
mov byte [edi + esi*8 + 5], cl
cmp dword [ebx + 0x28], 0xe0
jne 0x100dbc7e
cmp esi, 3
je 0x100dbc91
mov ecx, dword [ebp + esi*8 - 0x44]
mov eax, ecx
shrd eax, edx, 8
shr edx, 8
mov byte [edi + esi*8 + 6], al
jmp 0x100dbc95
mov ecx, dword [ebp + esi*8 - 0x44]
cmp dword [ebx + 0x28], 0xe0
jne 0x100dbca3
cmp esi, 3
je 0x100dbca7
mov byte [edi + esi*8 + 7], cl
inc esi
cmp esi, 4
jl 0x100dbc10
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101c6a5b
mov esp, ebp
pop ebp
ret 4