Function at 0x41ec40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x110
mov dword [esp + 8], 0xdb6ed985
mov dword [esp + 0xc], 0xd775d543
mov dword [esp + 0x10], 0xd346d171
mov dword [esp + 0x14], 0xcf5ecd8d
mov dword [esp + 0x18], 0xcb76c958
mov dword [esp + 0x1c], 0xc74ac565
mov dword [esp + 0x20], 0xc39fc161
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x3d3c
mov dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x1f
ja 0x41ed1b
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x8c]
movzx esi, byte [esp + edx + 8]
lea edi, [ecx - 0x2dc6021c]
lea edx, [ecx + esi]
add edx, 0xd239fde4
add ecx, 0xe4
or ecx, edi
and edi, esi
and ecx, esi
add ecx, edi
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xc0]
add cl, 0xc4
mov edx, dword [esp + 0x8c]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x20
jb 0x41ecb0
lea esi, [esp + 0x8c]
lea edx, [esp + 8]
mov ecx, 7
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xa8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea ebx, [esp + 0x7c]
push ebx
push 0
push 0
push 0xe
push esi
push 0
call dword [0x448ad0]
mov edi, dword [esp + 0x7c]
test edi, edi
jns 0x41ed67
mov eax, 0xffffffff
jmp 0x41ed6a
lea eax, [edi + edi]
push eax
call fcn.004093a0
add esp, 4
mov esi, eax
push ebx
push edi
push eax
push 0xe
lea eax, [esp + 0x9c]
push eax
push 0
call dword [0x448ad0]
mov dword [esp + 8], 0xbb48b94a
mov dword [esp + 0xc], 0xbf59bd59
mov dword [esp + 0x10], 0xa343a153
mov dword [esp + 0x14], 0xa743a54b
mov dword [esp + 0x18], 0xaba8a933
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x1f], 0
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1a
ja 0x41ee1b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
movzx edx, byte [esp + edx + 8]
add ecx, 0xf1310067
xor ecx, edx
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xc0]
add cl, 0x2f
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1b
jb 0x41ede0
lea edi, [esp + 0xac]
lea ebx, [esp + 8]
mov edx, ebx
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc0]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x7c]
mov ecx, eax
add ecx, 9
jns 0x41ee53
mov eax, 0xffffffff
jmp 0x41ee58
add eax, eax
add eax, 0x12
push eax
call fcn.004093a0
add esp, 4
mov edi, eax
movzx ecx, word [esi]
test cx, cx
je 0x41ee81
lea edx, [esi + 2]
mov eax, edi
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41ee70
mov word [eax], 0
movzx ecx, word [esp + 0xac]
test cx, cx
je 0x41eeb1
lea edx, [esp + 0xae]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41eea0
mov word [eax], 0
lea eax, [esp + 0x88]
push eax
push edi
call fcn.0043c560
add esp, 8
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443e10]