Function at 0x6798b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x28
mov edx, dword [esp + 0x3c]
mov ebp, 0x9e3779b1
mov edi, dword [edx]
mov eax, dword [edx + 4]
cmp edi, 0x20
mov dword [esp], eax
sbb eax, 0
mov ecx, 0x165667c5
jb 0x679b27
mov eax, dword [edx + 8]
mov dword [esp + 0xc], eax
mov esi, dword [edx + 0xc]
mov edx, esi
shld edx, eax, 1
mov dword [esp + 4], edi
mov edi, eax
shld edi, esi, 1
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x18], ecx
mov eax, ecx
shld eax, ebx, 7
shld ebx, ecx, 7
add ebx, edi
adc eax, edx
mov edx, dword [esp + 0x3c]
mov edi, dword [edx + 0x18]
mov edx, dword [esp + 0x3c]
mov ebp, dword [edx + 0x1c]
mov dword [esp + 0x20], ebp
mov edx, ebp
shld edx, edi, 0xc
mov dword [esp + 0x1c], edi
shld edi, ebp, 0xc
add edi, ebx
adc edx, eax
mov eax, dword [esp + 0x3c]
mov ebp, dword [eax + 0x20]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x24]
mov dword [esp + 8], eax
mov ebx, eax
shld ebx, ebp, 0x12
mov dword [esp + 0x24], ebp
shld ebp, eax, 0x12
add ebp, edi
mov dword [esp + 0x10], ebp
adc ebx, edx
mov ecx, dword [esp + 0xc]
mov eax, ecx
mov edi, 0x27d4eb4f
mul edi
mov ebp, 0xc2b2ae3d
imul ecx, ebp
add ecx, edx
imul esi, edi
add esi, ecx
mov ecx, esi
shld ecx, eax, 0x1f
shld eax, esi, 0x1f
mov esi, eax
mov edx, 0x9e3779b1
imul esi, edx
mov edi, 0x85ebca87
mul edi
add edx, esi
imul ecx, edi
add ecx, edx
xor ecx, ebx
xor eax, dword [esp + 0x10]
mov esi, eax
mov edx, 0x9e3779b1
imul esi, edx
mul edi
mov ebx, eax
add edx, esi
imul ecx, edi
add ecx, edx
mov eax, 0xc2b2ae63
add ebx, eax
mov eax, 0x85ebca77
adc ecx, eax
mov esi, dword [esp + 0x14]
mov eax, esi
mov ebp, 0x27d4eb4f
mul ebp
mov edi, 0xc2b2ae3d
imul esi, edi
add esi, edx
mov edx, dword [esp + 0x18]
imul edx, ebp
add edx, esi
mov esi, edx
shld esi, eax, 0x1f
shld eax, edx, 0x1f
mov edi, eax
mov edx, 0x9e3779b1
imul edi, edx
mov ebp, 0x85ebca87
mul ebp
add edx, edi
imul esi, ebp
add esi, edx
xor esi, ecx
xor eax, ebx
mov edi, eax
mov ecx, 0x9e3779b1
imul edi, ecx
mov ebp, 0x85ebca87
mul ebp
mov ecx, eax
mov ebx, edx
add ebx, edi
imul esi, ebp
add ebx, esi
mov eax, 0xc2b2ae63
add ecx, eax
mov eax, 0x85ebca77
adc ebx, eax
mov esi, dword [esp + 0x1c]
mov eax, esi
mov edi, 0x27d4eb4f
mul edi
mov ebp, 0xc2b2ae3d
imul esi, ebp
add esi, edx
mov edx, dword [esp + 0x20]
imul edx, edi
add edx, esi
mov ebp, edx
shld ebp, eax, 0x1f
shld eax, edx, 0x1f
mov esi, eax
mov edx, 0x9e3779b1
imul esi, edx
mov edi, 0x85ebca87
mul edi
add edx, esi
imul ebp, edi
add ebp, edx
xor ebp, ebx
xor eax, ecx
mov ecx, 0x85ebca87
imul ebp, ecx
mov edi, eax
mul ecx
mov esi, eax
mov ecx, edx
mov eax, 0x9e3779b1
imul edi, eax
add ecx, edi
add ecx, ebp
mov ebp, 0x9e3779b1
mov eax, 0xc2b2ae63
add esi, eax
mov eax, 0x85ebca77
adc ecx, eax
mov edi, dword [esp + 0x24]
mov eax, edi
mov edx, 0x27d4eb4f
mul edx
mov ebx, 0xc2b2ae3d
imul edi, ebx
add edi, edx
mov edx, dword [esp + 8]
mov ebx, 0x27d4eb4f
imul edx, ebx
add edx, edi
mov edi, edx
shld edi, eax, 0x1f
shld eax, edx, 0x1f
mov ebx, eax
imul ebx, ebp
mov edx, 0x85ebca87
mul edx
add edx, ebx
mov ebx, 0x85ebca87
imul edi, ebx
add edi, edx
xor edi, ecx
xor eax, esi
mov ecx, eax
imul ecx, ebp
mul ebx
mov esi, eax
mov ebx, edx
add ebx, ecx
mov eax, 0x85ebca87
imul edi, eax
add ebx, edi
mov edi, dword [esp + 4]
mov edx, dword [esp + 0x3c]
mov eax, 0xc2b2ae63
add esi, eax
mov eax, 0x85ebca77
jmp 0x679b34
mov eax, 0x27d4eb2f
mov esi, dword [edx + 0x18]
add esi, ecx
mov ebx, dword [edx + 0x1c]
adc ebx, eax
mov eax, dword [esp]
add esi, edi
adc ebx, eax
lea eax, [edx + 0x28]
and edi, 0x1f
cmp edi, 8
jb 0x679bfb
lea ecx, [edi - 8]
test cl, 8
jne 0x679c04
mov eax, dword [edx + 0x28]
mov dword [esp + 8], ecx
mov ecx, eax
mov dword [esp], edx
mov edi, 0x27d4eb4f
mul edi
mov ebp, 0xc2b2ae3d
imul ecx, ebp
add ecx, edx
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 0x2c]
imul edx, edi
add edx, ecx
mov ecx, edx
shld ecx, eax, 0x1f
shld eax, edx, 0x1f
mov ebp, eax
mov edx, 0x9e3779b1
imul ebp, edx
mov edx, 0x85ebca87
mul edx
mov edi, eax
add ebp, edx
mov eax, 0x85ebca87
imul ecx, eax
add ecx, ebp
mov ebp, 0x9e3779b1
add dword [esp], 0x30
xor ecx, ebx
xor edi, esi
mov ebx, ecx
shld ebx, edi, 0x1b
shld edi, ecx, 0x1b
mov ecx, dword [esp + 8]
mov eax, edi
mov esi, 0x85ebca87
mul esi
imul edi, ebp
add edx, edi
mov edi, dword [esp]
imul ebx, esi
add ebx, edx
mov esi, eax
mov eax, 0xc2b2ae63
add esi, eax
mov eax, 0x85ebca77
adc ebx, eax
mov edx, edi
mov dword [esp + 4], ecx
cmp ecx, 8
jae 0x679c13
jmp 0x679d37
mov ecx, edi
mov edi, eax
jmp 0x679d37
mov dword [esp + 4], edi
mov edx, eax
cmp ecx, 8
jb 0x679d37
mov ecx, dword [esp + 4]
nop word [eax + eax]
mov dword [esp + 4], ecx
mov dword [esp], edx
mov eax, dword [edx]
mov ecx, eax
mov edx, 0xc2b2ae3d
imul ecx, edx
mov edi, 0x27d4eb4f
mul edi
add ecx, edx
mov edx, dword [esp]
mov edx, dword [edx + 4]
imul edx, edi
add edx, ecx
mov ecx, edx
shld ecx, eax, 0x1f
shld eax, edx, 0x1f
mov edi, eax
imul edi, ebp
mov ebp, 0x85ebca87
mul ebp
add edi, edx
imul ecx, ebp
add ecx, edi
xor ecx, ebx
xor eax, esi
mov ebp, ecx
shld ebp, eax, 0x1b
shld eax, ecx, 0x1b
mov ecx, dword [esp]
mov esi, dword [ecx + 8]
mov ecx, eax
mov edx, 0x9e3779b1
imul ecx, edx
mov ebx, 0x85ebca87
mul ebx
mov edi, eax
add ecx, edx
imul ebp, ebx
add ebp, ecx
mov eax, 0xc2b2ae63
add edi, eax
mov eax, 0x85ebca77
adc ebp, eax
mov ecx, esi
mov eax, esi
mov ebx, 0x27d4eb4f
mul ebx
mov esi, eax
mov eax, 0xc2b2ae3d
imul ecx, eax
add ecx, edx
mov eax, dword [esp]
mov eax, dword [eax + 0xc]
imul eax, ebx
add eax, ecx
mov ecx, eax
shld ecx, esi, 0x1f
shld esi, eax, 0x1f
mov eax, esi
mov edx, 0x85ebca87
mul edx
mov ebx, 0x9e3779b1
imul esi, ebx
add esi, edx
mov edx, 0x85ebca87
imul ecx, edx
add ecx, esi
xor ecx, ebp
mov ebp, 0x9e3779b1
xor eax, edi
mov ebx, ecx
shld ebx, eax, 0x1b
shld eax, ecx, 0x1b
mov ecx, eax
mov esi, 0x85ebca87
mul esi
imul ecx, ebp
add edx, ecx
imul ebx, esi
add ebx, edx
mov edx, dword [esp]
add edx, 0x10
mov esi, eax
mov ecx, dword [esp + 4]
mov eax, 0xc2b2ae63
add esi, eax
mov eax, 0x85ebca77
adc ebx, eax
add ecx, 0xfffffff0
cmp ecx, 7
ja 0x679c20
mov edi, edx
cmp ecx, 4
jae 0x679d45
test ecx, ecx
jne 0x679da9
jmp 0x679eb9
mov dword [esp + 8], ecx
mov ecx, dword [edi]
mov eax, ecx
mov edx, 0x85ebca87
mul edx
mov dword [esp], edi
mov edi, eax
imul ecx, ebp
add ecx, edx
xor ecx, ebx
xor edi, esi
mov ebx, ecx
shld ebx, edi, 0x17
shld edi, ecx, 0x17
mov eax, edi
mov ecx, 0x27d4eb4f
mul ecx
mov esi, 0xc2b2ae3d
imul edi, esi
add edx, edi
mov edi, dword [esp]
imul ebx, ecx
mov ecx, 0x9e3779f9
add ebx, edx
add edi, 4
mov esi, eax
mov eax, 0x165667b1
add esi, ecx
mov ecx, dword [esp + 8]
adc ebx, eax
add ecx, 0xfffffffc
test ecx, ecx
je 0x679eb9
test cl, 1
jne 0x679dba
mov edx, ecx
cmp ecx, 1
jne 0x679e08
jmp 0x679eb9
movzx eax, byte [edi]
mov dword [esp + 8], ecx
mov ecx, eax
mov edx, 0x27d4eb2f
imul ecx, edx
mov edx, 0x165667c5
mul edx
add ecx, edx
xor ecx, ebx
xor eax, esi
mov ebx, ecx
shld ebx, eax, 0xb
shld eax, ecx, 0xb
mov ecx, eax
mov esi, 0x85ebca87
mul esi
imul ecx, ebp
add edx, ecx
mov ecx, dword [esp + 8]
inc edi
imul ebx, esi
add ebx, edx
lea edx, [ecx - 1]
mov esi, eax
cmp ecx, 1
je 0x679eb9
mov eax, edi
xor edi, edi
mov dword [esp + 4], edx
mov dword [esp], eax
nop word cs:[eax + eax]
mov eax, dword [esp]
movzx eax, byte [eax + edi]
mov ecx, eax
mov edx, 0x27d4eb2f
imul ecx, edx
mov edx, 0x165667c5
mul edx
add ecx, edx
xor ecx, ebx
xor eax, esi
mov esi, ecx
shld esi, eax, 0xb
shld eax, ecx, 0xb
mov ebx, eax
imul ebx, ebp
mov ecx, 0x85ebca87
mul ecx
mov ecx, eax
add ebx, edx
mov eax, 0x85ebca87
imul esi, eax
add esi, ebx
mov eax, dword [esp]
movzx eax, byte [eax + edi + 1]
mov ebp, eax
mov edx, 0x27d4eb2f
imul ebp, edx
mov edx, 0x165667c5
mul edx
add ebp, edx
xor ebp, esi
xor eax, ecx
mov ebx, ebp
shld ebx, eax, 0xb
shld eax, ebp, 0xb
mov ebp, 0x9e3779b1
mov ecx, eax
mov edx, 0x85ebca87
mul edx
imul ecx, ebp
add edx, ecx
mov ecx, 0x85ebca87
imul ebx, ecx
add ebx, edx
mov edx, dword [esp + 4]
add edi, 2
mov esi, eax
cmp edx, edi
jne 0x679e20
mov eax, ebx
shr eax, 1
xor eax, esi
mov ebp, 0xc2b2ae3d
imul ebp, eax
mov ecx, 0x27d4eb4f
mul ecx
mov edi, eax
mov esi, edx
add esi, ebp
imul ebx, ecx
add esi, ebx
mov eax, esi
shld eax, edi, 3
mov ecx, esi
shr ecx, 0x1d
xor esi, ecx
xor edi, eax
mov ecx, 0x9e3779f9
imul esi, ecx
mov eax, edi
mul ecx
mov ecx, 0x165667b1
imul ecx, edi
add edx, ecx
add edx, esi
xor eax, edx
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret