Function at 0x68b820
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov edx, 0x9e3779b9
mov eax, 0x7f4a7c13
cmp ebp, 0x18
jae 0x68b854
mov ebx, ecx
mov dword [esp], edi
mov dword [esp + 8], ebp
jmp 0x68b9af
mov ebx, ecx
mov dword [esp + 8], ebp
mov dword [esp], edi
mov ebp, ecx
mov ecx, edx
add ebx, dword [esi]
mov edx, dword [esp]
mov dword [esp + 0xc], esi
adc edx, dword [esi + 4]
add ebp, dword [esi + 8]
adc edi, dword [esi + 0xc]
add eax, dword [esi + 0x10]
adc ecx, dword [esi + 0x14]
sub ebx, ebp
sbb edx, edi
sub ebx, eax
mov esi, ecx
sbb edx, ecx
shr esi, 0xb
xor esi, ebx
sub ebp, eax
sbb edi, ecx
sub ebp, esi
sbb edi, edx
mov ebx, edi
mov edi, edx
shld edi, esi, 9
xor edi, ebx
mov ebx, esi
shl ebx, 9
xor ebx, ebp
sub eax, esi
mov ebp, edi
sbb ecx, edx
sub eax, ebx
sbb ecx, edi
shld ebp, ebx, 0x18
xor ebp, eax
mov eax, edi
shr eax, 8
xor eax, ecx
sub esi, ebx
sbb edx, edi
sub esi, ebp
mov ecx, eax
sbb edx, eax
shr ecx, 6
xor ecx, esi
sub ebx, ebp
mov esi, edx
sbb edi, eax
sub ebx, ecx
sbb edi, edx
shld esi, ecx, 0x17
xor esi, edi
mov edi, ecx
shl edi, 0x17
xor edi, ebx
sub ebp, ecx
mov ebx, esi
sbb eax, edx
sub ebp, edi
mov dword [esp + 4], edi
sbb eax, esi
shld ebx, edi, 0x1b
mov edi, esi
shr edi, 5
xor ebx, ebp
xor edi, eax
mov eax, dword [esp + 4]
sub ecx, eax
sbb edx, esi
sub ecx, ebx
sbb edx, edi
mov ebp, edx
mov dword [esp], edx
mov edx, edi
shr edx, 3
xor edx, ecx
mov ecx, eax
sub ecx, ebx
mov eax, edx
sbb esi, edi
sub ecx, edx
sbb esi, ebp
shl eax, 0x11
mov dword [esp + 4], ecx
xor eax, esi
sub ebx, edx
sbb edi, ebp
sub ebx, ecx
mov ebp, eax
mov esi, eax
sbb edi, eax
shr ebp, 0xb
shld esi, ecx, 0x15
xor ebp, edi
mov edi, dword [esp]
xor esi, ebx
sub edx, ecx
mov ecx, ebp
mov ebx, ebp
sbb edi, eax
sub edx, esi
sbb edi, ebp
shr ecx, 0xc
shld ebx, esi, 0x14
xor edi, ecx
mov ecx, dword [esp + 4]
xor ebx, edx
mov edx, edi
mov dword [esp], edx
sub ecx, esi
sbb eax, ebp
sub ecx, ebx
mov dword [esp + 4], ecx
mov ecx, edi
mov ecx, ebx
sbb eax, edi
shld edi, ebx, 0x12
shl ecx, 0x12
xor edi, eax
xor ecx, dword [esp + 4]
sub esi, ebx
mov eax, edi
sbb ebp, edx
mov edx, edi
sub esi, ecx
sbb ebp, edi
shr edx, 0x16
shld eax, ecx, 0xa
xor edx, ebp
mov ebp, dword [esp + 8]
xor eax, esi
mov esi, dword [esp + 0xc]
add ebp, 0xffffffe8
add esi, 0x18
cmp ebp, 0x17
mov dword [esp + 8], ebp
ja 0x68b85d
add eax, dword [esp + 0x28]
adc edx, 0
dec dword [esp + 8]
cmp dword [esp + 8], 0x16
ja case.default.0x68b9cd
mov dword [esp + 4], eax
mov eax, dword [esp + 8]
jmp dword [eax*4 + 0x6b01cc]
movzx eax, byte [esi + 0x16]
shl eax, 0x18
add edx, eax
movzx eax, byte [esi + 0x15]
shl eax, 0x10
add edx, eax
movzx eax, byte [esi + 0x14]
shl eax, 8
add edx, eax
movzx eax, byte [esi + 0x13]
add edx, eax
movzx eax, byte [esi + 0x12]
shl eax, 0x18
add dword [esp + 4], eax
adc edx, 0
movzx eax, byte [esi + 0x11]
shl eax, 0x10
add dword [esp + 4], eax
adc edx, 0
movzx eax, byte [esi + 0x10]
shl eax, 8
add dword [esp + 4], eax
adc edx, 0
movzx eax, byte [esi + 0xf]
shl eax, 0x18
add edi, eax
movzx eax, byte [esi + 0xe]
shl eax, 0x10
add edi, eax
movzx eax, byte [esi + 0xd]
shl eax, 8
add edi, eax
movzx eax, byte [esi + 0xc]
add edi, eax
movzx eax, byte [esi + 0xb]
shl eax, 0x18
add ecx, eax
adc edi, 0
movzx eax, byte [esi + 0xa]
shl eax, 0x10
add ecx, eax
adc edi, 0
movzx eax, byte [esi + 9]
shl eax, 8
add ecx, eax
adc edi, 0
movzx eax, byte [esi + 8]
add ecx, eax
adc edi, 0
movzx eax, byte [esi + 7]
shl eax, 0x18
add dword [esp], eax
movzx eax, byte [esi + 6]
shl eax, 0x10
add dword [esp], eax
movzx eax, byte [esi + 5]
shl eax, 8
add dword [esp], eax
movzx eax, byte [esi + 4]
add dword [esp], eax
movzx eax, byte [esi + 3]
shl eax, 0x18
add ebx, eax
adc dword [esp], 0
movzx eax, byte [esi + 2]
shl eax, 0x10
add ebx, eax
adc dword [esp], 0
movzx eax, byte [esi + 1]
shl eax, 8
add ebx, eax
adc dword [esp], 0
movzx eax, byte [esi]
add ebx, eax
mov eax, dword [esp + 4]
adc dword [esp], 0
mov esi, dword [esp]
sub ebx, ecx
mov ebp, eax
sbb esi, edi
sub ebx, eax
mov eax, edx
sbb esi, edx
shr eax, 0xb
xor eax, ebx
sub ecx, ebp
mov dword [esp], esi
sbb edi, edx
sub ecx, eax
mov ebx, edi
mov edi, eax
sbb ebx, esi
shl edi, 9
shld esi, eax, 9
xor edi, ecx
mov ecx, dword [esp]
xor esi, ebx
sub ebp, eax
sbb edx, ecx
sub ebp, edi
mov ebx, ebp
mov ebp, esi
sbb edx, esi
shld ebp, edi, 0x18
xor ebp, ebx
mov ebx, esi
shr ebx, 8
xor ebx, edx
sub eax, edi
sbb ecx, esi
sub eax, ebp
mov edx, ebx
sbb ecx, ebx
shr edx, 6
xor edx, eax
sub edi, ebp
mov dword [esp], ecx
mov eax, ecx
sbb esi, ebx
sub edi, edx
sbb esi, ecx
mov ecx, edx
shld eax, edx, 0x17
shl ecx, 0x17
xor eax, esi
xor ecx, edi
mov edi, dword [esp]
sub ebp, edx
mov esi, eax
mov dword [esp + 4], ecx
sbb ebx, edi
sub ebp, ecx
sbb ebx, eax
shld esi, ecx, 0x1b
xor esi, ebp
mov ebp, eax
shr ebp, 5
xor ebp, ebx
sub edx, ecx
sbb edi, eax
sub edx, esi
mov ecx, ebp
sbb edi, ebp
shr ecx, 3
xor ecx, edx
mov edx, dword [esp + 4]
mov ebx, ecx
sub edx, esi
sbb eax, ebp
sub edx, ecx
sbb eax, edi
shl ebx, 0x11
xor ebx, eax
sub esi, ecx
mov eax, edi
sbb ebp, edi
sub esi, edx
mov edi, ebx
sbb ebp, ebx
shld edi, edx, 0x15
xor edi, esi
mov esi, ebx
shr esi, 0xb
xor esi, ebp
sub ecx, edx
sbb eax, ebx
sub ecx, edi
mov ebp, esi
sbb eax, esi
shld ebp, edi, 0x14
xor ebp, ecx
mov ecx, esi
shr ecx, 0xc
xor ecx, eax
sub edx, edi
mov eax, ebp
sbb ebx, esi
sub edx, ebp
mov dword [esp + 4], edx
sbb ebx, ecx
shl eax, 0x12
mov edx, ecx
xor eax, dword [esp + 4]
shld edx, ebp, 0x12
xor edx, ebx
sub edi, ebp
sbb esi, ecx
sub edi, eax
sbb esi, edx
shrd eax, edx, 0x16
shr edx, 0x16
xor eax, edi
xor edx, esi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret