Function at 0x40a560
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov esi, dword [esp + 0x68]
mov dword [esp + 0x1c], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x18], eax
mov dword [esp], 0x323b25
mov edi, 0x72d553f4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edi - 0x72d553f4]
mov ebx, edi
or ebx, ebp
and ebp, edi
sub ebx, ebp
mov ebp, 0x394ec1ff
sub ebp, ebx
add ebx, 0xc6b13ec0
and ebp, 0xc5
and ebx, 0x3a
sub ebx, ebp
inc bl
mov byte [esp + edi - 0x72d553f4], bl
inc edi
cmp edi, 0x72d553f8
jne 0x40a590
mov dword [esp + 0xc], 0xf6fcf0c6
mov word [esp + 0x10], 0xe3fa
mov dword [esp + 0x12], 0
mov edx, 0xa9
mov eax, 0x56
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx - 0x9d]
mov ebx, edx
and ebx, ecx
mov ebp, eax
and ebp, ecx
mov edi, edx
xor edi, ecx
add edi, ecx
sub edi, ebp
not ebx
and ebx, edi
add bl, 0xb3
mov byte [esp + edx - 0x9d], bl
inc edx
dec eax
cmp edx, 0xb3
jne 0x40a5f0
mov dword [esp + 0x20], 0x1c217b7d
mov dword [esp + 0x24], 0x1903111a
mov dword [esp + 0x28], 0x23e440c
mov dword [esp + 0x2c], 0xc010d0f
mov dword [esp + 0x30], 0xc0b0509
mov dword [esp + 0x34], 0x11563f0a
mov dword [esp + 0x38], 0xb6f7fbf7
mov dword [esp + 0x3c], 0xeefaece8
mov dword [esp + 0x40], 0xe2fca1cb
mov dword [esp + 0x44], 0xa5cbe0f9
mov byte [esp + 0x48], 0x98
mov dword [esp + 0x49], 0
mov byte [esp + 0x4d], 0
mov ebx, 0x6807b9e9
mov ebp, 0x17
nop
nop
nop
nop
movzx edi, byte [esp + ebx - 0x6807b9c9]
mov eax, ebp
and eax, edi
not edi
or edi, ebp
add edi, ebx
or edi, eax
neg edi
lea eax, [edi + edi]
and eax, 0x12
xor edi, 0xf7d95e76
inc edi
mov ecx, edi
sub ecx, eax
and edi, 1
xor ecx, 1
lea eax, [ecx + edi*2]
mov byte [esp + ebx - 0x6807b9c9], al
inc ebx
dec ebp
cmp ebx, 0x6807ba17
jne 0x40a690
mov ebp, dword [esp + 0x64]
add ebp, dword [esp + 0x18]
mov word [esp + 4], 3
mov byte [esp + 6], 0x3e
mov dword [esp + 7], 0
mov byte [esp + 0xb], 0
mov ecx, 0xdd0a9775
mov edx, dword [esp + 0x6c]
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x22f5688f]
xor ebx, ecx
mov eax, ebx
and eax, 1
or ebx, 1
add ebx, eax
add bl, 0xb6
mov byte [esp + ecx + 0x22f5688f], bl
inc ecx
cmp ecx, 0xdd0a977d
jne 0x40a700
movzx ecx, byte [esp + 4]
mov edi, ebp
test cl, cl
je 0x40a74b
lea ebx, [esp + 5]
mov edi, ebp
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x40a740
mov byte [edi], 0
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 0x60]
test cl, cl
je 0x40a76b
lea ebx, [eax + 0x61]
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x40a760
mov byte [edi], 0
movzx ecx, byte [esp + 0x20]
test cl, cl
je 0x40a78b
lea ebx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x40a780
mov byte [edi], 0
movzx ecx, byte [esi]
test cl, cl
je 0x40a7ab
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40a7a0
mov byte [edi], 0
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x40a7cb
lea esi, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40a7c0
mov byte [edi], 0
movzx ecx, byte [edx]
test cl, cl
je 0x40a7eb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40a7e0
mov byte [edi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40a80b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40a800
mov byte [edi], 0
sub edi, ebp
add dword [eax + 0x80], edi
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret 0xc