Function at 0x4011d3
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov edi, dword [esp + 0x30]
movaps xmm0, xmmword [str.AYBz_NhRiV__]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x18], 0x37252b
mov byte [esp + 8], 0x4d
xor eax, eax
inc eax
mov cl, 0xcb
mov ebx, eax
mov al, byte [esp + eax + 8]
mov byte [esp + 4], al
mov eax, ecx
mov edx, ecx
and al, 0xca
mov dh, bl
mov esi, ebx
add dh, 0x33
mov bh, dh
and bh, 0x35
or bh, al
mov al, bh
xor al, 0x24
xor bh, 0xca
mov cl, dh
not cl
and cl, dh
mov ah, cl
not ah
mov ch, bh
and ch, 0xd1
and al, 0x2e
or al, ch
or bh, ah
and ah, 0xd1
and cl, 0x2e
or cl, ah
xor cl, al
not bh
or bh, cl
mov al, bh
not al
and al, 0x80
xor bh, 0x7f
or bh, al
mov al, bh
not al
and al, 0xdb
and bh, 0x24
or bh, al
mov al, bh
xor al, 0x24
mov byte [esp + 5], al
mov al, bh
xor al, 0xdb
mov byte [esp + 7], al
mov byte [esp + 6], dl
mov ecx, edx
and cl, 0xdc
and dh, 0x23
or dh, cl
xor dh, 0x5c
or dh, dl
mov cl, dh
not cl
mov ah, byte [esp + 4]
mov dl, ah
not dl
mov ch, dl
and ch, 0xd9
mov al, ah
and al, 0x26
or al, ch
xor al, 0x26
mov bl, dl
and bl, ah
mov ch, al
and ch, bl
xor bl, al
or bl, ch
mov al, bl
not al
mov ch, al
and ch, 0x80
and bl, 0x7f
or bl, ch
not bl
or bl, al
mov al, bl
not al
mov byte [esp + 3], al
and dl, 0x62
and ah, 0x9d
or ah, dl
mov al, ah
xor al, 0x1d
and al, 0x7f
xor ah, 0xe2
or ah, al
mov al, ah
not al
and al, 0x1d
and ah, 0xe2
or ah, al
mov al, ah
mov ch, ah
xor al, 0xe2
mov byte [esp + 4], al
xor bh, 0x62
mov al, bh
mov ah, byte [esp + 7]
and al, ah
and bh, byte [esp + 5]
mov dl, dh
and dl, 0x46
and cl, 0xb9
or cl, dl
mov dl, al
and dl, bh
xor bh, al
mov al, ch
xor al, 9
or bh, dl
mov dl, bh
not dl
and dl, cl
not cl
and cl, bh
or cl, dl
mov dl, ah
and dl, dh
xor dh, ah
or dh, dl
mov dl, dh
not dl
and dl, 0xc0
and dh, 0x3f
or dh, dl
mov dl, dh
xor dl, 6
mov bh, cl
not bh
xor dh, 0xc0
mov ah, bh
and ah, 0x39
and cl, 0xc6
or cl, ah
or bh, dh
and dh, 0x39
and dl, 0xc6
or dl, dh
xor dl, cl
not bh
or bh, dl
mov byte [esp + 5], bh
mov cl, bl
and cl, 0x75
mov bh, byte [esp + 3]
and bh, 0x8a
or bh, cl
mov byte [esp + 3], bh
xor bh, 0x8a
and al, 0x69
xor ch, 0xe1
mov dl, byte [esp + 4]
and ch, dl
and dl, 0x96
or dl, al
mov eax, edx
xor al, 0x96
mov ah, bh
and ah, 3
or bl, 3
mov dh, bl
not dh
or dh, ah
mov ah, dl
xor ah, 0x6a
and ah, al
mov cl, ah
and cl, ch
xor ch, ah
mov ah, ch
or ah, cl
and bl, 0xac
and dh, 0x53
or dh, bl
mov cl, ah
not cl
and cl, 0xac
and ah, 0x53
or ah, cl
mov ch, byte [esp + 3]
xor ch, 0x75
xor ah, dh
mov cl, ch
and cl, 0x4f
and bh, 0xb0
or bh, cl
xor dl, 0x69
or ch, dl
and dl, 0x4f
and al, 0xb0
or al, dl
xor al, bh
mov dl, ch
not dl
or dl, al
mov al, dl
not al
and al, 0xca
and dl, 0x35
or dl, al
mov al, ah
not al
mov ecx, eax
and cl, 0xae
and ah, 0x51
or ah, cl
mov ecx, edx
xor cl, 0x11
xor dl, 0xca
or al, dl
and dl, 0xae
and cl, 0x51
or cl, dl
xor cl, ah
not al
or al, cl
mov ecx, eax
not cl
mov edx, ecx
and dl, 0x84
and al, 0x62
or al, dl
mov ah, byte [esp + 5]
mov dl, ah
xor dl, 0xe6
and dl, ah
not ah
and ah, 0xe6
or cl, 0xe6
xor cl, al
mov al, ah
and al, dl
xor dl, ah
or dl, al
mov eax, edx
not al
and al, 3
and dl, 0xfc
or dl, al
mov eax, ecx
xor al, 2
xor cl, 0x9c
and al, 3
and cl, 0xfc
or cl, al
xor cl, dl
mov edx, esi
mov byte [esp + esi + 8], cl
inc edx
mov cl, byte [esp + 6]
dec cl
mov eax, edx
cmp edx, 0x13
jne 0x4011fc
lea ebx, [esp + 8]
mov byte [ebx + 0x13], 0
push ebx
call fcn.0040165b
mov esi, eax
push edi
call fcn.0040f150
add esp, 4
xor ecx, ecx
push ecx
push ecx
push eax
push edi
push ecx
push 0xfde9
call esi
mov esi, eax
inc eax
xor ecx, ecx
dec ecx
add eax, eax
cmovb eax, ecx
push eax
call fcn.0040d340
add esp, 4
mov edi, eax
movaps xmm0, xmmword [str.AYBz_NhRiV__]
movups xmmword [ebx], xmm0
mov dword [ebx + 0x10], 0x37252b
mov byte [ebx], 0x4d
xor eax, eax
inc eax
mov dl, 0xcb
mov bh, byte [esp + eax + 8]
mov ecx, eax
mov ebp, eax
add cl, 0x33
mov eax, edx
mov ch, dl
not ch
mov edx, ecx
xor dl, 0x95
and dl, cl
mov dh, ch
xor dh, dl
not dl
not dh
or dl, ch
not dl
or dl, dh
mov byte [esp + 3], al
mov ch, al
and ch, 0x10
and cl, 0xef
or cl, ch
mov bl, cl
xor bl, al
and bl, cl
mov al, bh
not al
mov ecx, eax
mov ah, al
and cl, 0x50
mov dh, bh
and dh, 0xaf
or dh, cl
xor dh, 0xaf
mov ecx, eax
and cl, bh
mov al, dh
and al, cl
xor cl, dh
or cl, al
mov dh, cl
not dh
mov al, dh
and al, 0xef
and cl, 0x10
or cl, al
xor dh, cl
and dh, cl
and bh, 0xa
mov al, ah
and al, 0xf5
or al, bh
xor al, 0x1a
and ah, 0x10
or ah, al
mov byte [esp + 6], ah
mov eax, ebx
not al
mov ecx, eax
and cl, 0x19
mov ah, bl
and ah, 0xe6
or ah, cl
mov bh, ah
xor bh, 0xe6
xor ah, 0xd4
and ah, bh
mov cl, ah
not cl
mov ch, cl
and ch, 0x21
and ah, 0xde
or ah, ch
or al, 0xcd
or cl, al
and al, 0x21
and bl, 0x12
or bl, al
not dl
or dl, 0xef
xor bl, ah
mov eax, edx
and al, bh
xor bh, dl
not dl
or dl, 0x20
not cl
or cl, bl
mov ah, dl
xor ah, 0xed
xor dl, 0x12
and dl, cl
not cl
and cl, ah
or cl, dl
or bh, al
not bh
mov eax, ecx
and al, bh
xor bh, cl
or bh, al
mov al, dh
not al
mov ecx, eax
and al, 0xa3
and dh, 0x5c
or dh, al
mov dl, byte [esp + 6]
mov eax, edx
not al
or cl, dl
and dl, 0xa3
and al, 0x5c
or al, dl
not cl
xor al, dh
mov edx, ecx
and dl, al
xor al, cl
or al, dl
mov dl, bh
not dl
or bh, 0x9f
or dl, 0x60
xor dl, bh
mov ecx, eax
mov ah, al
xor ah, 0x60
and ah, al
not al
and al, 0x40
and cl, 0x20
or cl, al
xor cl, 0x20
mov al, cl
and al, ah
xor ah, cl
or ah, al
mov al, dl
not al
and al, 0xc4
and dl, 0x3b
or dl, al
mov al, ah
not al
and al, 0xc4
and ah, 0x3b
or ah, al
xor ah, dl
mov byte [esp + ebp + 8], ah
inc ebp
mov dl, byte [esp + 3]
dec dl
mov eax, ebp
cmp ebp, 0x13
jne 0x4014ba
mov byte [esp + 0x1b], 0
lea eax, [esp + 8]
push eax
call fcn.0040165b
mov ebx, eax
mov ebp, dword [esp + 0x30]
push ebp
call fcn.0040f150
add esp, 4
push esi
push edi
push eax
push ebp
push 0
push 0xfde9
call ebx
mov word [edi + esi*2], 0
mov eax, edi
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret