Function at 0x410890
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x4a4
mov al, byte [0x42b8f4]
xor al, 0xc7
mov dword [esp + 0x28], edx
mov byte [0x42b8d0], al
movzx eax, byte [0x42b8f4]
push ebx
push ebp
imul eax, eax, 5
mov ebp, ecx
push esi
push edi
push 0x1000
or al, 0xe8
mov byte [0x42b8f5], al
call fcn.0040570b
pop ecx
movzx ecx, byte [0x42b8f4]
mov esi, eax
push dword [esp + 0x4bc]
imul ecx, ecx, 0x31
mov byte [0x42b8f4], cl
mov cl, byte [0x42b8d0]
or cl, 0xba
mov byte [0x42b91a], cl
call fcn.0040702c
mov dl, byte [0x42b91a]
mov ebx, eax
pop ecx
movzx ecx, dl
imul ecx, ecx, 0x2d
mov dword [esp + 0x3c], ebx
mov byte [0x42b8f4], cl
test esi, esi
je 0x410bef
push 0x7c
pop eax
mov word [esp + 0x30], ax
xor eax, eax
and dword [esp + 0x34], 0
mov word [esp + 0x32], ax
movzx eax, byte [0x42b8d0]
imul ecx, eax, 0x7f
mov byte [0x42b8f5], 0
movzx eax, cl
imul eax, eax, 0xe0
mov byte [0x42b91a], cl
add cl, 0x12
mov byte [0x42b8d0], cl
mov byte [0x42b8f4], al
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.004057dc
mov dl, byte [0x42b8d0]
mov edi, eax
movzx ecx, dl
add esp, 0xc
imul ecx, ecx, 0x1e
mov byte [0x42b8f4], cl
test edi, edi
je 0x410bd0
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], 0xf3dcc38a
xor eax, eax
mov dword [esp + 0x14], 0xceccc0e3
mov dword [esp + 0x18], 0xd7ea8fc3
mov dword [esp + 0x1c], 0xdcc1cadb
mov dword [esp + 0x20], 0x8fc1c0c6
mov dword [esp + 0x24], 0xdbdbcafc
mov dword [esp + 0x28], 0xdcc8c1c6
mov dword [esp + 0x2c], 0xdcc38af3
movq xmm1, qword [esp + eax + 0x10]
movq xmm0, qword [0x429000]
pxor xmm1, xmm0
xorps xmm0, xmm0
punpcklbw xmm1, xmm0
movups xmmword [esp + eax*2 + 0x68], xmm1
add eax, 8
cmp eax, 0x20
jl 0x4109cd
and cl, 0x1b
xor eax, eax
add cl, 0x22
mov word [esp + 0xa8], ax
mov byte [0x42b91a], cl
lea eax, [esp + 0xb0]
xor ecx, ecx
mov edx, 0xf89245cb
push edi
push eax
inc ecx
call fcn.00415084
call eax
movzx eax, byte [0x42b8f4]
imul eax, eax, 0x48
mov byte [0x42b91a], al
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x34]
push eax
push 0
call fcn.004057dc
mov cl, byte [0x42b8f5]
add esp, 0xc
and cl, 0x6c
mov edx, 0xe3740fb6
mov byte [0x42b8d0], cl
xor ecx, ecx
push eax
push ebx
lea eax, [esp + 0x70]
push eax
push 0x800
push esi
call fcn.00415084
call eax
mov al, byte [0x42b8d0]
add esp, 0x14
add al, 0x30
xor ecx, ecx
mov byte [0x42b8f5], al
mov edx, 0xeeb55893
mov al, byte [0x42b91a]
inc ecx
add al, 0x14
push esi
mov byte [0x42b8f4], al
call fcn.00415084
call eax
mov dl, byte [0x42b8d0]
mov cl, dl
and cl, 0xd5
mov byte [0x42b91a], cl
cmp eax, 0xffffffff
je 0x410b8e
test al, 0x10
je 0x410b8e
mov dword [esp + 0x10], 0x505faf0
xor ecx, ecx
mov dword [esp + 0x14], 0xc80c0dfe
mov dword [esp + 0x18], 0xf80c05be
mov dword [esp + 0x1c], 0xf80c05be
mov word [esp + 0x20], 0x5be
mov byte [esp + 0x22], 0xc
movzx eax, byte [esp + ecx + 0x10]
mov edi, 0xff
add ax, 0x67
and ax, di
mov word [esp + ecx*2 + 0x40], ax
inc ecx
cmp ecx, 0x13
jl 0x410ae9
push dword [esp + 0x4b8]
xor eax, eax
mov word [esp + 0x6a], ax
mov al, dl
or al, 0x2e
xor dl, 0x62
mov byte [0x42b8f4], al
lea eax, [esp + 0xb4]
push ebp
push eax
lea eax, [esp + 0x4c]
mov byte [0x42b91a], dl
push eax
call fcn.00422def
mov cl, byte [0x42b91a]
mov edi, eax
or cl, 0xd
add esp, 0x10
mov byte [0x42b8f4], cl
movzx ecx, cl
imul ecx, ecx, 0xb7
mov byte [0x42b91a], cl
test edi, edi
je 0x410b8e
mov al, byte [0x42b8d0]
mov edx, edi
and byte [0x42b8f5], 0x53
xor al, 0xd0
mov ecx, esi
mov byte [0x42b8f4], al
call fcn.0041dd29
mov al, byte [0x42b91a]
sub al, 0x12
push edi
mov byte [0x42b8f5], al
call fcn.004056f0
pop ecx
mov al, byte [0x42b8f4]
sub al, 5
mov byte [0x42b8d0], al
add al, 0x4c
mov byte [0x42b8f5], al
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x34]
push eax
push 0
call fcn.004057dc
mov edi, eax
add esp, 0xc
test edi, edi
je 0x410bc6
mov cl, byte [0x42b8f4]
jmp 0x41098b
mov dl, byte [0x42b8d0]
mov ebx, dword [esp + 0x3c]
add dl, 0xa
mov byte [0x42b8f5], dl
sub dl, 0x3b
push esi
mov byte [0x42b8d0], dl
call fcn.004056f0
mov dl, byte [0x42b91a]
pop ecx
add dl, 0x75
push ebx
mov byte [0x42b8f5], dl
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4a4
ret