Function at 0x6c8680
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6f5581
mov eax, dword fs:[0]
push eax
push ecx
push ebx
sub esp, 0x108
mov eax, dword [0x70b414]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov esi, dword [ebx + 8]
mov dword [ebp - 0xa0], esi
call fcn.006c8530
xorps xmm0, xmm0
mov dword [ebp - 0xe8], 0x6ffe58
movlpd qword [ebp - 0xe0], xmm0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0x6ffa60
movups xmmword [ebp - 0xd0], xmm0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 4], 0
mov byte [ebp - 4], 1
cmp dword [esi + 0xc], 0
jne 0x6c8763
mov dword [ebp - 4], 2
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0xe8], 0x6ffe58
call fcn.006d96f0
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], 0x6ffa60
test eax, eax
je 0x6c8759
push eax
call fcn.006e3fab
add esp, 4
mov eax, 0xfffffff9
jmp 0x6c9119
mov ecx, esi
call fcn.006d5590
test al, al
jne 0x6c89a6
mov dword [ebp - 0x4c], 0
push 0x20
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], al
mov byte [ebp - 4], 1
call fcn.006ba460
mov edx, eax
mov dword [ebp - 0x3c], 0x10
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0x1f
mov dword [ebp - 0x4c], edx
mov edi, 0x7054d0
mov esi, 0x10
movups xmmword [edx], xmm0
mov byte [edx + 0x10], 0
movsx ecx, byte [edx]
add ecx, 0x86ceaf
sub edi, edx
nop word [eax + eax]
mov eax, ecx
lea edx, [edx + 1]
imul ecx, ecx, 0xc8f5
shr eax, 6
xor al, byte [edi + edx - 1]
mov byte [edx - 1], al
add ecx, 0x6d8d27c
sub esi, 1
jne 0x6c87d0
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0xb4]
call fcn.006c7070
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x34], esi
push 0x30
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
mov byte [ebp - 4], 5
call fcn.006ba460
mov edx, eax
mov dword [ebp - 0x20], 0x2f
mov dword [ebp - 0x24], 0x24
lea eax, [ebp - 0x34]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
movups xmmword [edx + 0x10], xmm0
mov dword [edx + 0x20], esi
mov byte [edx + 0x24], 0
cmp dword [ebp - 0x20], 0x10
mov dword [ebp - 0x34], edx
jb 0x6c8853
movsx ecx, byte [edx]
jmp 0x6c8859
movsx ecx, byte [eax]
lea edx, [ebp - 0x34]
mov edi, 0x705350
add ecx, 0x86ceaf
sub edi, edx
mov esi, 0x24
nop dword [eax + eax]
mov eax, ecx
lea edx, [edx + 1]
imul ecx, ecx, 0xdcf5
shr eax, 6
xor al, byte [edi + edx - 1]
mov byte [edx - 1], al
add ecx, 0x6d8d27c
sub esi, 1
jne 0x6c8870
push dword [ebp - 0xa0]
mov byte [ebp - 4], 7
lea edx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
lea ecx, [ebp - 0x98]
push dword [ebp - 0x9c]
cmovae edx, dword [ebp - 0x34]
push 0x58
mov dword [ebp - 0x98], 0xfffffffd
call fcn.006ccf50
add esp, 0xc
mov esi, dword [eax]
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x20]
cmp edx, 0x10
jb 0x6c88ff
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x6c88f5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x6c9139
push edx
push ecx
call fcn.006df222
add esp, 8
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
mov dword [ebp - 0xb4], 0x6ffa60
test eax, eax
je 0x6c892e
push eax
call fcn.006e3fab
add esp, 4
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x38]
cmp edx, 0x10
jb 0x6c8966
mov ecx, dword [ebp - 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x6c895c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x6c9139
push edx
push ecx
call fcn.006df222
add esp, 8
mov dword [ebp - 4], 8
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0xe8], 0x6ffe58
call fcn.006d96f0
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xd4], 0x6ffa60
test ecx, ecx
je 0x6c899f
push ecx
call fcn.006e3fab
add esp, 4
mov eax, esi
jmp 0x6c9119
push ecx
push 0
push esi
lea ecx, [ebp - 0xe8]
call fcn.006d90e0
test al, al
jne 0x6c8bc0
mov dword [ebp - 0x4c], 0
push 0x20
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], al
mov byte [ebp - 4], 1
call fcn.006ba460
mov ecx, eax
mov dword [ebp - 0x3c], 0x15
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0x1f
mov dword [ebp - 0x4c], ecx
mov edi, 0x705400
mov esi, 0x15
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov word [ecx + 0x14], 0
movsx edx, byte [ecx]
add edx, 0x8b6292
sub edi, ecx
nop dword [eax + eax]
mov eax, edx
lea ecx, [ecx + 1]
imul edx, edx, 0xcdf5
shr eax, 0xc
xor al, byte [edi + ecx - 1]
mov byte [ecx - 1], al
add edx, 0x7145503
sub esi, 1
jne 0x6c8a20
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0xb4]
call fcn.006c7070
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x34], esi
push 0x30
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
mov byte [ebp - 4], 0xb
call fcn.006ba460
mov edx, eax
mov dword [ebp - 0x20], 0x2f
mov dword [ebp - 0x24], 0x24
lea eax, [ebp - 0x34]
xorps xmm0, xmm0
movups xmmword [edx], xmm0
movups xmmword [edx + 0x10], xmm0
mov dword [edx + 0x20], esi
mov byte [edx + 0x24], 0
cmp dword [ebp - 0x20], 0x10
mov dword [ebp - 0x34], edx
jb 0x6c8aa3
movsx ecx, byte [edx]
jmp 0x6c8aa9
movsx ecx, byte [eax]
lea edx, [ebp - 0x34]
mov edi, 0x7052c0
add ecx, 0x8b6292
sub edi, edx
mov esi, 0x24
nop dword [eax + eax]
mov eax, ecx
lea edx, [edx + 1]
imul ecx, ecx, 0xdcf5
shr eax, 0xc
xor al, byte [edi + edx - 1]
mov byte [edx - 1], al
add ecx, 0x7145503
sub esi, 1
jne 0x6c8ac0
push dword [ebp - 0xa0]
mov byte [ebp - 4], 0xd
lea edx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
lea ecx, [ebp - 0x9c]
push dword [ebp - 0x98]
cmovae edx, dword [ebp - 0x34]
push 0x5b
mov dword [ebp - 0x9c], 0xffffffea
call fcn.006ccf50
mov edx, dword [ebp - 0x20]
add esp, 0xc
mov esi, dword [eax]
cmp edx, 0x10
jb 0x6c8b4b
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x6c8b41
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x6c913e
push edx
push ecx
call fcn.006df222
add esp, 8
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
mov dword [ebp - 0xb4], 0x6ffa60
test eax, eax
je 0x6c8b7a
push eax
call fcn.006e3fab
add esp, 4
mov edx, dword [ebp - 0x38]
cmp edx, 0x10
jb 0x6c8bae
mov ecx, dword [ebp - 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x6c8ba4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x6c913e
push edx
push ecx
call fcn.006df222
add esp, 8
lea ecx, [ebp - 0xe8]
call fcn.006d9070
mov eax, esi
jmp 0x6c9119
lea ecx, [ebp - 0xe8]
call fcn.006c9c70
mov dword [ebp - 0xa4], eax
test eax, eax
jns 0x6c8d0c
push ecx
push 0xf
lea ecx, [ebp - 0x64]
call fcn.006ba330
cmp dword [ebp - 0x50], 0x10
lea eax, [ebp - 0x64]
jb 0x6c8bf5
mov edx, dword [ebp - 0x64]
movsx ecx, byte [edx]
jmp 0x6c8bfb
movsx ecx, byte [eax]
lea edx, [ebp - 0x64]
mov edi, 0x704fe0
add ecx, 0x917d16
sub edi, edx
mov esi, 0xf
nop dword [eax]
mov eax, ecx
lea edx, [edx + 1]
imul ecx, ecx, 0xc7f5
shr eax, 0xb
xor al, byte [edi + edx - 1]
mov byte [edx - 1], al
add ecx, 0x763adb7
sub esi, 1
jne 0x6c8c10
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0xb4]
call fcn.006c7070
mov dword [ebp - 0x98], eax
push ecx
push 0x24
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xf
call fcn.006ba330
cmp dword [ebp - 0x20], 0x10
lea eax, [ebp - 0x34]
jb 0x6c8c65
mov edx, dword [ebp - 0x34]
movsx ecx, byte [edx]
jmp 0x6c8c6b
movsx ecx, byte [eax]
lea edx, [ebp - 0x34]
mov edi, 0x705380
add ecx, 0x917d16
sub edi, edx
mov esi, 0x24
nop dword [eax]
mov eax, ecx
lea edx, [edx + 1]
imul ecx, ecx, 0xdcf5
shr eax, 0xb
xor al, byte [edx + edi - 1]
mov byte [edx - 1], al
add ecx, 0x763adb7
sub esi, 1
jne 0x6c8c80
push ecx
push dword [ebp - 0xa0]
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
push dword [ebp - 0x98]
cmovae edx, dword [ebp - 0x34]
push ecx
lea ecx, [ebp - 0xa4]
call fcn.006cd050
add esp, 0x10
lea ecx, [ebp - 0x34]
mov esi, dword [eax]
call fcn.006ba2e0
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], 0x6ffa60
test ecx, ecx
je 0x6c8cf2
push ecx
call fcn.006e3fab
add esp, 4
lea ecx, [ebp - 0x64]
call fcn.006ba2e0
lea ecx, [ebp - 0xe8]
call fcn.006d9070
mov eax, esi
jmp 0x6c9119
lea eax, [ebp - 0xe8]
mov dword [ebp - 4], 0
push eax
mov ecx, edi
call fcn.006c91f0
mov esi, eax
mov dword [ebp - 0xa4], esi
test esi, esi
jns 0x6c9038
mov eax, dword [0x70d8a8]
push ecx
push 0x24
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x9c], eax
call fcn.006ba330
cmp dword [ebp - 0x50], 0x10
lea eax, [ebp - 0x64]
jb 0x6c8d58
mov edx, dword [ebp - 0x64]
movsx ecx, byte [edx]
jmp 0x6c8d5e
movsx ecx, byte [eax]
lea edx, [ebp - 0x64]
mov edi, 0x705290
add ecx, 0xa0bf60
sub edi, edx
mov esi, 0x24
mov eax, ecx
lea edx, [edx + 1]
imul ecx, ecx, 0xdcf5
shr eax, 4
xor al, byte [edi + edx - 1]
mov byte [edx - 1], al
add ecx, 0x82a0b79
sub esi, 1
jne 0x6c8d70
cmp dword [ebp - 0x50], 0x10
lea eax, [ebp - 0x64]
push 0x704414
cmovae eax, dword [ebp - 0x64]
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x98], eax
call fcn.006c6f50
push 0x704f38
lea ecx, [ebp - 0x2c]
call fcn.006c6f50
mov eax, dword [ebp - 0xa4]
add eax, 0x25
cmp eax, 0x27
ja case.0x6c8dd0.36
jmp dword [eax*4 + 0x6c9144]
mov eax, 0x706264
jmp 0x6c8f22
mov eax, 0x70627c
jmp 0x6c8f22
mov eax, 0x706278
jmp 0x6c8f22
mov eax, 0x70629c
jmp 0x6c8f22
mov eax, 0x706288
jmp 0x6c8f22
mov eax, 0x7062b0
jmp 0x6c8f22
mov eax, 0x7062a4
jmp 0x6c8f22
mov eax, 0x7062d0
jmp 0x6c8f22
mov eax, 0x7062c0
jmp 0x6c8f22
mov eax, 0x7062f0
jmp 0x6c8f22
mov eax, 0x7062e0
jmp 0x6c8f22
mov eax, 0x706310
jmp 0x6c8f22
mov eax, 0x706304
jmp 0x6c8f22
mov eax, 0x706334
jmp 0x6c8f22
mov eax, 0x706324
jmp 0x6c8f22
mov eax, 0x70634c
jmp 0x6c8f22
mov eax, 0x706344
jmp 0x6c8f22
mov eax, 0x70636c
jmp 0x6c8f22
mov eax, 0x70635c
jmp 0x6c8f22
mov eax, 0x706390
jmp 0x6c8f22
mov eax, 0x70637c
jmp 0x6c8f22
mov eax, 0x7063b0
jmp 0x6c8f22
mov eax, 0x7063a0
jmp 0x6c8f22
mov eax, 0x7063d0
jmp 0x6c8f22
mov eax, 0x7063c0
jmp 0x6c8f22
mov eax, 0x7063e4
jmp 0x6c8f22
mov eax, 0x7063dc
jmp 0x6c8f22
mov eax, 0x7063fc
jmp 0x6c8f22
mov eax, 0x7063f0
jmp 0x6c8f22
mov eax, 0x70641c
jmp 0x6c8f22
mov eax, 0x706410
jmp 0x6c8f22
mov eax, 0x706438
jmp 0x6c8f22
mov eax, 0x70642c
jmp 0x6c8f22
mov eax, 0x706454
jmp 0x6c8f22
mov eax, 0x706448
jmp 0x6c8f22
mov eax, 0x70646c
jmp 0x6c8f22
mov eax, 0x70645c
jmp 0x6c8f22
mov eax, 0x70648c
jmp 0x6c8f22
mov eax, 0x706480
push eax
lea ecx, [ebp - 0x44]
call fcn.006c6f50
push 0x704f3c
lea ecx, [ebp - 0xb4]
call fcn.006c6f50
push ecx
push 0x10
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0x1b
call fcn.006ba330
cmp dword [ebp - 0x68], 0x10
lea eax, [ebp - 0x7c]
jb 0x6c8f5b
mov edx, dword [ebp - 0x7c]
movsx ecx, byte [edx]
jmp 0x6c8f61
movsx ecx, byte [eax]
lea edx, [ebp - 0x7c]
mov edi, 0x705420
add ecx, 0xa0bf60
sub edi, edx
mov esi, 0x10
mov eax, ecx
lea edx, [edx + 1]
imul ecx, ecx, 0xc8f5
shr eax, 4
xor al, byte [edi + edx - 1]
mov byte [edx - 1], al
add ecx, 0x82a0b79
sub esi, 1
jne 0x6c8f73
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x11c]
call fcn.006c7070
lea ecx, [ebp - 0xf8]
push ecx
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x44]
push ecx
lea ecx, [ebp - 0xb4]
push ecx
push dword [ebp - 0xa0]
lea ecx, [ebp - 0x10c]
push eax
call fcn.006c6730
push ecx
push esi
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x9c]
push 0x69
push dword [ebp - 0x98]
push dword [eax + 4]
call fcn.006d3a60
lea ecx, [ebp - 0x10c]
call fcn.006c70e0
lea ecx, [ebp - 0x11c]
call fcn.006c70e0
lea ecx, [ebp - 0x7c]
call fcn.006ba2e0
lea ecx, [ebp - 0xb4]
call fcn.006c70e0
lea ecx, [ebp - 0x44]
call fcn.006c70e0
lea ecx, [ebp - 0x2c]
call fcn.006c70e0
lea ecx, [ebp - 0xf8]
call fcn.006c70e0
lea ecx, [ebp - 0x64]
call fcn.006ba2e0
mov esi, dword [ebp - 0xa4]
lea ecx, [ebp - 0xe8]
call fcn.006d9070
mov eax, esi
jmp 0x6c9119
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.006df1da
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
call fcn.006e3ec2
call fcn.006e3ec2
nop
push ss
invalid