Function at 0x418313
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x2dc
push ebx
push ebp
push esi
push edi
push 0x2e
pop eax
mov byte [esp + 0x16], al
xorps xmm0, xmm0
xor eax, eax
mov word [esp + 0x14], 0x2716
mov dword [esp + 0x17], 0x23342927
mov esi, ecx
mov byte [esp + 0x1b], 0x2f
movq xmm1, qword [esp + 0x14]
punpcklbw xmm1, xmm0
paddw xmm1, xmmword [0x429f60]
pand xmm1, xmmword [0x429f80]
mov word [esp + 0x78], ax
push 0x2a
pop eax
mov word [esp + 0x38], ax
xor eax, eax
mov dword [esp + 0x28], esi
xor ecx, ecx
movups xmmword [esp + 0x68], xmm1
mov word [esp + 0x3a], ax
mov dword [esp + 0x1c], 0x80afb0f9
mov byte [esp + 0x20], 0xf6
mov al, byte [esp + ecx + 0x1c]
xor al, 0xdc
movzx eax, al
mov word [esp + ecx*2 + 0x4c], ax
inc ecx
cmp ecx, 5
jl 0x418385
xor eax, eax
lea edx, [esp + 0x68]
mov word [esp + 0x56], ax
mov ecx, esi
mov eax, 0xd6c8
or ax, word [0x42c98c]
mov word [0x42c9a4], ax
lea eax, [esp + 0x38]
push 1
push eax
call fcn.0041e7b2
movzx ecx, word [0x42c98c]
mov eax, 0x12fb
xor cx, ax
push esi
lea eax, [ecx + 0x3707]
xor ecx, 0x728d
mov word [0x42c9a4], ax
lea eax, [esp + 0x58]
push eax
mov word [0x42c98c], cx
call fcn.00423fac
mov dx, word [0x42c9a4]
mov ebx, eax
mov ecx, 0x5ff1
mov dword [esp + 0x2c], ebx
add cx, dx
mov eax, 0x84cf
xor cx, ax
add esp, 0x10
mov word [0x42c98c], cx
test ebx, ebx
je 0x4187ea
mov ecx, 0x121f
add ecx, edx
mov edx, 0x54e1cc7b
imul eax, ecx, 0x6d89
or ecx, 0x8cf9
mov word [0x42c9a4], cx
xor ecx, ecx
inc ecx
mov word [0x42c98c], ax
lea eax, [esp + 0x98]
push eax
push ebx
call fcn.00415f33
call eax
mov ebp, eax
xor ecx, ecx
mov eax, 0xf56e
mov edx, 0x17299c7b
add word [0x42c9a4], ax
inc ecx
call fcn.00415f33
mov cx, word [0x42c98c]
mov dword [esp + 0x40], eax
mov dx, cx
mov eax, 0x1420
and dx, ax
mov word [0x42c9a4], dx
cmp ebp, 0xffffffff
je 0x4187d4
mov ebx, dword [esp + 0x28]
mov esi, 0xff
push 0x2e
mov word [esp + 0x28], 0x1e1e
pop edi
xor eax, eax
mov word [esp + 0x3c], di
mov word [esp + 0x3e], ax
xor ecx, ecx
mov al, byte [esp + ecx + 0x24]
xor al, 0x30
movzx eax, al
mov word [esp + ecx*2 + 0x44], ax
inc ecx
cmp ecx, 2
jl 0x4184c0
xor eax, eax
mov ecx, 0x946a
mov word [esp + 0x48], ax
or cx, dx
mov eax, 0x596
movzx ecx, cx
imul ecx, eax
imul eax, ecx, 0x356e
mov word [0x42c9a4], ax
lea eax, [ecx + 0x6347]
mov word [0x42c98c], ax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.004066f6
pop ecx
pop ecx
test eax, eax
je 0x418786
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.004066f6
pop ecx
pop ecx
test eax, eax
je 0x418786
movzx ecx, word [0x42c98c]
mov eax, 0x2f7
imul ecx, eax
test byte [esp + 0x98], 0x10
movzx edx, cx
mov word [0x42c9a4], cx
lea eax, [ecx + 0x3e4e]
movzx ecx, ax
mov word [0x42c98c], ax
je 0x418769
lea eax, [edx + 0x487]
or ecx, 0xf8c5
and eax, 0x3436
mov word [0x42c98c], cx
mov word [0x42c9a4], ax
lea eax, [esp + 0xc4]
push eax
call fcn.0040641e
pop ecx
cmp eax, 0x10
jne 0x418769
mov dword [esp + 0x14], 0x31a13cc
xor ecx, ecx
mov word [esp + 0x18], 0x13cc
mov byte [esp + 0x1a], 0x1a
movzx eax, byte [esp + ecx + 0x14]
add ax, 0x59
and ax, si
mov word [esp + ecx*2 + 0x58], ax
inc ecx
cmp ecx, 7
jl 0x4185bf
movzx ecx, word [0x42c98c]
xor eax, eax
mov word [esp + 0x66], ax
mov eax, 0x2cd7
imul ecx, eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x5c]
push ebx
push eax
mov word [0x42c9a4], cx
or ecx, 0xf1f5
mov word [0x42c98c], cx
call fcn.00423fac
mov esi, eax
add esp, 0xc
mov eax, 0x5601
add word [0x42c9a4], ax
test esi, esi
je 0x418764
push 0x2e
pop eax
push 0x2a
mov byte [esp + 0x31], al
xor ecx, ecx
mov byte [esp + 0x33], al
mov edx, 0xff
pop eax
mov byte [esp + 0x2c], 0x1d
mov byte [esp + 0x2e], 0x35
mov word [esp + 0x30], 0x3b30
mov byte [esp + 0x32], al
mov dword [esp + 0x33], 0x35eef836
mov byte [esp + 0x37], 0x3c
movzx eax, byte [esp + ecx + 0x2c]
add ax, 0x37
and ax, dx
mov word [esp + ecx*2 + 0x7c], ax
inc ecx
cmp ecx, 0xc
jl 0x418663
movzx ecx, word [0x42c98c]
xor eax, eax
mov word [esp + 0x94], ax
mov eax, 0xfba9
imul ecx, eax
lea eax, [ecx + 0x79df]
or ecx, 0xc44a
mov word [0x42c98c], ax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x80]
mov word [0x42c9a4], cx
push eax
call fcn.00423fac
mov dx, word [0x42c9a4]
mov edi, eax
pop ecx
pop ecx
mov ecx, 0x6f5b
or cx, dx
movzx ecx, cx
test edi, edi
je 0x41874c
push 0x2a
pop eax
mov word [esp + 0x28], ax
mov edx, edi
xor eax, eax
mov word [esp + 0x2a], ax
lea eax, [ecx - 0x5e44]
mov word [0x42c9a4], ax
imul eax, ecx, 0xaaef
mov ecx, esi
push 1
mov word [0x42c98c], ax
lea eax, [esp + 0x2c]
push eax
call fcn.0041e7b2
mov ecx, 0x20a4
mov eax, 0x635c
add cx, word [0x42c9a4]
movzx ecx, cx
imul ecx, eax
push edi
mov word [0x42c98c], cx
lea eax, [ecx + 0x653b]
mov word [0x42c9a4], ax
call fcn.004062f0
mov dx, word [0x42c9a4]
add esp, 0xc
mov eax, 0x121f
or ax, dx
push esi
mov word [0x42c98c], ax
call fcn.004062f0
pop ecx
push 0x2e
pop edi
mov esi, 0xff
lea eax, [esp + 0x98]
push eax
push ebp
call dword [esp + 0x48]
test eax, eax
je 0x418794
mov dx, word [0x42c98c]
jmp 0x4184b2
mov eax, 0x319a
xor word [0x42c98c], ax
jmp 0x418769
mov eax, 0x7f74
mov edx, 0x75a2
or ax, word [0x42c9a4]
xor ecx, ecx
add ax, dx
inc ecx
mov word [0x42c98c], ax
mov edx, 0x83fbc401
or eax, 0xb077
push ebp
mov word [0x42c9a4], ax
call fcn.00415f33
call eax
mov cx, word [0x42c98c]
mov ebx, dword [esp + 0x1c]
mov eax, 0xcbd0
xor cx, ax
push ebx
mov word [0x42c98c], cx
call fcn.004062f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2dc
ret