Function at 0x4109d9
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x4a4
push ebx
mov bl, byte [0x42b8d4]
push ebp
push esi
mov ebp, ecx
mov dword [esp + 0x34], edx
lea eax, [ebx + 0x27]
mov ecx, 0x78fa
mov byte [0x42b8bf], al
movzx eax, bl
push edi
xor ax, cx
push 0x1000
mov word [0x42b900], ax
call fcn.0040570b
or byte [0x42b8d4], 0x83
mov edi, eax
pop ecx
movzx ecx, byte [0x42b8bf]
mov eax, 0xb794
push dword [esp + 0x4bc]
xor cx, ax
mov word [0x42b900], cx
call fcn.0040702c
mov ebx, eax
mov dword [esp + 0x40], ebx
pop ecx
test edi, edi
je 0x410d55
push 0x7c
pop eax
mov word [esp + 0x30], ax
xor eax, eax
and dword [esp + 0x34], eax
mov word [esp + 0x32], ax
mov eax, 0xff
mov byte [0x42b8d4], al
mov eax, 0xa0ff
mov word [0x42b900], ax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x34]
mov byte [0x42b8bf], 0x6f
push eax
push ebx
call fcn.004057dc
mov dl, byte [0x42b8bf]
mov esi, eax
add esp, 0xc
add dl, 0x41
test esi, esi
je 0x410d30
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], 0xb29d82cb
xor eax, eax
mov dword [esp + 0x14], 0x8f8d81a2
mov dword [esp + 0x18], 0x96abce82
mov dword [esp + 0x1c], 0x9d808b9a
mov dword [esp + 0x20], 0xce808187
mov dword [esp + 0x24], 0x9a9a8bbd
mov dword [esp + 0x28], 0x9d898087
mov dword [esp + 0x2c], 0x9d82cbb2
movq xmm1, qword [esp + eax + 0x10]
movq xmm0, qword [0x429010]
pxor xmm1, xmm0
xorps xmm0, xmm0
punpcklbw xmm1, xmm0
movups xmmword [esp + eax*2 + 0x68], xmm1
add eax, 8
cmp eax, 0x20
jl 0x410ae8
mov cl, byte [0x42b900]
xor eax, eax
mov word [esp + 0xa8], ax
add cl, 3
movzx eax, dl
mov edx, 0xf89245cb
imul eax, eax, 0xc4
mov byte [0x42b8d4], cl
movzx ecx, cl
push esi
mov byte [0x42b8bf], al
mov eax, 0xc35a
imul ecx, eax
lea eax, [esp + 0xb4]
push eax
mov word [0x42b900], cx
xor ecx, ecx
inc ecx
call fcn.004155a6
call eax
movzx eax, byte [0x42b8d4]
mov ecx, 0xaca
sub ax, cx
mov word [0x42b900], ax
add al, 0x66
mov byte [0x42b8d4], al
or al, 0x9c
mov byte [0x42b8bf], al
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x34]
push eax
push 0
call fcn.004057dc
mov cl, byte [0x42b8d4]
add esp, 0xc
or cl, 0x2d
mov edx, 0xe3740fb6
mov byte [0x42b8bf], cl
add cl, 0x47
mov byte [0x42b8d4], cl
xor ecx, ecx
push eax
push ebx
lea eax, [esp + 0x70]
push eax
push 0x800
push edi
call fcn.004155a6
call eax
movzx eax, byte [0x42b8bf]
mov ecx, 0x7d56
xor byte [0x42b8d4], 0xb1
or ax, cx
add esp, 0x14
mov word [0x42b900], ax
xor ecx, ecx
mov edx, 0xeeb55893
inc ecx
push edi
call fcn.004155a6
call eax
mov cl, byte [0x42b900]
add cl, 0x31
mov byte [0x42b8d4], cl
cmp eax, 0xffffffff
je 0x410cfc
test al, 0x10
je 0x410cfc
mov dword [esp + 0x10], 0x101005fb
xor edx, edx
mov dword [esp + 0x14], 0xd3171809
mov esi, 0xff
mov dword [esp + 0x18], 0x31710c9
mov dword [esp + 0x1c], 0x31710c9
mov word [esp + 0x20], 0x10c9
mov byte [esp + 0x22], 0x17
movzx eax, byte [esp + edx + 0x10]
add ax, 0x5c
and ax, si
mov word [esp + edx*2 + 0x40], ax
inc edx
cmp edx, 0x13
jl 0x410c4b
push dword [esp + 0x4b8]
xor eax, eax
add cl, 0x38
mov word [esp + 0x6a], ax
mov edx, 0xc081
movzx eax, cl
and ax, dx
mov word [0x42b900], ax
lea eax, [ecx - 0x71]
mov byte [0x42b8d4], al
add cl, 0x1b
push ebp
lea eax, [esp + 0xb8]
and cl, 0xad
push eax
lea eax, [esp + 0x4c]
mov byte [0x42b8bf], cl
push eax
call fcn.00422d73
add byte [0x42b8d4], 0x57
mov esi, eax
add esp, 0x10
test esi, esi
je 0x410cfc
movzx ecx, byte [0x42b8bf]
mov eax, 0x3b15
add word [0x42b900], ax
mov edx, esi
imul ecx, ecx, 0x21
mov byte [0x42b8d4], cl
mov ecx, edi
call fcn.0041e652
movzx eax, byte [0x42b8bf]
mov ecx, 0x5bde
add ax, cx
push esi
mov word [0x42b900], ax
call fcn.004056f0
pop ecx
mov eax, 0x5c64
and word [0x42b900], ax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x34]
push eax
push 0
call fcn.004057dc
mov dl, byte [0x42b8bf]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x410aa6
mov ebx, dword [esp + 0x3c]
movzx eax, byte [0x42b8d4]
mov ecx, 0x2c9f
add dl, 0xf5
or ax, cx
push edi
mov byte [0x42b8bf], dl
mov word [0x42b900], ax
call fcn.004056f0
pop ecx
mov cl, byte [0x42b8bf]
mov edx, 0x582b
movzx eax, cl
and cl, 0xa5
add ax, dx
mov byte [0x42b8d4], cl
push ebx
mov word [0x42b900], ax
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4a4
ret