Function at 0x41a830
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], 0x63f161dc
mov dword [esp + 0x24], 0x67c965f0
mov dword [esp + 0x28], 0x6bcb69fa
mov dword [esp + 0x2c], 0x6fcb6dcb
mov dword [esp + 0x30], 0x53f651ec
mov dword [esp + 0x34], 0x57f055f1
mov dword [esp + 0x38], 0x5bcf59f9
mov dword [esp + 0x3c], 0x5fca5df0
lea eax, [esp + 0x40]
mov word [esp + 0x40], 0x4140
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x49], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x2c
ja 0x41a908
nop
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]
add ecx, 0xcbc70f10
mov esi, ecx
mov edi, ecx
xor edi, edx
and ecx, edx
not edx
or esi, edx
add edi, edx
add esi, ecx
sub edi, esi
lea ecx, [edi + ecx*2]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x70]
add cl, 0x90
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x2d
jb 0x41a8c0
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
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41a940
cmp eax, 0xffffffdd
jge 0x41a957
mov eax, 0xffffffff
jmp 0x41a95a
add eax, 0x22
push eax
call fcn.00408ea0
add esp, 4
mov esi, eax
movzx ecx, word [edi]
test cx, cx
je 0x41a991
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 0x41a980
mov word [eax], 0
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x41a9c1
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 0x41a9b0
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], 0x1b8d198d
mov dword [esp + 0x24], 0x753059e
mov dword [esp + 0x28], 0x39a01ad
mov dword [esp + 0x2c], 0xfa30d90
mov dword [esp + 0x30], 0xb99099e
mov dword [esp + 0x34], 0x77e175dd
mov dword [esp + 0x38], 0x731971e6
mov dword [esp + 0x3c], 0x7f157d17
mov dword [esp + 0x40], 0x7bdc7912
mov dword [esp + 0x44], 0x67f565f9
mov dword [esp + 0x48], 0x63f061cd
mov dword [esp + 0x4c], 0x6ff96d2f
mov dword [esp + 0x50], 0x6bf669fe
mov dword [esp + 0x54], 0x57ce55f9
mov dword [esp + 0x58], 0x531b51cc
mov dword [esp + 0x5c], 0x5f1b5df0
mov dword [esp + 0x60], 0x5b5a5932
mov word [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x49
ja 0x41aacb
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
lea edx, [eax - 0xe552d4]
add eax, 0x2c
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add al, 0xcc
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x4a
jb 0x41aa90
lea eax, [esp + 8]
push eax
push 0x41adf0
lea eax, [esp + 0x28]
push eax
push esi
call fcn.0041b350
add esp, 0x10
mov ebx, eax
mov eax, dword [0x443338]
mov ecx, 0x1aead145
xor ecx, dword [0x443340]
add eax, ecx
inc eax
jmp eax