Function at 0x41dd80
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 + 0x20], 0xabdead81
mov dword [esp + 0x24], 0xd7b9a93b
mov dword [esp + 0x28], 0xd346d5b5
mov dword [esp + 0x2c], 0xdf4ed191
mov dword [esp + 0x30], 0xdb96dd4c
mov dword [esp + 0x34], 0xc75ad9b9
mov dword [esp + 0x38], 0xc3efc5a5
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0xc1c0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x1f
ja 0x41de36
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x20]
mov esi, ecx
and esi, 0xfab520ba
xor ecx, 0xfab520ba
lea ecx, [ecx + esi*2]
xor ecx, edx
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x8c]
add cl, 0xea
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x20
jb 0x41ddf0
lea esi, [esp + 0xee]
lea edx, [esp + 0x20]
mov ecx, 7
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x10a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x80]
push edi
push 0
push 0
push 0xe
push esi
push 0
call dword [0x447698]
mov ebx, dword [esp + 0x80]
test ebx, ebx
jns 0x41de88
mov eax, 0xffffffff
jmp 0x41de8b
lea eax, [ebx + ebx]
push eax
call fcn.00408a50
add esp, 4
push edi
push ebx
mov ebx, eax
push eax
push 0xe
push esi
push 0
call dword [0x447698]
mov dword [esp + 0x20], 0x23d021c2
mov dword [esp + 0x24], 0xdf41ddc1
mov dword [esp + 0x28], 0xdb3bd94b
mov dword [esp + 0x2c], 0xd74bd543
mov dword [esp + 0x30], 0xd3d0d15b
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x17
ja 0x41df47
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x20]
mov esi, ecx
and esi, 0x174c4afb
xor ecx, 0x974c4afb
lea ecx, [ecx + esi*2]
lea esi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x8c], esi
mov ecx, dword [esp + 0x8c]
mov edx, ecx
xor edx, 0x22
and ecx, 0x22
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x18
jb 0x41def0
lea edi, [esp + 0xda]
lea edx, [esp + 0x20]
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xee]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x80]
mov ecx, 1
sub ecx, eax
and ecx, 1
and eax, 0xfffffffe
sub eax, ecx
mov ecx, eax
add ecx, 0xa
jns 0x41df8f
mov eax, 0xffffffff
jmp 0x41df94
add eax, eax
add eax, 0x14
push eax
call fcn.00408a50
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
lea edi, [esp + 0x20]
je 0x41dfc1
lea edx, [ebx + 2]
mov eax, esi
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41dfb0
mov word [eax], 0
movzx ecx, word [esp + 0xda]
test cx, cx
je 0x41dff1
lea edx, [esp + 0xdc]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41dfe0
mov dword [esp + 0x7c], ebx
mov word [eax], 0
lea eax, [esp + 0x88]
push eax
push esi
call fcn.0043b590
add esp, 8
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442b78]