Function at 0x410864
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
push edi
push esi
push ebx
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x1c], 8
add esp, 0xfffffffc
push 0x32
push 0x410284
push 0x44374c
call fcn.00421b44
add esp, 0xfffffffc
push 0x3c
push 0x41085c
push 0x4476dc
call fcn.00421b44
mov dword [0x44364c], 0xf9
mov eax, dword [ebp + 8]
movzx ax, byte [eax + 1]
shl eax, 8
mov word [ebp - 0x12], ax
mov edx, dword [ebp + 8]
movzx ax, byte [edx]
add word [ebp - 0x12], ax
movzx bx, byte [edx + 3]
shl ebx, 8
movzx ax, byte [edx + 2]
add ebx, eax
movzx si, byte [edx + 5]
shl esi, 8
movzx ax, byte [edx + 4]
add esi, eax
movzx cx, byte [edx + 7]
shl ecx, 8
movzx ax, byte [edx + 6]
add ecx, eax
ror word [ebp - 0x12], 8
ror bx, 8
ror si, 8
ror cx, 8
mov word [ebp - 0x14], cx
add esp, 0x20
add esp, 0xfffffff8
movzx eax, word [edi]
push eax
add edi, 2
movzx eax, word [ebp - 0x12]
push eax
call fcn.0041029c
mov word [ebp - 0x12], ax
add bx, word [edi]
add edi, 2
add si, word [edi]
add edi, 2
add esp, 0xfffffff8
movzx eax, word [edi]
push eax
add edi, 2
movzx eax, word [ebp - 0x14]
push eax
call fcn.0041029c
mov word [ebp - 0x14], ax
mov word [ebp - 0x18], si
xor si, word [ebp - 0x12]
add esp, 0x20
add esp, 0xfffffff8
movzx eax, word [edi]
push eax
add edi, 2
movzx eax, si
push eax
call fcn.0041029c
mov esi, eax
mov word [ebp - 0x16], bx
xor ebx, dword [ebp - 0x14]
add ebx, esi
add esp, 0xfffffff8
movzx eax, word [edi]
push eax
add edi, 2
movzx eax, bx
push eax
call fcn.0041029c
mov ebx, eax
add esi, ebx
xor word [ebp - 0x12], bx
xor word [ebp - 0x14], si
xor ebx, dword [ebp - 0x18]
xor si, word [ebp - 0x16]
add esp, 0x20
dec dword [ebp - 0x1c]
jne 0x410908
add esp, 0xfffffff8
movzx eax, word [edi]
push eax
add edi, 2
movzx eax, word [ebp - 0x12]
push eax
call fcn.0041029c
mov word [ebp - 0x12], ax
add si, word [edi]
add edi, 2
add bx, word [edi]
add esp, 0xfffffff8
movzx eax, word [edi + 2]
push eax
movzx eax, word [ebp - 0x14]
push eax
call fcn.0041029c
mov word [ebp - 0x14], ax
movzx edi, word [ebp - 0x12]
ror di, 8
mov word [ebp - 8], di
mov eax, esi
ror ax, 8
shl eax, 0x10
movzx ecx, di
mov dword [ebp - 8], ecx
or dword [ebp - 8], eax
lea eax, [ebp - 8]
mov dword [ebp - 0x20], eax
ror bx, 8
mov word [eax + 4], bx
mov eax, dword [ebp - 0x14]
ror ax, 8
shl eax, 0x10
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx + 4]
movzx ecx, cx
mov dword [edx + 4], ecx
or dword [edx + 4], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x10]
mov dword [ebp - 0x24], edi
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
movzx ax, byte [edi + 1]
shl eax, 8
mov word [ebp - 0x12], ax
movzx dx, byte [ebp - 0x10]
mov word [ebp - 0x42], dx
movzx bx, byte [edi + 3]
shl ebx, 8
movzx cx, byte [edi + 2]
mov word [ebp - 0x52], cx
movzx si, byte [edi + 5]
shl esi, 8
movzx dx, byte [edi + 4]
movzx di, byte [edi + 7]
shl edi, 8
mov word [ebp - 0x14], di
mov ecx, dword [ebp - 0x24]
movzx ax, byte [ecx + 6]
movzx ecx, word [ebp - 0x42]
add cx, word [ebp - 0x12]
mov edi, dword [ebp + 0xc]
mov word [edi], cx
add bx, word [ebp - 0x52]
mov word [edi + 2], bx
add esi, edx
mov word [edi + 4], si
add eax, dword [ebp - 0x14]
mov word [edi + 6], ax
lea esp, [ebp - 0x78]
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret