Function at 0x5bdd60
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 4]
sub esp, 0xc
push ebp
mov ebp, dword [esp + 0x18]
test edx, edx
je 0x5bdf92
mov eax, dword [esp + 0x24]
push ebx
push esi
push edi
cmp eax, 5
jne 0x5bde5e
mov ecx, dword [esp + 0x2c]
mov ebx, ebp
mov edi, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
cmp edx, 2
jne 0x5bde00
test ecx, ecx
je 0x5bdf8f
mov eax, ecx
lea ecx, [edi*4]
mov dword [esp + 0x20], eax
nop dword [eax]
mov esi, 2
cmp edi, esi
jbe 0x5bddef
nop dword [eax]
mov eax, dword [ebx + esi*4 - 4]
mov ecx, dword [ebx + esi*4]
and eax, 0xff800000
add eax, ecx
add ecx, dword [ebx + esi*4 - 4]
xor ecx, eax
and ecx, 0x7fffff
xor ecx, eax
mov dword [ebx + esi*4], ecx
inc esi
cmp esi, edi
jb 0x5bddc0
mov eax, dword [esp + 0x20]
lea ecx, [edi*4]
add ebx, ecx
sub eax, 1
mov dword [esp + 0x20], eax
jne 0x5bddb0
mov ecx, dword [esp + 0x2c]
jmp 0x5bde10
test edx, edx
jle 0x5bdf8f
test ecx, ecx
je 0x5bdf8f
lea ebx, [edi*4]
mov eax, 1
cmp edi, eax
jbe 0x5bde4b
mov ecx, dword [ebp + eax*4 - 4]
mov edx, dword [ebp + eax*4]
and ecx, 0xff800000
add ecx, edx
add edx, dword [ebp + eax*4 - 4]
xor edx, ecx
and edx, 0x7fffff
xor edx, ecx
mov dword [ebp + eax*4], edx
inc eax
cmp eax, edi
jb 0x5bde20
mov ecx, dword [esp + 0x10]
add ebp, ebx
sub ecx, 1
mov dword [esp + 0x10], ecx
jne 0x5bde17
pop edi
pop esi
pop ebx
pop ebp
add esp, 0xc
ret
cmp eax, 6
jne 0x5bdf8f
mov ecx, dword [esp + 0x2c]
mov eax, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
cmp edx, 2
jne 0x5bdf0d
test ecx, ecx
je 0x5bdf8f
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
nop
mov edx, 2
mov dword [esp + 0x10], edx
cmp ebp, edx
jbe 0x5bdeed
nop dword [eax]
mov ecx, dword [eax + edx*8]
mov edi, ecx
mov ebx, dword [eax + edx*8 - 4]
mov esi, dword [eax + edx*8 + 4]
add edi, dword [eax + edx*8 - 8]
mov edx, esi
adc edx, ebx
xor eax, eax
and ebx, 0xfff00000
add eax, ecx
mov ecx, dword [esp + 0x20]
adc ebx, esi
xor eax, eax
xor ebx, edx
xor eax, edi
and ebx, 0xfff00000
xor ebx, edx
mov edx, dword [esp + 0x10]
mov dword [ecx + edx*8], eax
mov eax, ecx
mov dword [eax + edx*8 + 4], ebx
inc edx
mov dword [esp + 0x10], edx
cmp edx, ebp
jb 0x5bdea0
mov ecx, dword [esp + 0x14]
lea edx, [ebp*8]
add eax, edx
sub ecx, 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
jne 0x5bde90
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
jmp 0x5bdf15
test edx, edx
jle 0x5bdf8f
test ecx, ecx
je 0x5bdf8f
mov eax, dword [esp + 0x28]
nop dword [eax]
mov edx, 1
mov dword [esp + 0x20], edx
cmp eax, edx
jbe 0x5bdf7d
nop dword [eax]
mov ecx, dword [ebp + edx*8]
mov edi, ecx
add edi, dword [ebp + edx*8 - 8]
mov ebx, dword [ebp + edx*8 - 4]
mov esi, dword [ebp + edx*8 + 4]
mov edx, esi
adc edx, ebx
xor eax, eax
and ebx, 0xfff00000
add eax, ecx
adc ebx, esi
xor eax, eax
xor ebx, edx
xor eax, edi
and ebx, 0xfff00000
xor ebx, edx
mov edx, dword [esp + 0x20]
mov dword [ebp + edx*8], eax
mov eax, dword [esp + 0x28]
mov dword [ebp + edx*8 + 4], ebx
inc edx
mov dword [esp + 0x20], edx
cmp edx, eax
jb 0x5bdf30
mov ecx, dword [esp + 0x18]
lea edx, [eax*8]
add ebp, edx
sub ecx, 1
mov dword [esp + 0x18], ecx
jne 0x5bdf20
pop edi
pop esi
pop ebx
pop ebp
add esp, 0xc
ret