Function at 0x6b1080
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [ebp + 8]
push esi
push edi
xor esi, esi
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [ebp - 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x18], eax
mov eax, dword [edi + 0x38]
mov dword [ebp - 4], ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], esi
movsx ecx, word [eax + edx*2]
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x1c], edi
lea edx, [ecx + eax*8]
mov ecx, dword [ebp + 0x18]
mov dword [ebp + 0x28], edx
cmp dword [ebp + 0x2c], esi
je 0x6b10d6
lea eax, [esi + 0x10]
cmp ecx, 2
je 0x6b10db
mov eax, 4
sar edx, 1
lea edi, [ecx*2 - 1]
sub edx, eax
cmp dword [ebp + 0x2c], esi
je 0x6b10f1
cmp ecx, 2
jne 0x6b10f1
dec edi
mov eax, edi
imul eax, edx
mov edx, dword [ebp + 0x1c]
add eax, dword [edx]
cdq
idiv edi
mov edi, dword [ebp + 0x1c]
mov edx, dword [edi]
sub edx, dword [ebp + 0x28]
add edx, 0xffffffe0
cmp edx, eax
cmovge edx, eax
mov eax, 0x40
cmp edx, eax
cmovg edx, eax
cmp edx, 4
jge 0x6b1124
mov eax, 1
jmp 0x6b1144
mov eax, edx
mov ecx, 0xe
sar eax, 3
and edx, 7
sub cl, al
movsx eax, word [edx*2 + 0x734c60]
sar eax, cl
mov ecx, dword [ebp + 0x18]
inc eax
and eax, 0xfffffffe
mov edx, 1
mov dword [ebp + 0x28], eax
cmp dword [ebp + 0x2c], esi
je 0x6b115d
mov edi, dword [ebp - 0x14]
cmp edi, dword [ebp - 0x20]
cmovge eax, edx
mov dword [ebp + 0x28], eax
mov edi, dword [ebp + 0x14]
cmp dword [ebp - 8], esi
je 0x6b1180
mov eax, dword [ebp + 8]
push dword [eax + 0x28]
push ecx
push dword [ebp + 0x2c]
push edi
push dword [ebp + 0x10]
call fcn.006b4e90
mov esi, eax
add esp, 0x14
mov dword [ebp - 0xc], esi
push dword [ebp - 4]
call fcn.006af010
mov dword [ebp - 0x24], eax
add esp, 4
mov eax, dword [ebp + 0x28]
cmp eax, 1
je 0x6b13f5
mov edx, dword [ebp - 8]
test edx, edx
je 0x6b11ad
imul esi, eax
add esi, 0x2000
sar esi, 0xe
mov ecx, dword [ebp + 0x2c]
test ecx, ecx
je 0x6b127d
cmp dword [ebp + 0x18], 2
jle 0x6b127d
cdq
sub eax, edx
sar eax, 1
cmp dword [ebp - 8], 0
mov dword [ebp + 8], eax
lea ecx, [eax + 1]
lea ecx, [ecx + ecx*2]
lea edx, [ecx + eax]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0xc], edx
je 0x6b1216
cmp esi, eax
jg 0x6b11eb
lea edx, [esi + 1]
lea edx, [edx + edx*2]
jmp 0x6b11f1
mov edx, ecx
sub edx, eax
add edx, esi
cmp esi, eax
jg 0x6b11fa
lea eax, [esi + esi*2]
jmp 0x6b1201
sub ecx, eax
lea eax, [ecx - 1]
add eax, esi
push dword [ebp - 0xc]
push edx
push eax
push dword [ebp - 4]
call fcn.006aecf0
add esp, 0x10
jmp 0x6b13a1
push edx
push dword [ebp - 4]
call fcn.006aea40
mov ecx, dword [ebp - 0x20]
mov edx, eax
add esp, 8
cmp edx, ecx
jge 0x6b123c
mov eax, 0x55555556
imul edx
mov eax, dword [ebp + 8]
mov esi, edx
shr esi, 0x1f
jmp 0x6b1244
mov eax, dword [ebp + 8]
sub edx, ecx
lea esi, [eax + 1]
add esi, edx
cmp esi, eax
jg 0x6b1252
lea edx, [esi + 1]
lea edx, [edx + edx*2]
jmp 0x6b1258
mov edx, ecx
sub edx, eax
add edx, esi
cmp esi, eax
jg 0x6b1261
lea eax, [esi + esi*2]
jmp 0x6b1268
sub ecx, eax
lea eax, [esi - 1]
add eax, ecx
push dword [ebp - 0xc]
push edx
push eax
push dword [ebp - 4]
call fcn.006ae9f0
add esp, 0x10
jmp 0x6b13a1
cmp dword [ebp + 0x24], 1
jg 0x6b1380
test ecx, ecx
jne 0x6b1380
mov edx, eax
sar edx, 1
mov dword [ebp - 0x20], edx
lea ecx, [edx + 1]
mov edi, ecx
imul edi, ecx
cmp dword [ebp - 8], 0
mov dword [ebp + 8], edi
mov edi, dword [ebp + 0x14]
je 0x6b12f6
cmp esi, edx
jg 0x6b12b3
lea ecx, [esi + 1]
jmp 0x6b12b8
mov ecx, eax
sub ecx, esi
inc ecx
mov dword [ebp - 0xc], ecx
cmp esi, edx
jg 0x6b12cc
mov eax, dword [ebp + 8]
lea edx, [esi + 1]
imul edx, esi
sar edx, 1
jmp 0x6b12de
sub eax, esi
lea ecx, [eax + 2]
inc eax
imul ecx, eax
mov eax, dword [ebp + 8]
mov edx, eax
sar ecx, 1
sub edx, ecx
push eax
mov eax, dword [ebp - 0xc]
add eax, edx
push eax
push edx
push dword [ebp - 4]
call fcn.006aecf0
add esp, 0x10
jmp 0x6b13a1
mov esi, dword [ebp + 8]
push esi
push dword [ebp - 4]
call fcn.006aea40
mov ecx, dword [ebp - 0x20]
mov edx, eax
add esp, 8
lea eax, [ecx + 1]
imul eax, ecx
sar eax, 1
cmp edx, eax
jge 0x6b1337
lea eax, [edx*8 + 1]
push eax
call fcn.006b5ab0
add esp, 4
lea esi, [eax - 1]
shr esi, 1
lea edx, [esi + 1]
mov ecx, edx
imul ecx, esi
sar ecx, 1
jmp 0x6b136b
sub esi, edx
lea eax, [esi*8 - 7]
push eax
call fcn.006b5ab0
mov ecx, dword [ebp + 0x28]
add esp, 4
lea esi, [ecx*2 + 2]
sub esi, eax
mov eax, ecx
mov ecx, dword [ebp + 8]
shr esi, 1
sub eax, esi
lea edx, [eax + 1]
add eax, 2
imul eax, edx
sar eax, 1
sub ecx, eax
push dword [ebp + 8]
lea eax, [ecx + edx]
push eax
push ecx
push dword [ebp - 4]
call fcn.006ae9f0
add esp, 0x10
jmp 0x6b13a1
inc eax
push eax
test edx, edx
je 0x6b1394
push esi
push dword [ebp - 4]
call fcn.006aec30
add esp, 0xc
jmp 0x6b13a1
push dword [ebp - 4]
call fcn.006ae8d0
add esp, 8
mov esi, eax
shl esi, 0xe
xor edx, edx
mov eax, esi
div dword [ebp + 0x28]
cmp dword [ebp - 8], 0
mov esi, eax
mov dword [ebp - 0xc], esi
je 0x6b152e
cmp dword [ebp + 0x2c], 0
je 0x6b152e
mov eax, dword [ebp + 0x10]
push dword [ebp + 0x18]
test esi, esi
jne 0x6b13e6
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push edi
push eax
push dword [ebp - 0x1c]
call fcn.006b1ad0
add esp, 0x18
jmp 0x6b152e
push edi
push eax
call fcn.006b35e0
add esp, 0xc
jmp 0x6b152e
cmp dword [ebp + 0x2c], 0
je 0x6b152b
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x6b14dc
mov edx, dword [ebp + 0x18]
xor eax, eax
cmp esi, 0x2000
setg al
mov dword [ebp - 0x10], eax
test eax, eax
je 0x6b14c2
xor ecx, ecx
test edx, edx
jle 0x6b14c2
movaps xmm1, xmmword [0x736fd0]
cmp edx, 8
jb 0x6b146f
mov eax, edx
and eax, 0x80000007
jns 0x6b1447
dec eax
or eax, 0xfffffff8
inc eax
mov esi, edx
sub esi, eax
nop dword [eax + eax]
movups xmm0, xmmword [edi + ecx*4]
xorps xmm0, xmm1
movups xmmword [edi + ecx*4], xmm0
movups xmm0, xmmword [edi + ecx*4 + 0x10]
xorps xmm0, xmm1
movups xmmword [edi + ecx*4 + 0x10], xmm0
add ecx, 8
cmp ecx, esi
jl 0x6b1450
cmp ecx, edx
jge 0x6b14c2
mov eax, edx
sub eax, ecx
cmp eax, 4
jl 0x6b14a3
mov esi, edx
lea eax, [edi + 8]
sub esi, ecx
lea eax, [eax + ecx*4]
sub esi, 4
shr esi, 2
inc esi
lea ecx, [ecx + esi*4]
lea eax, [eax + 0x10]
movups xmm0, xmmword [eax - 0x18]
xorps xmm0, xmm1
movups xmmword [eax - 0x18], xmm0
sub esi, 1
jne 0x6b1490
cmp ecx, edx
jge 0x6b14c2
nop word [eax + eax]
movss xmm0, dword [edi + ecx*4]
xorps xmm0, xmm1
movss dword [edi + ecx*4], xmm0
inc ecx
cmp ecx, edx
jl 0x6b14b0
mov eax, dword [ebp + 0x10]
push edx
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push edi
push eax
push dword [ebp - 0x1c]
call fcn.006b1ad0
mov ecx, dword [ebp - 8]
add esp, 0x18
mov eax, dword [ebp + 0x1c]
cmp dword [eax], 0x10
jle 0x6b151d
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1c], 0x10
jle 0x6b151d
push 2
test ecx, ecx
je 0x6b1508
push dword [ebp - 0x10]
push dword [ebp - 4]
call fcn.006aeac0
add esp, 0xc
xor esi, esi
mov dword [ebp - 0xc], esi
jmp 0x6b152e
push dword [ebp - 4]
call fcn.006ae6d0
add esp, 8
mov dword [ebp - 0x10], eax
xor esi, esi
mov dword [ebp - 0xc], esi
jmp 0x6b152e
xor esi, esi
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], esi
jmp 0x6b152e
mov esi, dword [ebp - 0xc]
push dword [ebp - 4]
call fcn.006af010
mov ecx, dword [ebp + 0x1c]
add esp, 4
sub eax, dword [ebp - 0x24]
mov dword [ebp + 8], eax
sub dword [ecx], eax
test esi, esi
jne 0x6b156a
mov ecx, dword [ebp + 0x20]
mov edx, 1
mov eax, dword [ebp + 0x30]
mov edi, 0x7fff
shl edx, cl
mov ecx, 0xffffc000
dec edx
mov dword [ebp + 0x2c], esi
and dword [eax], edx
jmp 0x6b165e
cmp esi, 0x4000
jne 0x6b1594
mov ecx, dword [ebp + 0x20]
mov edx, 1
mov eax, dword [ebp + 0x30]
xor edi, edi
shl edx, cl
dec edx
mov dword [ebp + 0x2c], 0x7fff
shl edx, cl
mov ecx, esi
and dword [eax], edx
jmp 0x6b165e
movsx eax, si
mov edi, 0x4000
imul eax, eax
mov ecx, edi
add eax, 0x1000
sar eax, 0xd
movzx esi, ax
movsx edx, si
imul eax, edx, 0x272
sub ecx, eax
sar ecx, 0xf
add ecx, 0x2055
movsx eax, cx
imul eax, edx
add eax, edi
sar eax, 0xf
sub eax, 0x1de3
cwde
imul eax, edx
add eax, edi
sar eax, 0xf
sub eax, esi
mov esi, dword [ebp - 0xc]
sub eax, 0x8000
cwde
mov dword [ebp + 0x1c], eax
mov eax, edi
sub eax, esi
cwde
imul eax, eax
add eax, 0x1000
sar eax, 0xd
movzx edx, ax
movsx ecx, dx
imul eax, ecx, 0x272
sub edi, eax
sar edi, 0xf
add edi, 0x2055
movsx eax, di
imul eax, ecx
mov edi, dword [ebp + 0x1c]
push edi
add eax, 0x4000
sar eax, 0xf
sub eax, 0x1de3
cwde
imul eax, ecx
add eax, 0x4000
sar eax, 0xf
sub eax, edx
sub eax, 0x8000
cwde
push eax
mov dword [ebp + 0x2c], eax
call fcn.006b0ed0
movsx ecx, ax
add esp, 8
mov eax, dword [ebp + 0x18]
shl eax, 7
add eax, 0xffffff80
cwde
imul ecx, eax
add ecx, 0x4000
sar ecx, 0xf
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x10]
mov dword [eax + 4], edi
mov dword [eax], edx
mov edx, dword [ebp + 0x2c]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp + 8]
pop edi
mov dword [eax + 0x10], esi
mov dword [eax + 8], edx
mov dword [eax + 0x14], ecx
pop esi
mov esp, ebp
pop ebp
ret