Function at 0x41a680
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov dword [esp + 0x20], 0x9b09993c
mov dword [esp + 0x24], 0x87118518
mov dword [esp + 0x28], 0x83238112
mov dword [esp + 0x2c], 0x8f238d23
mov dword [esp + 0x30], 0x8b26892c
mov dword [esp + 0x34], 0x77d875d9
mov dword [esp + 0x38], 0x73ef71d1
mov dword [esp + 0x3c], 0x7fe27de8
lea eax, [esp + 0x40]
mov word [esp + 0x40], 0x7978
mov dword [esp + 0x46], 0
mov dword [esp + 0x42], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x29
ja 0x41a751
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + edx]
add esi, 0xb503af6c
add ecx, 0xb503af6c
and ecx, edx
add ecx, ecx
sub esi, ecx
mov dword [esp + 0x70], esi
mov ecx, dword [esp + 0x70]
add cl, 0xc
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x20], cl
mov ecx, dword [esp + 8]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
cmp ecx, 0x2a
jb 0x41a700
mov ebx, dword [ebp + 8]
lea edi, [esp + 0x70]
lea edx, [esp + 0x20]
mov ecx, 8
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x90]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41a790
cmp eax, 0xffffffdd
jge 0x41a7a7
mov eax, 0xffffffff
jmp 0x41a7aa
add eax, 0x22
push eax
call fcn.00408f00
add esp, 4
mov esi, eax
movzx ecx, word [edi]
test cx, cx
je 0x41a7e1
add edi, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41a7d0
mov word [eax], 0
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x41a811
lea edx, [esp + 0x72]
nop
nop
nop
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 0x41a800
mov word [eax], 0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], 0x33ad31ad
mov dword [esp + 0x24], 0x376b35be
mov dword [esp + 0x28], 0x2ba2294d
mov dword [esp + 0x2c], 0x2f4b2db8
mov dword [esp + 0x30], 0x23b121be
mov dword [esp + 0x34], 0x27b925bd
mov dword [esp + 0x38], 0x5b0159c6
mov dword [esp + 0x3c], 0x5f055d07
mov dword [esp + 0x40], 0x533c510a
mov dword [esp + 0x44], 0x57c555c1
mov dword [esp + 0x48], 0x4bd8492d
mov dword [esp + 0x4c], 0x4fd14d0f
mov dword [esp + 0x50], 0x43d641de
mov dword [esp + 0x54], 0x47ce4521
mov dword [esp + 0x58], 0x7b0379ec
mov dword [esp + 0x5c], 0x7f337d18
mov dword [esp + 0x60], 0x7372712a
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x4b
ja 0x41a92a
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
lea edx, [eax + ecx]
add edx, 0x1ecb32a8
add eax, 0x1ecb32a8
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
add al, 0x68
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x4c
jb 0x41a8e0
lea eax, [esp + 8]
push eax
push 0x41ac20
lea eax, [esp + 0x28]
push eax
push esi
call fcn.0041b210
add esp, 0x10
mov ebx, eax
jmp dword [0x442504]