Function at 0x411ce0
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
ja 0x411cf9
call fcn.00438ad0
jmp fcn.00411ce0
sub esp, 0x50
xor ebx, ebx
cmp dword [0xe04314], ebx
jne 0x411d55
mov dword [esp], 0xafc7c
lea ebx, [0xe12200]
mov dword [esp + 4], ebx
add dword [esp + 4], 0x90
call fcn.00425ba0
mov eax, dword [esp + 8]
lea ebx, [0xe04314]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00411a10
xor ebx, ebx
cmp dword [0xe04314], ebx
jne 0x411d55
lea esi, [0x7ec140]
lea edi, [esp]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00415bf0
xor esi, esi
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
xor ecx, ecx
mov edx, eax
cmp ecx, edi
jge 0x411d87
mov ebp, dword [eax]
add esi, ebp
mov ebp, esi
shl esi, 0xa
add esi, ebp
mov ebp, esi
shr esi, 6
mov edx, esi
xor esi, ebp
add eax, 4
inc ecx
cmp ecx, edi
jl 0x411d6b
mov edi, esi
add edi, dword [esp + 0x58]
mov ecx, edi
shl edi, 0xa
add edi, ecx
mov ecx, edi
shr edi, 6
xor edi, ecx
mov ecx, edi
shl edi, 3
add edi, ecx
mov ecx, edi
shr edi, 0xb
xor edi, ecx
mov eax, 0xba6a1fbd
mul edi
mov ebx, edx
shr ebx, 0x11
imul ebx, ebx, 0x2bf1f
mov ecx, edi
mov dword [esp + 0x20], edi
sub ecx, ebx
mov ebx, dword [0xe04314]
cmp ebx, 0
je 0x41204d
mov dword [esp + 0x1c], ecx
lea esi, [ebx]
cmp ecx, 0x2bf1f
jae 0x412046
lea esi, [esi + ecx*4]
mov eax, dword [esi]
xor ebx, ebx
cmp eax, ebx
je 0x411e82
mov ebp, dword [eax + 8]
mov ebx, dword [esp + 0x54]
cmp ebp, ebx
jne 0x411e76
mov ebp, dword [eax + 0xc]
cmp ebp, edi
jne 0x411e76
mov ebp, dword [eax + 0x10]
mov ebx, dword [esp + 0x58]
cmp ebp, ebx
jne 0x411e76
mov dword [esp + 0x28], eax
mov dword [esp], eax
call fcn.00411bc0
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], edx
mov dword [esp], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], ebx
call fcn.00412060
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
movzx ebx, byte [esp + 0x18]
cmp bl, 0
je 0x411e76
mov dword [esp + 0x6c], eax
add esp, 0x50
ret
mov eax, dword [eax]
xor ebx, ebx
cmp eax, ebx
jne 0x411df3
cmp byte [esp + 0x68], 0
jne 0x411e95
mov dword [esp + 0x6c], 0
add esp, 0x50
ret
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x54]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00411b10
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
mov dword [esp], eax
call fcn.00411bc0
mov esi, dword [esp + 4]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], ecx
mov ebp, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], ecx
cmp ecx, eax
jge 0x411ef3
mov eax, ecx
mov dword [esp + 0x38], esi
mov dword [esp], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 4], ebp
mov ebx, eax
shl ebx, 2
mov dword [esp + 8], ebx
call fcn.0043aad0
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x58]
mov dword [eax + 0x10], ebp
mov dword [esp], eax
cmp dword [esp], 0
je 0x41203b
mov ebx, dword [0xe04314]
cmp ebx, 0
je 0x412034
mov ebp, dword [esp + 0x1c]
lea esi, [ebx]
cmp ebp, 0x2bf1f
jae 0x41202d
lea esi, [esi + ebp*4]
mov ebp, dword [esi]
mov dword [esp + 4], ebp
call fcn.00411a10
mov ebx, dword [0xe04314]
cmp ebx, 0
je 0x412026
mov ebp, dword [esp + 0x1c]
lea esi, [ebx]
cmp ebp, 0x2bf1f
jae 0x41201f
lea esi, [esi + ebp*4]
mov dword [esp], esi
mov ebx, dword [esp + 0x24]
mov dword [esp + 4], ebx
call fcn.00411a10
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x54], 1
jne 0x411fe3
mov dword [esp], eax
cmp dword [esp], 0
je 0x411fdb
add dword [esp], 4
mov ebx, dword [0xe04338]
mov dword [esp + 4], ebx
call fcn.00411a10
lea ebx, [0xe04338]
mov dword [esp], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 4], ebx
call fcn.00411a10
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x6c], ebx
add esp, 0x50
ret
mov dword [0], eax
jmp 0x411fa6
mov dword [esp], eax
cmp dword [esp], 0
je 0x412017
add dword [esp], 4
mov ebx, dword [0xe04310]
mov dword [esp + 4], ebx
call fcn.00411a10
lea ebx, [0xe04310]
mov dword [esp], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 4], ebx
call fcn.00411a10
jmp 0x411fcf
mov dword [0], eax
jmp 0x411fec
call fcn.00414c30
ud2
mov dword [ebx], eax
jmp 0x411f6d
call fcn.00414c30
ud2
mov dword [ebx], eax
jmp 0x411f3e
mov dword [0], eax
jmp 0x411f2f
call fcn.00414c30
ud2
mov dword [ebx], eax
jmp 0x411dd2