Function at 0x5bc400
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x100
push esi
mov esi, dword [esp + 0x108]
xorps xmm0, xmm0
push edi
mov edi, dword [esp + 0x110]
mov ecx, esi
movups xmmword [esp + 0x4c], xmm0
mov dword [esp + 0x84], 0
mov edx, edi
movups xmmword [esp + 0x5c], xmm0
mov dword [esp + 0x88], 0
movups xmmword [esp + 0x6c], xmm0
movq qword [esp + 0x7c], xmm0
nop dword [eax + eax]
mov eax, dword [ecx]
lea ecx, [ecx + 4]
inc dword [esp + eax*4 + 0x4c]
sub edx, 1
jne 0x5bc450
cmp dword [esp + 0x4c], edi
jne 0x5bc481
mov eax, dword [esp + 0x120]
pop edi
pop esi
mov dword [eax], edx
mov eax, dword [esp + 0x11c]
mov dword [eax], edx
xor eax, eax
add esp, 0x100
ret
mov eax, dword [esp + 0x124]
mov ecx, 1
push ebx
mov ebx, dword [eax]
cmp dword [esp + ecx*4 + 0x50], 0
jne 0x5bc49d
inc ecx
cmp ecx, 0xf
jbe 0x5bc490
cmp ebx, ecx
mov dword [esp + 0x10], ecx
mov edx, 0xf
cmovb ebx, ecx
nop dword [eax + eax]
cmp dword [esp + edx*4 + 0x50], 0
jne 0x5bc4bc
sub edx, 1
jne 0x5bc4b0
cmp ebx, edx
mov dword [esp + 0x2c], edx
push ebp
cmova ebx, edx
mov ebp, 1
shl ebp, cl
mov dword [esp + 0x20], ebx
mov dword [eax], ebx
cmp ecx, edx
jae 0x5bc4f1
nop word [eax + eax]
sub ebp, dword [esp + ecx*4 + 0x54]
js 0x5bc87c
inc ecx
add ebp, ebp
cmp ecx, edx
jb 0x5bc4e0
lea ebx, [edx*4]
mov eax, dword [esp + ebx + 0x54]
sub ebp, eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x50], ebp
js 0x5bc87c
add eax, ebp
xor ecx, ecx
mov dword [esp + ebx + 0x54], eax
mov dword [esp + 0x98], ecx
sub edx, 1
je 0x5bc535
xor eax, eax
add ecx, dword [esp + eax + 0x58]
lea eax, [eax + 4]
mov dword [esp + eax + 0x98], ecx
sub edx, 1
jne 0x5bc522
mov ebx, dword [esp + 0x138]
xor ecx, ecx
nop
mov edx, dword [esi]
lea esi, [esi + 4]
test edx, edx
je 0x5bc55b
mov eax, dword [esp + edx*4 + 0x94]
mov dword [ebx + eax*4], ecx
inc eax
mov dword [esp + edx*4 + 0x94], eax
inc ecx
cmp ecx, edi
jb 0x5bc540
mov ebx, dword [esp + 0x34]
xor edi, edi
mov edx, dword [esp + 0x20]
or ecx, 0xffffffff
xor ebp, ebp
mov dword [esp + 0x24], edi
xor esi, esi
mov dword [esp + 0x10], ecx
mov eax, dword [esp + ebx + 0x94]
mov ebx, edx
mov dword [esp + 0x4c], eax
neg ebx
mov eax, dword [esp + 0x138]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x94], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0xd4], edi
mov dword [esp + 0x34], ebp
cmp eax, dword [esp + 0x30]
jg 0x5bc85e
lea eax, [esp + eax*4 + 0x54]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
nop dword [eax + eax]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
test ecx, ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x10]
je 0x5bc84a
mov eax, dword [esp + 0x28]
nop word [eax + eax]
mov dword [esp + 0x48], eax
dec eax
mov dword [esp + 0x28], eax
lea eax, [ebx + edx]
cmp dword [esp + 0x14], eax
jle 0x5bc71c
sub ebx, edx
mov ebp, ebx
jmp 0x5bc614
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
mov ebx, eax
add ebp, edx
mov dword [esp + 0x40], ebx
inc ecx
mov dword [esp + 0x44], ebp
sub edi, ebx
mov dword [esp + 0x10], ecx
cmp edi, edx
mov eax, 1
cmova edi, edx
mov edx, dword [esp + 0x14]
sub edx, ebx
mov ecx, edx
shl eax, cl
cmp eax, dword [esp + 0x48]
jbe 0x5bc673
mov esi, dword [esp + 0x2c]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x28]
add eax, ecx
cmp edx, edi
jae 0x5bc673
inc edx
cmp edx, edi
jae 0x5bc673
nop dword [eax + eax]
mov ecx, dword [esi + 4]
lea esi, [esi + 4]
add eax, eax
cmp eax, ecx
jbe 0x5bc673
inc edx
sub eax, ecx
cmp edx, edi
jb 0x5bc660
mov edi, dword [esp + 0x134]
mov ecx, edx
mov esi, 1
shl esi, cl
mov eax, dword [edi]
lea ecx, [eax + esi]
cmp ecx, 0x5a0
ja 0x5bc87c
mov ebp, dword [esp + 0x130]
mov dword [edi], ecx
mov edi, dword [esp + 0x24]
lea ebp, [ebp + eax*8]
mov eax, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0x34], ebp
mov dword [esp + eax*4 + 0xd4], ebp
test ecx, ecx
je 0x5bc702
mov eax, dword [esp + 0x20]
mov byte [esp + 0x39], al
mov eax, dword [esp + 0x10]
mov byte [esp + 0x38], dl
mov edx, edi
mov dword [esp + ecx*4 + 0x94], edi
mov ecx, dword [esp + 0x44]
shr edx, cl
mov ecx, dword [esp + eax*4 + 0xd0]
mov eax, ebp
sub eax, ecx
sar eax, 3
sub eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + edx*8], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + edx*8 + 4], eax
mov ecx, dword [esp + 0x10]
jmp 0x5bc70b
mov eax, dword [esp + 0x128]
mov dword [eax], ebp
mov edx, dword [esp + 0x20]
lea eax, [ebx + edx]
cmp dword [esp + 0x14], eax
jg 0x5bc610
mov edx, dword [esp + 0x14]
mov al, dl
mov ecx, dword [esp + 0x4c]
sub al, bl
mov byte [esp + 0x39], al
mov eax, dword [esp + 0x138]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jb 0x5bc745
mov byte [esp + 0x38], 0xc0
jmp 0x5bc78d
mov ecx, dword [ecx]
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x1c], ecx
cmp ecx, eax
jae 0x5bc768
cmp ecx, 0x100
sbb al, al
and al, 0xa0
add al, 0x60
mov byte [esp + 0x38], al
jmp 0x5bc788
sub ecx, eax
mov eax, dword [esp + 0x124]
mov al, byte [eax + ecx*4]
add al, 0x50
mov byte [esp + 0x38], al
mov eax, dword [esp + 0x120]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x1c], ecx
add dword [esp + 0x18], 4
mov ecx, edx
mov eax, edi
sub ecx, ebx
mov edx, 1
shl edx, cl
mov ecx, ebx
shr eax, cl
cmp eax, esi
jae 0x5bc7d5
mov ebx, dword [esp + 0x1c]
lea ecx, [eax*8]
add ecx, ebp
lea edi, [edx*8]
mov ebp, dword [esp + 0x38]
nop word [eax + eax]
mov dword [ecx], ebp
add eax, edx
mov dword [ecx + 4], ebx
add ecx, edi
cmp eax, esi
jb 0x5bc7c0
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, 1
lea ecx, [ecx - 1]
shl eax, cl
test edi, eax
je 0x5bc7ef
xor edi, eax
shr eax, 1
test edi, eax
jne 0x5bc7e7
mov edx, dword [esp + 0x20]
xor edi, eax
mov ecx, ebx
mov dword [esp + 0x24], edi
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x10]
dec eax
and eax, edi
cmp eax, dword [esp + ecx*4 + 0x94]
je 0x5bc836
dec ecx
sub ebx, edx
mov dword [esp + 0x10], ecx
mov eax, 1
mov ecx, ebx
shl eax, cl
mov ecx, dword [esp + 0x10]
dec eax
and eax, edi
cmp eax, dword [esp + ecx*4 + 0x94]
jne 0x5bc812
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x34]
test eax, eax
jne 0x5bc5f0
mov eax, dword [esp + 0x14]
add dword [esp + 0x2c], 4
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x30]
jle 0x5bc5d0
cmp dword [esp + 0x50], 0
je 0x5bc88c
cmp dword [esp + 0x30], 1
je 0x5bc88c
pop ebp
pop ebx
pop edi
mov eax, 0xfffffffb
pop esi
add esp, 0x100
ret
pop ebp
pop ebx
pop edi
mov eax, 0xfffffffd
pop esi
add esp, 0x100
ret
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x100
ret