Function at 0x56c3f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x5e6e74]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x38], ecx
lea ecx, [ebp - 0xc]
push 7
push 0x5bf660
call fcn.0056cad0
push 8
push str.91__
mov edx, str.KGS____
lea ecx, [ebp - 0x24]
call fcn.0056cad0
mov bl, byte [ebp - 6]
add esp, 0x10
mov dh, byte [ebp - 7]
xor esi, esi
mov ch, byte [ebp - 8]
mov al, byte [ebp - 9]
mov cl, byte [ebp - 0xa]
mov dl, byte [ebp - 0xb]
mov ah, byte [ebp - 0xc]
mov dword [ebp - 0x34], esi
mov byte [ebp - 0x28], bl
mov byte [ebp - 0x2b], dh
mov byte [ebp - 0x2a], ch
mov byte [ebp - 0x25], al
mov byte [ebp - 0x26], cl
mov byte [ebp - 0x27], dl
mov byte [ebp - 0x29], ah
nop dword [eax + eax]
movzx esi, byte [esi + 0x5bf6b0]
mov bh, ah
test esi, esi
je 0x56c503
add ah, ah
mov byte [ebp - 0xc], ah
test dl, dl
jns 0x56c480
or ah, 1
mov byte [ebp - 0xc], ah
add dl, dl
mov byte [ebp - 0xb], dl
test cl, cl
jns 0x56c48f
or dl, 1
mov byte [ebp - 0xb], dl
add cl, cl
mov byte [ebp - 0xa], cl
test al, al
jns 0x56c49e
or cl, 1
mov byte [ebp - 0xa], cl
add al, al
mov byte [ebp - 9], al
test ch, ch
jns 0x56c4ac
or al, 1
mov byte [ebp - 9], al
add ch, ch
mov byte [ebp - 8], ch
test dh, dh
jns 0x56c4bb
or ch, 1
mov byte [ebp - 8], ch
add dh, dh
mov byte [ebp - 7], dh
test bl, bl
jns 0x56c4ca
or dh, 1
mov byte [ebp - 7], dh
add bl, bl
mov byte [ebp - 6], bl
test al, 0x10
je 0x56c4de
and al, 0xef
or bl, 1
mov byte [ebp - 9], al
mov byte [ebp - 6], bl
test bh, bh
jns 0x56c4e7
or al, 0x10
mov byte [ebp - 9], al
add bh, bh
sub esi, 1
jne 0x56c471
mov byte [ebp - 0x2b], dh
mov byte [ebp - 0x2a], ch
mov byte [ebp - 0x29], ah
mov byte [ebp - 0x28], bl
mov byte [ebp - 0x27], dl
mov byte [ebp - 0x26], cl
mov byte [ebp - 0x25], al
xor eax, eax
xor edi, edi
mov dword [ebp - 0x1c], eax
mov word [ebp - 0x18], ax
nop
movzx edx, byte [edi + 0x5bf630]
mov cl, 7
mov al, dl
shr edx, 3
and al, 7
sub cl, al
mov al, byte [ebp + edx - 0xc]
shr al, cl
test al, 1
je 0x56c54a
mov eax, edi
lea esi, [ebp - 0x1c]
shr eax, 3
mov ecx, edi
add esi, eax
and ecx, 7
mov eax, 7
sub eax, ecx
movzx edx, byte [esi]
bts edx, eax
mov byte [esi], dl
inc edi
cmp edi, 0x30
jl 0x56c510
xor eax, eax
mov dword [ebp - 0x14], eax
mov word [ebp - 0x10], ax
nop dword [eax]
movzx ebx, byte [eax + 0x5bf360]
mov cl, 7
mov dl, bl
shr ebx, 3
and dl, 7
sub cl, dl
mov dl, byte [ebp + ebx - 0x20]
shr dl, cl
test dl, 1
je 0x56c59c
mov ecx, eax
lea esi, [ebp - 0x14]
shr ecx, 3
mov edx, eax
add esi, ecx
and edx, 7
mov ecx, 7
sub ecx, edx
movzx ebx, byte [esi]
bts ebx, ecx
mov byte [esi], bl
inc eax
cmp eax, 0x30
jl 0x56c560
mov al, byte [ebp - 0x1c]
lea edx, [ebp - 0x14]
xor byte [ebp - 0x14], al
lea ecx, [ebp - 0x30]
mov al, byte [ebp - 0x1b]
xor byte [ebp - 0x13], al
mov al, byte [ebp - 0x1a]
xor byte [ebp - 0x12], al
mov al, byte [ebp - 0x19]
xor byte [ebp - 0x11], al
mov al, byte [ebp - 0x18]
xor byte [ebp - 0x10], al
mov al, byte [ebp - 0x17]
xor byte [ebp - 0xf], al
call fcn.0056c7c0
mov dword [ebp - 0x14], 0
xor edi, edi
nop word [eax + eax]
movzx edx, byte [edi + 0x5bf610]
mov cl, 7
mov al, dl
shr edx, 3
and al, 7
sub cl, al
mov al, byte [ebp + edx - 0x30]
shr al, cl
test al, 1
je 0x56c61a
mov eax, edi
lea esi, [ebp - 0x14]
shr eax, 3
mov ecx, edi
add esi, eax
and ecx, 7
mov eax, 7
sub eax, ecx
movzx edx, byte [esi]
bts edx, eax
mov byte [esi], dl
inc edi
cmp edi, 0x20
jl 0x56c5e0
xor edx, edx
mov cl, byte [ebp + edx - 0x14]
xor cl, byte [ebp + edx - 0x24]
mov al, byte [ebp + edx - 0x20]
mov byte [ebp + edx - 0x24], al
mov byte [ebp + edx - 0x30], cl
mov byte [ebp + edx - 0x20], cl
inc edx
cmp edx, 4
jl 0x56c622
mov esi, dword [ebp - 0x34]
mov al, byte [ebp - 0x25]
inc esi
mov cl, byte [ebp - 0x26]
mov dl, byte [ebp - 0x27]
mov bl, byte [ebp - 0x28]
mov ah, byte [ebp - 0x29]
mov ch, byte [ebp - 0x2a]
mov dh, byte [ebp - 0x2b]
mov dword [ebp - 0x34], esi
cmp esi, 0x10
jl 0x56c460
mov ebx, dword [ebp - 0x38]
xorps xmm0, xmm0
xor edi, edi
movq qword [ebx], xmm0
movzx edx, byte [edi + 0x5bf5d0]
mov cl, 7
mov al, dl
shr edx, 3
and al, 7
sub cl, al
mov al, byte [ebp + edx - 0x24]
shr al, cl
test al, 1
je 0x56c6a8
mov esi, edi
mov eax, edi
shr esi, 3
and eax, 7
mov ecx, 7
sub ecx, eax
movzx edx, byte [esi + ebx]
bts edx, ecx
mov byte [esi + ebx], dl
inc edi
cmp edi, 0x40
jl 0x56c671
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00549544
mov esp, ebp
pop ebp
ret