Function at 0x41d6a0
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], 0x936491b9
mov dword [esp + 0xc], 0x9f719d03
mov dword [esp + 0x10], 0x9b0c997d
mov dword [esp + 0x14], 0x87148559
mov dword [esp + 0x18], 0x834c8116
mov dword [esp + 0x1c], 0x8f108d61
mov dword [esp + 0x20], 0x8ba7896d
lea eax, [esp + 0x24]
mov dword [esp + 0x7c], eax
mov word [esp + 0x24], 0xb58a
mov dword [esp + 0x26], 0
mov dword [esp + 0x2a], 0
mov byte [esp + 0x2e], 0
mov dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x26
ja 0x41d7ac
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
movzx ebx, byte [esp + ecx + 8]
lea ecx, [esi + 0x6d052cc3]
mov edx, ecx
and edx, ebx
mov edi, 0x92fad33c
sub edi, esi
lea eax, [esi + 0xc3]
or eax, ecx
xor ecx, ebx
and eax, ebx
or edi, ebx
add edi, esi
add edi, eax
sub ecx, edi
lea eax, [ecx + edx*2]
add eax, 0x92fad33c
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
mov ecx, eax
xor ecx, 0xaa
and eax, 0x2a
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x8c]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x8c]
mov eax, dword [esp + 0x8c]
cmp eax, 0x27
jb 0x41d730
lea esi, [esp + 0x8c]
lea eax, [esp + 8]
mov ecx, 7
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xa8]
mov ecx, 1
mov eax, dword [esp + 0x7c]
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 [0x447498]
mov ebx, dword [esp + 0x80]
test ebx, ebx
jns 0x41d800
mov eax, 0xffffffff
jmp 0x41d803
lea eax, [ebx + ebx]
push eax
call fcn.00408da0
add esp, 4
push edi
push ebx
mov ebx, eax
push eax
push 0xe
push esi
push 0
call dword [0x447498]
mov dword [esp + 8], 0x63146502
mov dword [esp + 0xc], 0x6f0d610d
mov dword [esp + 0x10], 0x6b036dfb
mov dword [esp + 0x14], 0x97036903
mov dword [esp + 0x18], 0x9394950b
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x60]
cmp ecx, 0x17
ja 0x41d8b2
nop
nop
nop
nop
nop
nop
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]
lea esi, [ecx - 0x29cfc48f]
add ecx, 0x71
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xc0], esi
mov ecx, dword [esp + 0xc0]
add cl, 0xe9
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
cmp ecx, 0x18
jb 0x41d870
lea edi, [esp + 0xac]
lea edx, [esp + 8]
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 + 0x80]
mov ecx, 1
sub ecx, eax
and ecx, 1
and eax, 0xfffffffe
sub eax, ecx
mov ecx, eax
add ecx, 0xa
jns 0x41d8fa
mov eax, 0xffffffff
jmp 0x41d8ff
add eax, eax
add eax, 0x14
push eax
call fcn.00408da0
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x41d931
lea edx, [ebx + 2]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41d920
mov word [eax], 0
movzx ecx, word [esp + 0xac]
test cx, cx
je 0x41d961
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 0x41d950
mov edi, dword [ebp + 8]
mov word [eax], 0
lea eax, [esp + 0x88]
push eax
push esi
call fcn.0043abe0
add esp, 8
not eax
shr eax, 0x1f
mov dword [esp + 0x7c], ebx
jmp dword [eax*4 + 0x442a34]