Function at 0x40129e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2a8
mov eax, dword [0x486ee0]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push 0x48c
mov esi, ecx
xor ebx, ebx
push ebx
push esi
mov dword [ebp - 0x298], edx
mov dword [ebp - 0x2a0], esi
mov dword [ebp - 0x294], edi
call fcn.004490c0
mov eax, dword [str.luxion]
mov dword [esi], eax
mov ax, word [0x484424]
mov word [esi + 4], ax
push ebx
mov byte [esi + 6], 1
mov byte [esi + 8], 0xc1
call fcn.004480b9
push eax
call fcn.00448005
push 0x80
lea eax, [ebp - 0x28c]
push ebx
push eax
call fcn.004490c0
mov eax, dword [ebp - 0x298]
add esp, 0x20
test eax, eax
je 0x401331
push 0x50
push eax
lea eax, [ebp - 0x274]
push 0x50
push eax
call fcn.00448015
add esp, 0x10
mov eax, ebx
mov cl, al
add cl, byte [edi + eax]
inc eax
cmp eax, 6
jl 0x401335
or dword [ebp - 0x224], 0xffffffff
mov byte [ebp - 0x288], cl
push 5
pop ecx
mov esi, str.XFSTILLROXXINGIN2019
lea edi, [ebp - 0x220]
mov dword [ebp - 0x28c], 4
mov word [ebp - 0x27f], 0x102
mov byte [ebp - 0x279], 1
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x294]
mov edi, esi
lea eax, [ebp - 0x285]
mov edx, ebx
sub edi, eax
lea ecx, [ebp - 0x285]
add ecx, edx
mov al, byte [edi + ecx]
xor al, 0x55
inc edx
mov byte [ecx], al
cmp edx, 6
jl 0x401387
mov dl, 0x7f
mov ecx, ebx
mov al, byte [esi + ecx + 1]
xor al, dl
add dl, 0xa
mov byte [ebp + ecx - 0x278], al
inc ecx
cmp ecx, 4
jl 0x4013a0
call fcn.00401f70
mov esi, eax
push str.106D643D
lea eax, [esi + 0x14]
push eax
call fcn.00402150
lea eax, [esi + 0x10]
push str.B7D9BF18773B92DE456FE391E5E06F151668857A04F7592EAEC5D6E97CDDDBCB1383D082BDA47DB0F6182898F42D8A51B8630A28879E5316D46EB9326D75971F561714F4C845D6FD90CA7CA4B242F9C218E20D92E688628B48F1C4B97394BEF6CA9B07152C0CC9BE89B85CE12C7C4275C2117AB20BA616E6636C90E3BB0873CF
push eax
call fcn.00402150
lea eax, [esi + 0x18]
push str.161A70ED9FCE0B0BAC8248FC1669080238333C67AD9DE34EAE9AAD131AAA04BB4ABBC95DD7985D945A04C8003ECC5DE226B92FDA2AF5C4556F0C945C6AECC250D0A51FA211243EDE88734CAFE7113EF382FBDF011AC45FC73556EDF6FAE74AEF93A1C4E674E20A38FCCF5A1B085280E6CCB2E126266E240B833950C208AC40D5
push eax
call fcn.00402150
mov edi, dword [ebp - 0x2a0]
push 3
push esi
lea ecx, [edi + 0xc]
push ecx
lea ecx, [ebp - 0x28c]
push ecx
push 0x80
call fcn.00401cc0
add esp, 0x2c
cmp eax, 0xffffffff
je 0x401680
push esi
call fcn.00401b70
push 0x80
lea eax, [ebp - 0x8c]
push ebx
push eax
call fcn.004490c0
add esp, 0x10
mov esi, ebx
call fcn.00447fe2
mov byte [ebp + esi - 0x8c], al
inc esi
cmp esi, 7
jl 0x40142e
and byte [ebp - 0x8c], 0x3f
push ebx
mov dword [ebp - 0x80], 9
call fcn.004480b9
mov edx, dword [ebp - 0x294]
add eax, 0x386d4380
movzx esi, byte [edx + 3]
movzx ecx, byte [edx + 4]
mov dword [ebp - 0x7c], eax
movzx eax, byte [ebp - 0x88]
imul esi, eax
movzx eax, byte [ebp - 0x87]
imul ecx, eax
movzx eax, byte [ebp - 0x86]
add esi, ecx
movzx ecx, byte [edx + 5]
imul ecx, eax
movzx eax, byte [ebp - 0x8a]
add esi, ecx
movzx ecx, byte [edx + 1]
movzx edx, byte [edx + 2]
imul ecx, eax
mov eax, dword [ebp - 0x294]
add esi, ecx
movzx ecx, byte [ebp - 0x89]
movzx eax, byte [eax]
imul edx, ecx
movzx ecx, byte [ebp - 0x8b]
imul eax, ecx
add esi, edx
add eax, esi
cdq
and edx, 7
lea ecx, [edx + eax]
sar ecx, 3
lea eax, [ecx + 0x334]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add cl, 0x34
mov byte [ebp - 0x85], al
mov byte [ebp - 0x84], cl
call fcn.00401f70
mov esi, eax
mov dword [esp], str.106D643D
lea ecx, [esi + 0x14]
push ecx
mov dword [ebp - 0x29c], esi
call fcn.00402150
lea ecx, [esi + 0x10]
push str.C36E499655C6DF1EC6ECB99903021C6D04690D22AF72E856D0065258F88B51BBEFFE3F2315F8F8D4A77723B3913153E77829FFCB618776DA492F4762726100860DC405353D47FF0751F9E9C96BAC9BE16480E05EBAE79B2B7046A8875F9569F79329475BC9F62D4C3FEFD1C153BC246B21DA092EB9EAF49001F39CDC364182B5
push ecx
call fcn.00402150
lea eax, [esi + 0x18]
push str.22B78D23979112EB628DE8BE7EA2D826FC54CD77CF236B7F2B028B33805FFE74A37BFA6CDACBA8116BA98F4562817292EA4D95970C870D8B78164BB61AD1788C69460A6D49E72ADFB09AE2E72291C9A332090369FFE6611A74F19993437CB45F47C0E2B41BE2180FC6860E1A0B4B278E953A0642ECCBE77A9F5FD0DBF3B2B5E1
push eax
call fcn.00402150
push 3
push esi
lea eax, [edi + 0x8c]
push eax
lea eax, [ebp - 0x8c]
push eax
push 0x80
call fcn.00401cc0
add esp, 0x2c
cmp eax, 0xffffffff
je 0x401680
mov esi, ebx
call fcn.00447fe2
mov byte [ebp + esi - 0x18c], al
inc esi
cmp esi, 0x80
jl 0x401552
add edi, 0x10c
mov dword [ebp - 0x2a4], ebx
mov dword [ebp - 0x298], edi
push 0x20
pop ecx
lea esi, [ebp - 0x18c]
lea edi, [ebp - 0x10c]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x2a4]
lea eax, [ebp - 0x10c]
push dword [edi*8 + 0x4881b0]
push dword [edi*8 + 0x4881b4]
push eax
call fcn.00448880
mov eax, dword [ebp - 0x294]
add esp, 0xc
mov dl, byte [eax + 2]
mov ecx, ebx
lea eax, [edx + 0x29]
add al, cl
xor byte [ebp + ecx - 0x10c], al
inc ecx
cmp ecx, 0x80
jl 0x4015b8
movzx eax, byte [ebp - 0x10c]
cdq
mov ecx, 0xa2
idiv ecx
mov esi, dword [ebp - 0x298]
push 3
push dword [ebp - 0x29c]
lea eax, [ebp - 0x10c]
push esi
push eax
push 0x80
mov byte [ebp - 0x10c], dl
call fcn.00401cc0
add esp, 0x14
cmp eax, 0xffffffff
je 0x401680
inc edi
sub esi, 0xffffff80
mov dword [ebp - 0x2a4], edi
mov dword [ebp - 0x298], esi
cmp edi, 6
jl 0x401579
lea ecx, [ebp - 0x20c]
call fcn.004017b2
mov esi, dword [ebp - 0x2a0]
push 3
push dword [ebp - 0x29c]
shl edi, 7
lea eax, [esi + 0x10c]
add eax, edi
push eax
lea eax, [ebp - 0x20c]
push eax
push 0x80
call fcn.00401cc0
push dword [ebp - 0x29c]
call fcn.00401b70
add esp, 0x18
mov eax, ebx
cmp eax, 2
je 0x401671
add ebx, dword [esi + eax*4]
inc eax
cmp eax, 0x123
jb 0x401669
mov dword [esi + 8], ebx
xor eax, eax
jmp 0x401683
or eax, 0xffffffff
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00447ade
leave
ret