Function at 0x410d00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
mov eax, dword [0x6441a4]
xor eax, esp
mov dword [esp + 0x58], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
push esi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x24], esi
push edi
mov edi, dword [ebp + 0x10]
cmp ecx, ebx
je 0x410da2
mov esi, edx
cmp edi, 0x10
jb 0x410d97
mov eax, edi
shr eax, 4
mov dword [esp + 0xc], eax
push dword [esp + 0x28]
push ebx
push ecx
call dword [esp + 0x38]
add esp, 0xc
mov eax, ebx
sub esi, ebx
mov edx, 4
mov ecx, dword [esi + eax]
lea eax, [eax + 4]
xor dword [eax - 4], ecx
sub edx, 1
jne 0x410d67
mov ecx, dword [esp + 0x10]
sub edi, 0x10
mov esi, ecx
add ebx, 0x10
add ecx, 0x10
sub dword [esp + 0xc], 1
mov dword [esp + 0x10], ecx
jne 0x410d51
mov edx, dword [esp + 0x30]
mov dword [esp + 0x18], ebx
movups xmm0, xmmword [esi]
movups xmmword [edx], xmm0
jmp 0x410e41
mov dword [esp + 0x20], edi
cmp edi, 0x10
jb 0x410e41
mov eax, edx
lea edx, [esp + 0x54]
sub eax, edx
mov dword [esp + 0xc], eax
mov eax, edx
sub ebx, eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0x14], eax
mov eax, edi
shr eax, 4
mov dword [esp + 0x1c], eax
shl eax, 4
add dword [esp + 0x18], eax
push esi
lea eax, [esp + 0x58]
push eax
push ecx
call dword [esp + 0x38]
mov edi, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0xc]
xor esi, esi
nop
lea ecx, [esp + 0x54]
add ecx, esi
add esi, 4
mov eax, dword [eax + ecx]
xor eax, dword [ecx]
mov edx, dword [edi + ecx]
mov dword [ebx + ecx], eax
mov eax, dword [esp + 0xc]
mov dword [eax + ecx], edx
cmp esi, 0x10
jb 0x410df0
mov edi, dword [esp + 0x20]
add ebx, 0x10
mov ecx, dword [esp + 0x10]
sub edi, 0x10
add dword [esp + 0x14], 0x10
add ecx, 0x10
sub dword [esp + 0x1c], 1
mov esi, dword [esp + 0x28]
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], ecx
jne 0x410dd7
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
test edi, edi
je 0x411004
lea eax, [edx + 1]
mov esi, ebx
mov dword [esp + 0x38], eax
lea eax, [esp + 0x54]
sub eax, edx
mov dword [esp + 0x40], eax
mov eax, 1
sub eax, edx
mov dword [esp + 0x44], eax
lea eax, [esp + 0x55]
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, 2
sub eax, edx
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x56]
sub eax, edx
mov dword [esp + 0x50], eax
lea eax, [esp + 0x54]
sub eax, ecx
sub esi, edx
mov dword [esp + 0xc], eax
lea eax, [edx + 2]
mov dword [esp + 0x20], esi
mov dword [esp + 0x34], eax
nop dword [eax]
push dword [esp + 0x28]
lea eax, [esp + 0x58]
push eax
push ecx
call dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x34]
mov ecx, eax
mov dword [esp + 0x24], eax
add edx, esi
mov eax, dword [esp + 0x18]
xor ebx, ebx
sub dword [esp + 0x24], eax
not eax
mov esi, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x3c], eax
nop dword [eax]
cmp ebx, edi
jae 0x410f9d
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov cl, byte [ecx]
mov al, byte [eax + edx]
xor al, byte [esi - 1]
mov edx, dword [esp + 0x1c]
mov byte [edx - 2], al
mov eax, dword [esp + 0x3c]
add eax, edx
mov byte [esi - 1], cl
cmp eax, edi
jae 0x410f9c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
add ecx, esi
mov dl, byte [ecx + eax]
mov eax, dword [esp + 0x40]
mov al, byte [esi + eax]
xor al, byte [esi]
mov byte [ecx], al
mov eax, dword [esp + 0x44]
add eax, esi
mov byte [esi], dl
cmp eax, edi
jae 0x410f97
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov cl, byte [edx + eax]
mov eax, dword [esp + 0x48]
mov al, byte [esi + eax]
xor al, byte [esi + 1]
mov byte [edx], al
mov eax, dword [esp + 0x4c]
add eax, esi
mov byte [esi + 1], cl
cmp eax, edi
jae 0x410f92
mov eax, dword [esp + 0x14]
add ebx, 4
mov cl, byte [eax + 3]
mov eax, dword [esp + 0x50]
mov al, byte [esi + eax]
xor al, byte [esi + 2]
mov byte [edx + 1], al
add edx, 4
mov byte [esi + 2], cl
add esi, 4
mov ecx, dword [esp + 0x14]
add ecx, 4
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ecx
cmp ebx, 0x10
jb 0x410ee0
jmp 0x410f9d
add ebx, 3
jmp 0x410f9d
add ebx, 2
jmp 0x410f9d
inc ebx
cmp edi, 0x10
jbe 0x410fdd
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
add ecx, 0x10
add dword [esp + 0x18], 0x10
add esi, 0x10
sub dword [esp + 0xc], 0x10
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], esi
sub edi, 0x10
jne 0x410ea0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.004cdf5d
mov esp, ebp
pop ebp
ret
cmp ebx, 0x10
jae 0x411004
mov eax, dword [esp + 0x30]
mov esi, 0x10
mov ecx, dword [esp + 0x10]
sub ecx, eax
sub esi, ebx
lea edx, [eax + ebx]
mov al, byte [ecx + edx]
lea edx, [edx + 1]
mov byte [edx - 1], al
sub esi, 1
jne 0x410ff6
mov ecx, dword [esp + 0x64]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004cdf5d
mov esp, ebp
pop ebp
ret