Function at 0x41eef0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov edi, dword [eax + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x41ef10
mov esi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41ef30
sar edx, 1
mov dword [esp + 0x48], edx
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x44], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x50], ecx
jns 0x41ef5e
mov eax, 0xffffffff
jmp 0x41ef65
lea eax, [ecx*2 + 0x36]
push eax
call fcn.004087e0
add esp, 4
mov dword [esp + 4], 0x81528720
mov dword [esp + 8], 0x8d2f8331
mov dword [esp + 0xc], 0x893a8f2f
mov dword [esp + 0x10], 0x95458b68
mov dword [esp + 0x14], 0x912a972c
mov dword [esp + 0x18], 0x9d24933f
mov dword [esp + 0x1c], 0x99359f21
mov dword [esp + 0x20], 0x652c9b29
mov dword [esp + 0x24], 0x61bb6784
mov dword [esp + 0x28], 0x6dde63cf
mov dword [esp + 0x2c], 0x69c56fd0
mov dword [esp + 0x30], 0x75c36bde
mov dword [esp + 0x34], 0x71d277c9
mov word [esp + 0x38], 0x7370
mov dword [esp + 0x3a], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
add cl, 0x61
xor cl, byte [esp + edx + 4]
add cl, 0x1b
mov byte [esp + edx + 4], cl
mov ecx, edx
or ecx, 0x3dc915af
and edx, 0x2f
add edx, ecx
add edx, 0xc236ea52
cmp edx, 0x3a
jb 0x41eff0
movzx ecx, word [edi]
mov ebx, eax
test cx, cx
je 0x41f041
add edi, 2
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41f030
mov word [ebx], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x41f071
lea edx, [esp + 6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41f060
mov word [ebx], 0
movzx ecx, word [esi]
test cx, cx
mov dword [esp + 0x4c], eax
je 0x41f0a1
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x41f090
mov word [ebx], 0
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41f0c0
mov ecx, dword [esp + 0x6c]
mov ebp, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41f0e0
mov edx, dword [esp + 0x70]
mov edi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x41f100
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41f124
mov eax, 0xffffffff
jmp 0x41f12d
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.004087e0
add esp, 4
mov esi, eax
movzx eax, word [ebx]
mov dword [esp + 0x40], esi
test ax, ax
je 0x41f161
add ebx, 2
mov esi, dword [esp + 0x40]
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x41f150
mov word [esi], 0x2f
mov dword [esp + 4], 0x51094f3d
mov dword [esp + 8], 0x55e653e8
mov dword [esp + 0xc], 0x59f857f3
mov dword [esp + 0x10], 0x5df15bed
mov dword [esp + 0x14], 0xa1f05fed
mov dword [esp + 0x18], 0xa5d3a315
mov dword [esp + 0x1c], 0xa7a4
mov byte [esp + 0x20], 0
mov eax, 0x204ae16d
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x204ae169]
mov edx, eax
and edx, ecx
or ecx, eax
xor ecx, edx
mov edx, ecx
and edx, 0x22
xor edx, 0x81340622
and ecx, 0x880dd
sub ecx, edx
add ecx, 0xdc10ce43
mov edx, ecx
xor edx, 0x42
and ecx, 0x3d
add ecx, ecx
sub ecx, edx
mov byte [esp + eax - 0x204ae169], cl
inc eax
cmp eax, 0x204ae18a
jne 0x41f1b0
add esi, 2
movzx eax, word [ebp]
test ax, ax
mov ebx, dword [esp + 0x4c]
je 0x41f222
add ebp, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41f210
mov word [esi], 0
movzx eax, word [esp + 4]
test ax, ax
je 0x41f253
lea ecx, [esp + 6]
mov ebp, dword [esp + 0x70]
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41f240
jmp 0x41f257
mov ebp, dword [esp + 0x70]
mov word [esi], 0
movzx eax, word [edi]
test ax, ax
je 0x41f281
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x41f270
mov word [esi], 0
mov dword [esp + 4], 0xb7b689de
mov byte [esp + 8], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x9e
xor cl, byte [esp + eax + 4]
add cl, 0xea
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 5
jne 0x41f2a0
lea eax, [esp + 4]
push 0
push 0
push 0xc00000
push eax
push ebx
push dword [esp + 0x54]
push dword [esp + 0x80]
call fcn.00422ff0
add esp, 0x1c
mov byte [esp + 3], al
jmp dword [0x447ee0]