Function at 0x682c0c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x10]
add edi, 0xdeadbeef
add edi, ecx
mov edx, edi
mov esi, edi
mov dword [ebp + 0x10], edx
test bl, 3
jne 0x682d04
cmp ecx, 0xc
jbe switch.0x00682cb4
lea eax, [ecx - 0xd]
xor edx, edx
push 0xc
pop ecx
div ecx
inc eax
mov dword [ebp + 8], eax
add edi, dword [ebx + 8]
add esi, dword [ebx + 4]
mov edx, edi
mov eax, dword [ebp + 0x10]
sub eax, edi
rol edx, 4
add eax, dword [ebx]
add edi, esi
xor edx, eax
sub esi, edx
mov eax, edx
rol eax, 6
add edx, edi
xor eax, esi
sub edi, eax
mov ecx, eax
rol ecx, 8
add eax, edx
xor ecx, edi
sub edx, ecx
mov esi, ecx
rol esi, 0x10
add ecx, eax
xor esi, edx
mov edx, esi
mov dword [ebp + 0x10], esi
sub eax, edx
ror esi, 0xd
xor esi, eax
add edx, ecx
sub ecx, esi
mov dword [ebp + 0x10], edx
mov edi, esi
add esi, edx
rol edi, 4
xor edi, ecx
mov ecx, dword [ebp + 0xc]
push 0xc
pop eax
sub ecx, eax
add ebx, eax
sub dword [ebp + 8], 1
mov dword [ebp + 0xc], ecx
jne 0x682c46
cmp ecx, eax
ja 0x682f95
jmp dword [ecx*4 + 0x682fe0]
add edi, dword [ebx + 8]
add esi, dword [ebx + 4]
add edx, dword [ebx]
jmp 0x682f92
mov eax, dword [ebx + 8]
and eax, 0xffffff
add edi, eax
jmp case.0x682cb4.8
movzx eax, word [ebx + 8]
jmp 0x682cd0
movzx eax, byte [ebx + 8]
jmp 0x682cd0
mov eax, dword [ebx + 4]
and eax, 0xffffff
add esi, eax
jmp case.0x682cb4.4
movzx eax, word [ebx + 4]
jmp 0x682ce8
movzx eax, byte [ebx + 4]
jmp 0x682ce8
mov eax, dword [ebx]
and eax, 0xffffff
jmp 0x682f90
test bl, 1
jne 0x682e4f
cmp ecx, 0xc
jbe switch.0x00682db5
lea eax, [ecx - 0xd]
xor edx, edx
push 0xc
pop ecx
div ecx
inc eax
mov dword [ebp + 8], eax
movzx edx, word [ebx + 6]
movzx ecx, word [ebx + 4]
add ecx, esi
movzx eax, word [ebx]
movzx esi, word [ebx + 8]
add esi, edi
shl edx, 0x10
add edx, ecx
movzx ecx, word [ebx + 0xa]
shl ecx, 0x10
add esi, ecx
movzx ecx, word [ebx + 2]
shl ecx, 0x10
mov edi, esi
add ecx, eax
rol edi, 4
sub ecx, esi
add esi, edx
add ecx, dword [ebp + 0x10]
xor edi, ecx
sub edx, edi
mov eax, edi
add edi, esi
rol eax, 6
xor eax, edx
sub esi, eax
mov ecx, eax
rol ecx, 8
add eax, edi
xor ecx, esi
sub edi, ecx
mov edx, ecx
rol edx, 0x10
add ecx, eax
xor edx, edi
mov esi, edx
sub eax, edx
ror esi, 0xd
add edx, ecx
xor esi, eax
mov dword [ebp + 0x10], edx
sub ecx, esi
mov edi, esi
rol edi, 4
add esi, edx
xor edi, ecx
mov ecx, dword [ebp + 0xc]
push 0xc
pop eax
sub ecx, eax
add ebx, eax
sub dword [ebp + 8], 1
mov dword [ebp + 0xc], ecx
jne 0x682d24
cmp ecx, eax
ja 0x682f95
jmp dword [ecx*4 + 0x683014]
movzx eax, word [ebx + 8]
movzx ecx, word [ebx + 0xa]
add edi, eax
movzx eax, word [ebx + 4]
shl ecx, 0x10
add esi, eax
movzx eax, word [ebx]
add edi, ecx
movzx ecx, word [ebx + 6]
add edx, eax
shl ecx, 0x10
add esi, ecx
movzx ecx, word [ebx + 2]
shl ecx, 0x10
add edx, ecx
jmp 0x682f92
movzx eax, byte [ebx + 0xa]
shl eax, 0x10
add edi, eax
movzx eax, word [ebx + 8]
add edi, eax
movzx ecx, word [ebx + 6]
movzx eax, word [ebx + 4]
shl ecx, 0x10
add esi, eax
add esi, ecx
movzx ecx, word [ebx + 2]
movzx eax, word [ebx]
shl ecx, 0x10
add eax, edx
add eax, ecx
mov dword [ebp + 0x10], eax
jmp 0x682f95
movzx eax, byte [ebx + 8]
jmp 0x682dfa
movzx eax, byte [ebx + 6]
shl eax, 0x10
add esi, eax
movzx eax, word [ebx + 4]
add esi, eax
jmp case.0x682db5.4
movzx eax, byte [ebx + 4]
jmp 0x682e34
movzx eax, byte [ebx + 2]
shl eax, 0x10
add edx, eax
movzx eax, word [ebx]
jmp 0x682f90
cmp ecx, 0xc
jbe switch.0x00682f29
lea eax, [ecx - 0xd]
xor edx, edx
push 0xc
pop ecx
div ecx
inc eax
mov dword [ebp + 8], eax
movzx edx, byte [ebx + 7]
movzx ecx, byte [ebx + 6]
movzx eax, byte [ebx + 5]
shl edx, 8
add edx, ecx
movzx ecx, byte [ebx + 0xb]
shl ecx, 8
shl edx, 8
add edx, eax
movzx eax, byte [ebx + 4]
add esi, eax
shl edx, 8
movzx eax, byte [ebx + 0xa]
add esi, edx
add ecx, eax
movzx edx, byte [ebx + 8]
movzx eax, byte [ebx + 9]
add edx, edi
shl ecx, 8
add ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 8
add edx, ecx
movzx ecx, byte [ebx + 3]
shl ecx, 8
mov edi, edx
add ecx, eax
rol edi, 4
movzx eax, byte [ebx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [ebx]
shl ecx, 8
add ecx, eax
sub ecx, edx
add edx, esi
add ecx, dword [ebp + 0x10]
xor edi, ecx
sub esi, edi
mov eax, edi
add edi, edx
rol eax, 6
xor eax, esi
sub edx, eax
mov ecx, eax
rol ecx, 8
add eax, edi
xor ecx, edx
sub edi, ecx
mov edx, ecx
rol edx, 0x10
add ecx, eax
xor edx, edi
mov esi, edx
sub eax, edx
ror esi, 0xd
add edx, ecx
xor esi, eax
mov dword [ebp + 0x10], edx
sub ecx, esi
mov edi, esi
rol edi, 4
add esi, edx
xor edi, ecx
mov ecx, dword [ebp + 0xc]
push 0xc
pop eax
sub ecx, eax
add ebx, eax
sub dword [ebp + 8], 1
mov dword [ebp + 0xc], ecx
jne 0x682e66
cmp ecx, eax
ja 0x682f95
jmp dword [ecx*4 + 0x683048]
movzx eax, byte [ebx + 0xb]
shl eax, 0x18
add edi, eax
movzx eax, byte [ebx + 0xa]
shl eax, 0x10
add edi, eax
movzx eax, byte [ebx + 9]
shl eax, 8
add edi, eax
movzx eax, byte [ebx + 8]
add edi, eax
movzx eax, byte [ebx + 7]
shl eax, 0x18
add esi, eax
movzx eax, byte [ebx + 6]
shl eax, 0x10
add esi, eax
movzx eax, byte [ebx + 5]
shl eax, 8
add esi, eax
movzx eax, byte [ebx + 4]
add esi, eax
movzx eax, byte [ebx + 3]
shl eax, 0x18
add edx, eax
movzx eax, byte [ebx + 2]
shl eax, 0x10
add edx, eax
movzx eax, byte [ebx + 1]
shl eax, 8
add edx, eax
movzx eax, byte [ebx]
add edx, eax
mov dword [ebp + 0x10], edx
xor edi, esi
mov eax, esi
rol eax, 0xe
sub edi, eax
mov eax, edi
mov edx, edi
xor edx, dword [ebp + 0x10]
rol eax, 0xb
sub edx, eax
xor esi, edx
mov eax, edx
ror eax, 7
sub esi, eax
mov eax, esi
xor edi, esi
rol eax, 0x10
sub edi, eax
mov eax, edi
mov ecx, edi
rol eax, 4
xor ecx, edx
sub ecx, eax
mov eax, ecx
xor esi, ecx
rol eax, 0xe
sub esi, eax
mov eax, esi
xor edi, esi
ror eax, 8
sub edi, eax
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret