Function at 0x6800d086
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1fc
mov eax, dword [0x68031884]
push ebx
xor ebx, ebx
test word [ebp + 0x14], 0xfbea
push esi
mov esi, dword [ebp + 0x18]
mov dword [ebp - 4], eax
push edi
mov dword [ebp - 0x1fc], esi
mov dword [ebp - 0x1ec], ebx
mov dword [ebp - 0x1d0], ebx
mov dword [ebp - 0x1f4], ebx
mov dword [ebp - 0x1d8], ebx
mov dword [ebp - 0x1dc], ebx
mov dword [ebp - 0x1f0], ebx
je 0x6800d0dd
mov esi, 0x80090009
jmp 0x6800d4d1
push ebx
push dword [ebp + 8]
call fcn.680112e5
mov edi, eax
cmp edi, ebx
mov dword [ebp - 0x1ec], edi
jne 0x6800d0fc
mov esi, 0x80090001
jmp 0x6800d4d1
mov ebx, dword [ebp + 0xc]
push ebx
push edi
call fcn.68008de9
test eax, eax
je 0x6800d1bf
lea eax, [ebp - 0x1e0]
push eax
push 1
push dword [ebp + 8]
push dword [ebp + 0x10]
call fcn.68011309
test eax, eax
je 0x6800d13b
cmp eax, 0x80090020
jne 0x6800d4cb
mov esi, 0x80090002
jmp 0x6800d4d1
mov eax, dword [ebp - 0x1e0]
cmp dword [eax + 4], 0x4c02
jne 0x6800d15b
push esi
push dword [ebp + 0x14]
push ebx
push eax
push edi
call fcn.68014299
jmp 0x6800d4cb
lea eax, [ebp - 0x1f0]
push eax
lea eax, [ebp - 0x1d4]
push eax
push dword [ebp + 0x14]
push ebx
push edi
call fcn.68008eb6
test eax, eax
jne 0x6800d4cb
cmp ebx, 0x6601
mov esi, 0x6603
jne 0x6800d194
mov dword [ebp - 0x1d4], 8
jmp 0x6800d1b6
cmp ebx, 0x6609
jne 0x6800d1a8
mov dword [ebp - 0x1d4], 0x10
jmp 0x6800d1b6
cmp ebx, esi
jne 0x6800d1b6
mov dword [ebp - 0x1d4], 0x18
cmp dword [ebp - 0x1f0], 0
je 0x6800d1c9
mov esi, 0x80090008
jmp 0x6800d4d1
mov eax, dword [ebp - 0x1e0]
test byte [eax + 0x18], 1
jne 0x6800d131
push 0x26
pop ecx
xor eax, eax
lea edi, [ebp - 0x11c]
rep stosd dword es:[edi], eax
xor edi, edi
push edi
lea eax, [ebp - 0x1e8]
push eax
lea eax, [ebp - 0x11c]
push eax
push 2
push dword [ebp + 0x10]
mov dword [ebp - 0x1e8], 0x98
push dword [ebp + 8]
call sym.RSAENH.dll_CPGetHashParam
test eax, eax
jne 0x6800d21d
call dword [sym.imp._CKERNEL.DLL_GetLastError]
jmp 0x6800d4cb
mov eax, dword [ebp - 0x1e0]
mov eax, dword [eax + 4]
cmp eax, 0x800c
je 0x6800d3df
cmp eax, 0x800d
je 0x6800d3df
cmp eax, 0x800e
je 0x6800d3df
cmp ebx, esi
je 0x6800d267
cmp ebx, 0x660e
je 0x6800d267
cmp ebx, 0x660f
je 0x6800d267
cmp ebx, 0x6610
jne 0x6800d3df
lea ecx, [ebp - 0x1d8]
push ecx
push edi
push edi
push eax
push dword [ebp + 8]
call sym.RSAENH.dll_CPCreateHash
test eax, eax
je 0x6800d212
lea eax, [ebp - 0x1dc]
push eax
mov eax, dword [ebp - 0x1e0]
push edi
push edi
push dword [eax + 4]
push dword [ebp + 8]
call sym.RSAENH.dll_CPCreateHash
test eax, eax
je 0x6800d212
push 0x10
pop ecx
mov eax, 0x36363636
lea edi, [ebp - 0x84]
rep stosd dword es:[edi], eax
push 0x10
mov eax, 0x5c5c5c5c
pop ecx
lea edi, [ebp - 0x44]
rep stosd dword es:[edi], eax
xor eax, eax
cmp dword [ebp - 0x1e8], eax
jbe 0x6800d2e1
mov cl, byte [ebp + eax - 0x11c]
xor byte [ebp + eax - 0x84], cl
xor byte [ebp + eax - 0x44], cl
inc eax
cmp eax, dword [ebp - 0x1e8]
jb 0x6800d2c6
push 0
push 0x40
pop ebx
push ebx
lea eax, [ebp - 0x84]
push eax
push dword [ebp - 0x1d8]
push dword [ebp + 8]
call sym.RSAENH.dll_CPHashData
test eax, eax
je 0x6800d212
push 0
push ebx
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x1dc]
push dword [ebp + 8]
call sym.RSAENH.dll_CPHashData
test eax, eax
je 0x6800d212
push 0x10
pop ecx
xor eax, eax
push eax
lea edi, [ebp - 0x19c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x19c]
push eax
push 2
push dword [ebp - 0x1d8]
mov dword [ebp - 0x1e4], ebx
push dword [ebp + 8]
call sym.RSAENH.dll_CPGetHashParam
test eax, eax
je 0x6800d212
mov ecx, dword [ebp - 0x1e4]
mov eax, ecx
shr ecx, 2
lea esi, [ebp - 0x19c]
lea edi, [ebp - 0x11c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x10
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop ecx
xor eax, eax
push eax
lea edi, [ebp - 0x15c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x1f8]
push eax
lea eax, [ebp - 0x15c]
push eax
push 2
push dword [ebp - 0x1dc]
mov dword [ebp - 0x1f8], ebx
push dword [ebp + 8]
call sym.RSAENH.dll_CPGetHashParam
test eax, eax
je 0x6800d212
mov ecx, dword [ebp - 0x1f8]
mov edi, dword [ebp - 0x1e4]
mov ebx, dword [ebp + 0xc]
mov eax, ecx
shr ecx, 2
lea edi, [ebp + edi - 0x11c]
lea esi, [ebp - 0x15c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x1d4]
mov eax, ecx
shr ecx, 2
lea esi, [ebp - 0x11c]
lea edi, [ebp - 0x1cc]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
test byte [ebp + 0x14], 1
rep movsb byte es:[edi], byte [esi]
je 0x6800d40f
mov dword [ebp - 0x1f4], 1
mov esi, dword [ebp - 0x1d4]
lea eax, [ebp - 0x1d0]
push eax
xor edi, edi
push edi
push edi
lea eax, [ebp - 0x1cc]
push eax
push dword [ebp + 8]
push esi
push dword [ebp - 0x1f4]
push ebx
call fcn.680085dc
cmp eax, edi
jne 0x6800d4cb
mov ebx, dword [ebp + 0x14]
and ebx, 4
je 0x6800d491
mov eax, dword [ebp - 0x1ec]
mov eax, dword [eax + 0x184]
cmp eax, edi
je 0x6800d467
cmp eax, 1
je 0x6800d467
mov eax, dword [ebp - 0x1d0]
mov dword [eax + 0x40], edi
jmp 0x6800d474
mov eax, dword [ebp - 0x1d0]
mov dword [eax + 0x40], 0xb
mov ecx, dword [eax + 0x40]
mov edx, ecx
shr ecx, 2
lea esi, [ebp + esi - 0x11c]
lea edi, [eax + 0x44]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x6800d497
mov eax, dword [ebp - 0x1d0]
mov esi, dword [ebp - 0x1fc]
push eax
push 2
push esi
call fcn.68011355
test eax, eax
jne 0x6800d4cb
cmp dword [ebp - 0x1d4], 5
jne 0x6800d4cf
test byte [ebp + 0x14], 0x10
jne 0x6800d4cf
test ebx, ebx
jne 0x6800d4cf
push dword [esi]
push dword [ebp + 8]
call fcn.6800af56
test eax, eax
je 0x6800d4cf
mov esi, eax
jmp 0x6800d4d1
xor esi, esi
xor eax, eax
xor ebx, ebx
cmp esi, ebx
sete al
cmp dword [ebp - 0x1ec], ebx
mov edi, eax
je 0x6800d510
cmp dword [ebp - 0x1d8], ebx
je 0x6800d4fa
push dword [ebp - 0x1d8]
push dword [ebp + 8]
call sym.RSAENH.dll_CPDestroyHash
cmp dword [ebp - 0x1dc], ebx
je 0x6800d510
push dword [ebp - 0x1dc]
push dword [ebp + 8]
call sym.RSAENH.dll_CPDestroyHash
cmp edi, ebx
jne 0x6800d52e
cmp dword [ebp - 0x1d0], ebx
je 0x6800d527
push dword [ebp - 0x1d0]
call fcn.68008758
push esi
call dword [sym.imp._CKERNEL.DLL_SetLastError]
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.68014cb9
leave
ret 0x14