Function at 0x5d0c20
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
push ebx
push ebp
push esi
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
push edi
mov edi, dword [esp + 0x24]
mov ebp, 0x6771c0
sub ebp, edi
mov dword [esp + 0x14], ebp
mov ebp, 0x6771c4
sub ebp, edi
mov dword [esp + 0x10], 0x6771c4
lea ebx, [edi + 8]
mov dword [esp + 0x18], ebp
jmp 0x5d0c60
mov edi, ecx
not edi
and edi, edx
mov ebp, esi
and ebp, ecx
or edi, ebp
add edi, dword [ebx - 8]
mov ebp, dword [esp + 0x10]
add edi, dword [ebp - 4]
mov ebp, ecx
add edi, eax
mov eax, edi
shl edi, 7
shr eax, 0x19
or eax, edi
add eax, ecx
and ebp, eax
mov edi, eax
not edi
and edi, esi
or edi, ebp
add edi, dword [ebx - 4]
add edi, edx
mov edx, dword [esp + 0x10]
add edi, dword [edx]
mov edx, edi
shl edi, 0xc
shr edx, 0x14
or edx, edi
add edx, eax
mov edi, edx
not edi
and edi, ecx
mov ebp, edx
and ebp, eax
or edi, ebp
mov ebp, dword [esp + 0x14]
add edi, dword [ebx + ebp]
add edi, dword [ebx]
add edi, esi
mov esi, edi
shl edi, 0x11
shr esi, 0xf
or esi, edi
add esi, edx
mov edi, esi
not edi
and edi, eax
mov ebp, edx
and ebp, esi
or edi, ebp
mov ebp, dword [esp + 0x18]
add edi, dword [ebx + ebp]
add edi, dword [ebx + 4]
add edi, ecx
mov ecx, edi
shr edi, 0xa
shl ecx, 0x16
or ecx, edi
mov edi, dword [esp + 0x10]
add edi, 0x10
add ecx, esi
add ebx, 0x10
cmp edi, 0x677204
mov dword [esp + 0x10], edi
jl 0x5d0c60
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x10], 0
mov edi, edx
not edi
and edi, esi
mov ebp, edx
and ebp, ecx
or edi, ebp
mov ebp, dword [esp + 0x10]
mov ebp, dword [ebp + 0x677200]
add edi, dword [ebx + ebp*4]
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x677240]
mov ebp, esi
add edi, eax
mov eax, edi
shl edi, 5
shr eax, 0x1b
or eax, edi
add eax, ecx
and ebp, eax
mov edi, esi
not edi
and edi, ecx
or edi, ebp
mov ebp, dword [esp + 0x10]
mov ebp, dword [ebp + 0x677204]
add edi, dword [ebx + ebp*4]
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x677244]
add edi, edx
mov edx, edi
shl edi, 9
shr edx, 0x17
or edx, edi
mov edi, ecx
not edi
and edi, eax
add edx, eax
mov ebp, edx
and ebp, ecx
or edi, ebp
mov ebp, dword [esp + 0x10]
mov ebp, dword [ebp + 0x677208]
add edi, dword [ebx + ebp*4]
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + str.QZ]
add edi, esi
mov esi, edi
shl edi, 0xe
shr esi, 0x12
or esi, edi
add esi, edx
mov edi, eax
not edi
and edi, edx
mov ebp, esi
and ebp, eax
or edi, ebp
mov ebp, dword [esp + 0x10]
mov ebp, dword [ebp + 0x67720c]
add edi, dword [ebx + ebp*4]
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x67724c]
add ebp, 0x10
add edi, ecx
mov ecx, edi
shl ecx, 0x14
shr edi, 0xc
or ecx, edi
add ecx, esi
cmp ebp, 0x40
mov dword [esp + 0x10], ebp
jl 0x5d0d14
mov edi, edx
xor edi, esi
xor ebp, ebp
mov dword [esp + 0x10], ebp
jmp 0x5d0e00
mov edi, dword [esp + 0x18]
jmp 0x5d0e00
mov ebp, dword [ebp + 0x677280]
xor edi, ecx
mov dword [esp + 0x18], edi
mov edi, dword [ebx + ebp*4]
mov ebp, dword [esp + 0x18]
add edi, ebp
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x6772c0]
add edi, eax
mov eax, edi
shl edi, 4
shr eax, 0x1c
or eax, edi
mov edi, dword [ebp + 0x677284]
mov edi, dword [ebx + edi*4]
add eax, ecx
mov ebp, esi
xor ebp, ecx
xor ebp, eax
add edi, ebp
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x6772c4]
add edi, edx
mov edx, edi
shl edi, 0xb
shr edx, 0x15
or edx, edi
mov edi, dword [ebp + 0x677288]
mov edi, dword [ebx + edi*4]
add edx, eax
mov ebp, edx
xor ebp, ecx
xor ebp, eax
add edi, ebp
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x6772c8]
mov ebp, dword [ebp + 0x67728c]
add edi, esi
mov esi, edi
shl edi, 0x10
shr esi, 0x10
or esi, edi
add esi, edx
mov edi, edx
xor edi, esi
mov dword [esp + 0x18], edi
xor edi, eax
mov dword [esp + 0x14], edi
mov edi, dword [ebx + ebp*4]
mov ebp, dword [esp + 0x14]
add edi, ebp
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x6772cc]
add ebp, 0x10
add edi, ecx
mov ecx, edi
shl ecx, 0x17
shr edi, 9
or ecx, edi
add ecx, esi
cmp ebp, 0x40
mov dword [esp + 0x10], ebp
jl 0x5d0df4
xor ebp, ebp
mov dword [esp + 0x10], ebp
lea ebx, [ebx]
mov edi, dword [ebp + 0x677300]
mov edi, dword [ebx + edi*4]
mov ebp, edx
not ebp
or ebp, ecx
xor ebp, esi
add edi, ebp
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x677340]
add edi, eax
mov eax, edi
shl edi, 6
shr eax, 0x1a
or eax, edi
mov edi, dword [ebp + 0x677304]
mov edi, dword [ebx + edi*4]
add eax, ecx
mov ebp, esi
not ebp
or ebp, eax
xor ebp, ecx
add edi, ebp
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x677344]
add edi, edx
mov edx, edi
shl edi, 0xa
shr edx, 0x16
or edx, edi
mov edi, dword [ebp + 0x677308]
mov edi, dword [ebx + edi*4]
mov ebp, ecx
not ebp
add edx, eax
or ebp, edx
xor ebp, eax
add edi, ebp
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x677348]
add edi, esi
mov esi, edi
shl edi, 0xf
shr esi, 0x11
or esi, edi
mov edi, dword [ebp + 0x67730c]
mov edi, dword [ebx + edi*4]
add esi, edx
mov ebp, eax
not ebp
or ebp, esi
xor ebp, edx
add edi, ebp
mov ebp, dword [esp + 0x10]
add edi, dword [ebp + 0x67734c]
add ebp, 0x10
add edi, ecx
mov ecx, edi
shl ecx, 0x15
shr edi, 0xb
or ecx, edi
add ecx, esi
cmp ebp, 0x40
mov dword [esp + 0x10], ebp
jl 0x5d0ed0
mov edi, dword [esp + 0x20]
mov ebx, dword [edi]
add ebx, eax
mov eax, dword [edi + 4]
add eax, ecx
mov dword [edi + 4], eax
mov eax, dword [edi + 8]
add eax, esi
mov dword [edi + 8], eax
mov eax, dword [edi + 0xc]
add eax, edx
mov dword [edi], ebx
mov dword [edi + 0xc], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret