Function at 0x41e6a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x78
mov eax, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
push esi
push edi
cmp eax, 0x20
ja 0x41e846
cmp eax, 0x10
ja 0x41e6ce
call fcn.0041dff0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
add eax, eax
xor esi, esi
add eax, 0x2f90404f
mov dword [esp + 0x20], eax
adc esi, 0x9ae16a3b
mov dword [esp + 0x38], esi
call fcn.0041deb0
push 0xb492b66f
push 0xbe98f273
push edx
push eax
call fcn.0046b120
mov ecx, dword [esp + 0x28]
mov edi, eax
add ecx, 8
mov dword [esp + 0x1c], edx
call fcn.0041deb0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff8
mov dword [esp + 0x14], edx
add ecx, eax
call fcn.0041deb0
push esi
push dword [esp + 0x24]
push edx
push eax
call fcn.0046b120
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
mov esi, eax
add esi, 0x2f90404f
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], edx
adc ecx, 0x9ae16a3b
add eax, edi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
adc dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
shl dword [esp + 0x1c], 0xe
shrd esi, ecx, 0x12
or dword [esp + 0x18], esi
mov esi, dword [esp + 0x1c]
shr ecx, 0x12
or esi, ecx
mov ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x34]
adc esi, edx
add ecx, edi
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x28]
adc esi, eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov dword [esp + 0x1c], esi
add ecx, eax
call fcn.0041deb0
push 0x9ae16a3b
push 0x2f90404f
push edx
push eax
call fcn.0046b120
mov esi, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x2c]
xor ecx, ecx
shld dword [esp + 0x14], eax, 0x15
or ecx, dword [esp + 0x14]
shr esi, 0xb
shl eax, 0x15
or esi, eax
add edi, esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x2c], edi
adc edx, ecx
mov ecx, esi
xor eax, eax
shl ecx, 2
mov edi, dword [esp + 0x30]
push dword [esp + 0x38]
shrd esi, edi, 0x1e
push dword [esp + 0x24]
shr edi, 0x1e
or eax, esi
or ecx, edi
mov edi, dword [esp + 0x34]
add edi, eax
adc edx, ecx
xor edi, dword [esp + 0x20]
xor edx, dword [esp + 0x24]
push edx
push edi
call fcn.0046b120
mov edi, dword [esp + 0x38]
xor ecx, ecx
push edi
push dword [esp + 0x24]
mov esi, edx
xor ecx, edx
xor ecx, dword [esp + 0x24]
shr esi, 0xf
xor esi, eax
xor esi, dword [esp + 0x20]
push ecx
push esi
call fcn.0046b120
push edi
push dword [esp + 0x24]
jmp 0x41ecec
cmp eax, 0x40
ja 0x41e856
call fcn.0041e2f0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push dword [ecx + eax - 0x24]
lea esi, [ecx + eax]
push dword [esi - 0x28]
mov dword [esp + 0x40], esi
call fcn.0041df50
push dword [esi - 0x34]
mov dword [esp + 0x40], eax
push dword [esi - 0x38]
mov dword [esp + 0x2c], edx
call fcn.0041df50
push dword [esi - 0xc]
mov dword [esp + 0x28], eax
mov edi, edx
push dword [esi - 0x10]
call fcn.0041df50
add dword [esp + 0x2c], eax
push dword [esi - 0x14]
adc edi, edx
push dword [esi - 0x18]
mov dword [esp + 0x40], edi
call fcn.0041df50
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x50], esi
push dword [eax - 0x2c]
push dword [eax - 0x30]
call fcn.0041df50
add esp, 0x28
add eax, dword [esp + 0x24]
adc edx, 0
xor eax, edi
xor edx, esi
push 0x9ddfea08
push 0xeb382d69
push edx
push eax
call fcn.0046b120
xor ecx, ecx
mov esi, edx
xor ecx, dword [esp + 0x30]
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
push 0xeb382d69
xor esi, edi
xor esi, eax
push ecx
push esi
call fcn.0046b120
push 0x9ddfea08
mov esi, edx
xor ecx, ecx
push 0xeb382d69
xor ecx, edx
shr esi, 0xf
xor esi, eax
push ecx
push esi
call fcn.0046b120
mov esi, dword [esp + 0x38]
mov ecx, edx
push ecx
push eax
push 0
push dword [esp + 0x30]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x3c], ecx
lea ecx, [esi - 0x40]
push eax
call fcn.0041e210
mov edi, dword [esp + 0x30]
add esp, 0x14
mov ecx, dword [esp + 0x14]
add ecx, 0xbe98f273
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x20]
push edi
push dword [esp + 0x38]
movups xmmword [esp + 0x58], xmm0
adc eax, 0xb492b66f
push eax
push ecx
lea eax, [esp + 0x50]
lea ecx, [esi - 0x20]
push eax
call fcn.0041e210
mov esi, dword [esp + 0x3c]
add esp, 0x14
movups xmm0, xmmword [eax]
push dword [esi + 4]
movups xmmword [esp + 0x44], xmm0
push dword [esi]
call fcn.0041df50
add esp, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
push 0xb492b66f
push 0xbe98f273
push edi
push dword [esp + 0x40]
call fcn.0046b120
add dword [esp + 0x1c], eax
lea edi, [esi + 0x30]
mov eax, dword [esp + 0x24]
adc dword [esp + 0x18], edx
dec eax
and eax, 0xffffffc0
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], eax
push dword [edi - 0x24]
push dword [edi - 0x28]
call fcn.0041df50
mov esi, eax
mov edi, edx
add esi, dword [esp + 0x58]
mov eax, dword [esp + 0x30]
adc edi, dword [esp + 0x5c]
add esi, dword [esp + 0x1c]
adc edi, dword [esp + 0x28]
push dword [eax + 4]
add esi, dword [esp + 0x28]
push dword [eax]
adc edi, dword [esp + 0x28]
call fcn.0041df50
add esp, 0x10
mov ecx, edx
add eax, dword [esp + 0x58]
adc ecx, dword [esp + 0x5c]
add eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
adc ecx, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x24], ecx
mov ecx, edi
push 0xb492b66f
shld edi, esi, 0x1b
push 0xbe98f273
shr ecx, 5
or eax, edi
shl esi, 0x1b
or ecx, esi
push eax
push ecx
call fcn.0046b120
xor eax, dword [esp + 0x48]
xor edx, dword [esp + 0x4c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], edx
push dword [eax - 4]
push dword [eax - 8]
call fcn.0041df50
mov esi, dword [esp + 0x2c]
add esp, 8
mov edi, edx
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x1c]
mov ecx, esi
shld esi, edx, 0x16
push 0xb492b66f
xor eax, eax
shr ecx, 0xa
push 0xbe98f273
shl edx, 0x16
or eax, esi
or ecx, edx
push eax
push ecx
call fcn.0046b120
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x40]
add ecx, eax
push 0xb492b66f
adc edi, edx
add ecx, dword [esp + 0x54]
mov dword [esp + 0x18], ecx
adc edi, dword [esp + 0x58]
add esi, dword [esp + 0x34]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x48]
mov ecx, edi
adc ecx, dword [esp + 0x30]
xor eax, eax
mov edx, ecx
shld ecx, esi, 0x1f
shr edx, 1
shl esi, 0x1f
or edx, esi
or eax, ecx
push 0xbe98f273
push eax
push edx
call fcn.0046b120
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
add eax, esi
mov dword [esp + 0x18], edx
adc edi, dword [esp + 0x38]
push edi
push eax
push 0xb492b66f
push 0xbe98f273
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.0046b120
mov edi, dword [esp + 0x30]
push edx
push eax
lea eax, [esp + 0x70]
lea ecx, [edi - 0x30]
push eax
call fcn.0041e210
add esp, 0x14
movups xmm0, xmmword [eax]
push dword [edi - 0x1c]
movups xmmword [esp + 0x54], xmm0
push dword [edi - 0x20]
call fcn.0041df50
add eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x50]
adc edx, dword [esp + 0x28]
add ecx, dword [esp + 0x24]
push edx
push eax
mov eax, dword [esp + 0x5c]
adc eax, dword [esp + 0x28]
push eax
push ecx
lea eax, [esp + 0x88]
lea ecx, [edi - 0x10]
push eax
call fcn.0041e210
add edi, 0x40
mov dword [esp + 0x4c], esi
add esp, 0x1c
mov dword [esp + 0x28], edi
sub dword [esp + 0x34], 0x40
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
movups xmmword [esp + 0x40], xmm0
jne 0x41e9c2
mov eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x48]
xor ecx, dword [esp + 0x58]
push 0x9ddfea08
push 0xeb382d69
push eax
push ecx
call fcn.0046b120
xor ecx, ecx
mov esi, edx
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
xor ecx, dword [esp + 0x50]
xor esi, eax
xor esi, dword [esp + 0x4c]
push 0xeb382d69
push ecx
push esi
call fcn.0046b120
mov ecx, dword [esp + 0x44]
xor ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x40]
xor esi, dword [esp + 0x50]
push 0x9ddfea08
push 0xeb382d69
push ecx
push esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
call fcn.0046b120
xor ecx, ecx
mov esi, edx
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
xor ecx, dword [esp + 0x48]
xor esi, eax
xor esi, dword [esp + 0x44]
push 0xeb382d69
push ecx
push esi
call fcn.0046b120
mov esi, dword [esp + 0x3c]
xor ecx, ecx
xor ecx, dword [esp + 0x3c]
mov edi, eax
push 0x9ddfea08
push 0xeb382d69
shr esi, 0xf
xor esi, dword [esp + 0x40]
push ecx
push esi
mov dword [esp + 0x38], edx
call fcn.0046b120
add eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
adc edx, dword [esp + 0x18]
xor ecx, ecx
xor ecx, dword [esp + 0x28]
push 0x9ddfea08
push 0xeb382d69
shr esi, 0xf
push ecx
xor esi, edi
mov dword [esp + 0x44], eax
push esi
mov dword [esp + 0x44], edx
call fcn.0046b120
mov esi, dword [esp + 0x20]
xor ecx, ecx
shr esi, 0xf
mov edi, edx
xor esi, dword [esp + 0x14]
xor ecx, dword [esp + 0x20]
push 0xb492b66f
push 0xbe98f273
push ecx
mov dword [esp + 0x48], eax
push esi
call fcn.0046b120
mov ecx, dword [esp + 0x3c]
add ecx, eax
push 0x9ddfea08
adc edi, edx
add ecx, dword [esp + 0x34]
push 0xeb382d69
adc edi, dword [esp + 0x34]
xor edi, dword [esp + 0x3c]
xor ecx, dword [esp + 0x40]
push edi
push ecx
call fcn.0046b120
xor ecx, ecx
mov esi, edx
xor ecx, dword [esp + 0x34]
push 0x9ddfea08
shr esi, 0xf
xor ecx, edx
xor esi, dword [esp + 0x3c]
push 0xeb382d69
xor esi, eax
push ecx
push esi
call fcn.0046b120
push 0x9ddfea08
push 0xeb382d69
xor ecx, ecx
mov esi, edx
xor ecx, edx
shr esi, 0xf
push ecx
xor esi, eax
push esi
call fcn.0046b120
pop edi
pop esi
mov esp, ebp
pop ebp
ret