Function at 0x6800ab7d
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x68031884]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x2c], eax
xor eax, eax
push esi
push edi
mov esi, dword [ebp + 0xc]
lea edi, [ebp - 0x24]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
cmp dword [ebp + 0x18], 0x10
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jbe 0x6800abc0
mov esi, 0x80090004
jmp 0x6800aef8
mov edi, dword [ebp + 8]
mov eax, 0x660e
cmp edi, eax
push ebx
ja 0x6800acb7
je 0x6800aca0
mov eax, edi
sub eax, 0x6601
je 0x6800ac78
dec eax
je 0x6800ac4b
dec eax
je 0x6800ac1f
sub eax, 6
jne 0x6800acca
push 0x180
call fcn.68021ec0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x28], ebx
je 0x6800ad06
push dword [ebp + 0x10]
push esi
call fcn.6801f260
push esi
push ebx
call fcn.6801f2c0
jmp 0x6800ad2e
push 0x180
call fcn.68021ec0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x28], ebx
je 0x6800ad06
push dword [ebp + 0x10]
push esi
call fcn.6801f260
push esi
push ebx
call fcn.6801f300
jmp 0x6800ad2e
push 0x80
call fcn.68021ec0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x28], ebx
je 0x6800ad06
mov eax, dword [ebp + 0x10]
mov ecx, eax
shl ecx, 3
push ecx
push eax
push esi
push ebx
call fcn.6801f340
jmp 0x6800ad2e
push 0x80
call fcn.68021ec0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x28], ebx
je 0x6800ad06
push dword [ebp + 0x10]
push esi
call fcn.6801f260
push esi
push ebx
call fcn.6801ec80
jmp 0x6800ad2e
push 0x1e4
call fcn.68021ec0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x28], ebx
je 0x6800ad06
push 0xa
jmp 0x6800ad27
mov eax, edi
sub eax, 0x660f
je 0x6800ad12
dec eax
je 0x6800acf3
sub eax, 0x1f1
je 0x6800acd4
mov esi, 0x80090008
jmp 0x6800aef7
push 0x102
call fcn.68021ec0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x28], ebx
je 0x6800ad06
push esi
push dword [ebp + 0x10]
push ebx
call fcn.68019b4d
jmp 0x6800ad2e
push 0x1e4
call fcn.68021ec0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x28], ebx
jne 0x6800ad0e
push 8
pop esi
jmp 0x6800aeed
push 0xe
jmp 0x6800ad27
push 0x1e4
call fcn.68021ec0
mov ebx, eax
test ebx, ebx
mov dword [ebp - 0x28], ebx
je 0x6800ad06
push 0xc
push esi
push ebx
call fcn.68019960
cmp dword [ebp + 0x24], 1
mov edx, 0x6801
jne 0x6800ad7b
cmp edi, edx
je 0x6800ad7b
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp - 0x30]
mov eax, ecx
shr ecx, 2
lea edi, [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x6800ad78
xor ecx, ecx
cmp eax, ecx
jbe 0x6800ad78
lea eax, [ebp - 0x24]
sub esi, eax
lea eax, [ebp + ecx - 0x24]
mov bl, byte [esi + eax]
xor byte [eax], bl
inc ecx
cmp ecx, dword [ebp + 0x18]
jb 0x6800ad66
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp + 8]
cmp edi, 0x6601
je 0x6800ae78
cmp edi, 0x6602
je 0x6800ae4f
cmp edi, 0x6603
je 0x6800ae26
cmp edi, 0x6609
je 0x6800ae26
cmp edi, 0x660d
jbe 0x6800ae1c
cmp edi, 0x6610
jbe 0x6800aded
cmp edi, edx
jne 0x6800ae1c
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp - 0x30]
mov eax, ecx
shr ecx, 2
cmp dword [ebp + 0x24], 1
lea edi, [ebp - 0x14]
je 0x6800add2
mov esi, dword [ebp - 0x2c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0x18]
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.68019a00
jmp 0x6800ae9f
cmp dword [ebp + 0x24], 1
jne 0x6800ae08
push 1
push ebx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.68019890
jmp 0x6800aea5
push 0
push ebx
push dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
push eax
call fcn.68019890
jmp 0x6800ae9f
mov esi, 0x80090008
jmp 0x6800aeed
cmp dword [ebp + 0x24], 1
jne 0x6800ae3e
push 1
push ebx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.680174a0
jmp 0x6800aea5
push 0
push ebx
push dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
push eax
call fcn.680174a0
jmp 0x6800ae9f
cmp dword [ebp + 0x24], 1
jne 0x6800ae67
push 1
push ebx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.680166d0
jmp 0x6800aea5
push 0
push ebx
push dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
push eax
call fcn.680166d0
jmp 0x6800ae9f
cmp dword [ebp + 0x24], 1
jne 0x6800ae90
push 1
push ebx
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.68015620
jmp 0x6800aea5
push 0
push ebx
push dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
push eax
call fcn.68015620
cmp dword [ebp + 0x24], 1
jne 0x6800aeaa
mov esi, dword [ebp - 0x2c]
jmp 0x6800aecf
mov esi, dword [ebp + 0x20]
xor ecx, ecx
cmp esi, ecx
je 0x6800aecc
cmp dword [ebp + 0x18], ecx
jbe 0x6800aecc
lea eax, [ebp - 0x14]
sub esi, eax
lea eax, [ebp + ecx - 0x14]
mov dl, byte [esi + eax]
xor byte [eax], dl
inc ecx
cmp ecx, dword [ebp + 0x18]
jb 0x6800aebd
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp + 0x18]
lea edi, [ebp - 0x14]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x6800aee0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x6800aeeb
mov esi, 0x80090020
jmp 0x6800aeed
xor esi, esi
test ebx, ebx
je 0x6800aef7
push ebx
call fcn.68021f03
pop ebx
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
call fcn.68014cb9
leave
ret 0x20