Function at 0x10004c60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x1001a024]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x18]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
push 0x1f80
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 8], 0xffffffff
call fcn.10001a40
push esi
push 0x1fa0
mov dword [ebp - 0x1c], eax
call fcn.10001a40
push esi
push 0x1fc0
mov edi, eax
call fcn.10001a40
add esp, 0x18
lea edx, [ebp - 0x14]
mov esi, eax
mov ecx, edi
mov ebx, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10004ce3
add ecx, 4
add edx, 4
sub ebx, 4
jae 0x10004cd0
jmp 0x10004d42
mov ecx, dword [ebp - 0x1c]
mov ebx, edi
xor edx, edx
sub ebx, ecx
nop dword [eax]
lea eax, [ecx + edx]
mov cl, byte [eax + ebx]
xor cl, byte [eax]
cmp cl, 0xff
jne 0x10004d39
mov ecx, dword [ebp - 0x1c]
mov al, byte [edi + edx + 1]
xor al, byte [ecx + edx + 1]
cmp al, 0xff
jne 0x10004d38
mov al, byte [edi + edx + 2]
xor al, byte [ecx + edx + 2]
cmp al, 0xff
jne 0x10004d33
mov al, byte [edi + edx + 3]
xor al, byte [ecx + edx + 3]
cmp al, 0xff
jne 0x10004d2e
add edx, 4
cmp edx, 0x10
jb 0x10004cf0
jmp 0x10004d42
add edx, 3
jmp 0x10004d39
add edx, 2
jmp 0x10004d39
inc edx
cmp edx, 0x10
jb 0x10004f61
mov ecx, esi
lea edx, [ebp - 0x14]
mov edi, 0xc
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10004d66
add ecx, 4
add edx, 4
sub edi, 4
jae 0x10004d50
mov ebx, dword [ebp - 0x1c]
jmp 0x10004dbf
mov ebx, dword [ebp - 0x1c]
mov edi, esi
xor edx, edx
sub edi, ebx
nop
lea eax, [ebx + edx]
mov cl, byte [eax + edi]
xor cl, byte [eax]
cmp cl, 0xaa
jne 0x10004db6
mov al, byte [esi + edx + 1]
xor al, byte [ebx + edx + 1]
cmp al, cl
jne 0x10004db5
mov al, byte [esi + edx + 2]
xor al, byte [ebx + edx + 2]
cmp al, cl
jne 0x10004db0
mov al, byte [esi + edx + 3]
xor al, byte [ebx + edx + 3]
cmp al, cl
jne 0x10004dab
add edx, 4
cmp edx, 0x10
jb 0x10004d70
jmp 0x10004dbf
add edx, 3
jmp 0x10004db6
add edx, 2
jmp 0x10004db6
inc edx
cmp edx, 0x10
jb 0x10004f61
mov eax, dword [ebp + 0x14]
xor edi, edi
mov dword [ebp - 0x20], edi
add eax, 0xfffffff0
je 0x10004f61
mov edx, dword [ebp + 0x10]
lea eax, [ebx + 0xf]
xor esi, esi
lea ecx, [ebp - 0x14]
cmp ecx, eax
ja 0x10004e08
lea eax, [ebp - 5]
cmp eax, ebx
jb 0x10004e08
mov edi, ebx
mov eax, ecx
sub edi, eax
nop dword [eax]
mov al, byte [edx + esi]
lea ecx, [ebp - 0x14]
add ecx, esi
inc esi
xor al, byte [ecx + edi]
mov byte [ecx], al
cmp esi, 0x10
jb 0x10004df0
mov edi, dword [ebp - 0x20]
jmp 0x10004e16
movups xmm1, xmmword [edx]
movups xmm0, xmmword [ebx]
pxor xmm1, xmm0
movups xmmword [ebp - 0x14], xmm1
xor ecx, ecx
nop dword [eax + eax]
mov al, byte [ebp + ecx - 0x14]
cmp al, byte [ebp + ecx - 0xc]
jne 0x10004e32
inc ecx
cmp ecx, 8
jb 0x10004e20
jmp 0x10004e3b
cmp ecx, 8
jb 0x10004f4e
mov eax, dword [ebp + 0x14]
sub eax, edi
sub eax, 0x10
cmp eax, 0x10
jb 0x10004f4e
xor ebx, ebx
add eax, 0xfffffff0
mov dword [ebp - 0x24], eax
je 0x10004f4b
mov esi, dword [ebp + 0x10]
mov cl, byte [edx]
add esi, 0x12
add esi, edi
cmp byte [esi - 2], cl
lea edi, [esi - 2]
jne 0x10004f92
mov ecx, 1
nop word [eax + eax]
mov al, byte [edi + ecx]
cmp al, byte [edx + ecx]
jne 0x10004f84
mov al, byte [esi + ecx - 1]
cmp al, byte [edx + ecx + 1]
jne 0x10004f83
mov al, byte [esi + ecx]
cmp al, byte [edx + ecx + 2]
jne 0x10004f7e
mov al, byte [esi + ecx + 1]
cmp al, byte [edx + ecx + 3]
jne 0x10004f79
mov al, byte [esi + ecx + 2]
cmp al, byte [edx + ecx + 4]
jne 0x10004f74
add ecx, 5
cmp ecx, 0x10
jb 0x10004e80
test edi, edi
je 0x10004f48
mov eax, edi
sub eax, dword [ebp + 0x10]
sub eax, 0x10
cmp eax, 0x10
jb 0x10004f48
xor ebx, ebx
add eax, 0xfffffff0
mov dword [ebp - 0x24], eax
je 0x10004f48
mov ch, byte [edx]
lea esi, [edi + 0x12]
nop dword [eax + eax]
cmp byte [esi - 2], ch
lea edi, [esi - 2]
jne 0x10004fb6
mov eax, 1
mov cl, byte [edi + eax]
cmp cl, byte [edx + eax]
jne 0x10004fae
mov cl, byte [esi + eax - 1]
cmp cl, byte [edx + eax + 1]
jne 0x10004fad
mov cl, byte [esi + eax]
cmp cl, byte [edx + eax + 2]
jne 0x10004fa8
mov cl, byte [esi + eax + 1]
cmp cl, byte [edx + eax + 3]
jne 0x10004fa3
mov cl, byte [esi + eax + 2]
cmp cl, byte [edx + eax + 4]
jne 0x10004f9e
add eax, 5
cmp eax, 0x10
jb 0x10004f01
test edi, edi
jne 0x10004fc2
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0x14]
inc edi
add eax, 0xfffffff0
mov dword [ebp - 0x20], edi
inc edx
cmp edi, eax
jb 0x10004dd3
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10008cc1
mov esp, ebp
pop ebp
ret
add ecx, 4
jmp 0x10004f84
add ecx, 3
jmp 0x10004f84
add ecx, 2
jmp 0x10004f84
inc ecx
cmp ecx, 0x10
jae 0x10004ecb
mov eax, dword [ebp - 0x24]
mov cl, byte [edx]
inc ebx
inc esi
cmp ebx, eax
jb 0x10004e64
jmp 0x10004f48
add eax, 4
jmp 0x10004fae
add eax, 3
jmp 0x10004fae
add eax, 2
jmp 0x10004fae
inc eax
cmp eax, 0x10
jae 0x10004f44
mov eax, dword [ebp - 0x24]
inc ebx
inc esi
cmp ebx, eax
jb 0x10004ef0
jmp 0x10004f48
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
movups xmm0, xmmword [eax + ecx]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 4]
xor ecx, ebp
movups xmmword [eax], xmm0
mov al, 1
call fcn.10008cc1
mov esp, ebp
pop ebp
ret