Function at 0x40bf6c
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x124
lea esi, [esp + 0x20]
push 0x104
push 0
push esi
call fcn.0040e060
add esp, 0xc
xor eax, eax
mov byte [esp + 0x1e], al
mov word [esp + 0x1c], 0x96d1
mov dword [esp + 0xa], 0x48544441
mov word [esp + 0xe], 0x7b40
mov byte [esp + 0x10], al
mov word [esp + 8], 0x476c
xor eax, eax
inc eax
mov ch, 0xcb
mov ebx, eax
mov al, byte [esp + eax + 8]
mov edx, ebx
mov edi, ebx
add dl, 0x33
mov cl, dl
not cl
and cl, 0x5e
and dl, 0xa1
or dl, cl
mov ebx, edx
xor bl, 0x21
mov cl, al
not cl
xor dl, 0x40
and dl, 0xc0
and bl, 0x3f
or bl, dl
xor bl, 0x3f
mov edx, ecx
and dl, bl
xor bl, cl
or bl, dl
mov edx, ebx
not dl
and dl, 0x2c
and bl, 0xd3
or bl, dl
mov edx, ebx
xor dl, 0xd3
mov ah, dl
mov byte [esp + 5], dl
xor bl, 0xc
and al, 0x87
and cl, 0x78
or cl, al
mov bh, cl
xor bh, 0x82
xor cl, 0x70
and cl, 0x75
and bh, 0x8a
or bh, cl
xor bh, 0x8a
mov byte [esp + 3], ch
mov al, ch
and al, bh
xor bh, ch
or bh, al
mov al, bh
not al
and al, 0x3d
and bh, 0xc2
or bh, al
mov dl, bh
xor dl, 0xc2
and bl, 0xde
mov ch, ah
and ch, 0x21
or ch, bl
mov byte [esp + 4], ch
xor bh, 0x3d
mov al, bh
and al, 0xc1
mov cl, dl
and cl, 0x3e
or cl, al
mov dh, cl
xor dh, 0x3e
xor ch, 0xde
xor cl, 0xc1
mov ah, cl
or ah, 4
mov al, ch
and al, 0xd0
mov bl, byte [esp + 5]
or bl, 0xd0
xor bl, al
and ah, 0x44
mov al, dh
and al, 0x90
or al, ah
or bh, 0x40
and bh, 0x44
and dl, 0x2b
or dl, bh
xor dl, al
mov eax, ebx
not al
and al, 0x8f
and bl, 0x70
or bl, al
mov ah, bl
mov al, dl
not al
and al, 0x8f
and dl, 0x70
or dl, al
mov bl, byte [esp + 4]
xor bl, 0x21
xor dl, ah
mov al, ch
and al, 0x94
and bl, 0x6b
or bl, al
or ch, cl
and cl, 0x94
and dh, 0x6b
or dh, cl
xor dh, bl
not ch
or ch, dh
mov al, ch
not al
and al, 0xa7
and ch, 0x58
or ch, al
mov eax, edx
not al
mov cl, al
and cl, 0x1f
and dl, 0xe0
or dl, cl
mov cl, ch
xor cl, 0x40
xor ch, 0xa7
or al, ch
and ch, 0x1f
and cl, 0xe0
or cl, ch
xor cl, dl
not al
or al, cl
mov edx, edi
mov byte [esp + edi + 8], al
inc edx
mov ch, byte [esp + 3]
dec ch
mov eax, edx
cmp edx, 8
jne 0x40bfb6
xor ebx, ebx
lea edi, [esp + 8]
mov byte [edi + 8], bl
push edi
call fcn.0040165b
lea ecx, [esp + 0x14]
mov word [ecx], 0x7355
mov byte [ecx + 2], bl
push ecx
push esi
call eax
mov dword [edi + 2], 0x59544441
mov word [edi + 6], 0x7b4d
mov byte [edi + 8], bl
mov word [edi], 0x476c
xor eax, eax
inc eax
mov cl, 0xcb
mov ebx, eax
mov dh, byte [esp + eax + 8]
mov eax, ecx
mov dl, cl
and al, 0x64
mov ch, bl
mov ebp, ebx
add ch, 0x33
mov cl, ch
and cl, 0xa
or cl, al
mov eax, ecx
xor al, 8
xor cl, 0xd5
mov ebx, edx
mov ah, dl
mov byte [esp + 4], dl
or bl, 0x46
and cl, 0xd7
and al, 0x28
or al, cl
and bl, 0xd7
xor bl, al
mov al, bl
not al
and al, 0xa1
and bl, 0x5e
or bl, al
mov al, bl
xor al, 0x10
xor bl, 8
and al, 0xd7
and bl, 0x28
or bl, al
mov cl, bl
xor cl, 0x11
or cl, 0xe6
mov dl, cl
not dl
and ah, 0xe1
and ch, 0x1e
or ch, ah
mov ah, ch
xor ah, 0x18
and ah, 0x19
xor ch, 7
or ch, ah
mov byte [esp + 3], ch
mov al, ch
not al
mov byte [esp + 5], al
mov ah, dh
not ah
mov ch, ah
and ch, 1
mov bh, dh
and bh, 0x80
or bh, ch
xor bh, 0x80
mov ch, dh
xor ch, 0x81
and ch, dh
mov al, bh
and al, ch
xor ch, bh
or ch, al
mov al, ch
not al
and al, 0xb6
and ch, 0x49
or ch, al
mov al, ch
xor al, 8
xor ch, 0x37
and al, 0x39
mov bh, ch
and bh, 0xc6
or bh, al
xor bh, 0xdf
and ch, 0xe6
or ch, bh
mov al, ch
not al
and al, 0x12
and ch, 0xed
or ch, al
and ah, 0xfe
and dh, 1
or dh, ah
mov al, dh
xor al, 1
and al, 0x19
xor dh, 0x18
or dh, al
mov al, dh
not al
and al, 0x9b
and dh, 0x64
or dh, al
mov byte [esp + 7], dh
and cl, 0x8b
xor bl, 1
and bl, dl
mov eax, edx
and al, 0x10
or al, cl
mov edx, eax
xor dl, 0x74
mov ah, dl
and ah, 0x8d
mov cl, byte [esp + 3]
mov dh, cl
xor dh, 0x72
and dh, cl
mov cl, ah
and cl, bl
xor bl, ah
mov ah, byte [esp + 5]
mov bh, ah
and bh, 0x72
or bl, cl
mov cl, dh
and cl, bh
xor bh, dh
or bh, cl
mov cl, bl
not cl
and cl, bh
not bh
and bh, bl
or bh, cl
mov cl, ch
xor cl, 0xed
mov byte [esp + 6], cl
xor al, 0x8b
mov cl, ah
or al, ah
and cl, 0xa0
mov ah, cl
mov cl, byte [esp + 3]
and cl, 0x5f
or cl, ah
mov ah, ch
xor ah, 0x12
and dl, 0x5f
xor cl, dl
not al
or al, cl
mov dh, bh
not dh
mov cl, dh
and cl, 9
and bh, 0xf6
or bh, cl
mov dl, al
not dl
or dh, al
and al, 9
and dl, 0xf6
or dl, al
mov bl, byte [esp + 7]
mov cl, bl
xor cl, 0x64
xor dl, bh
mov al, bl
xor al, 0x88
not dh
or dh, dl
and al, 0xc8
and bl, cl
mov bh, bl
and cl, 0x37
or cl, al
xor cl, 0x37
mov bl, cl
mov al, ah
and al, cl
xor cl, ah
and ah, 0x64
xor ch, 0x89
and ch, byte [esp + 6]
mov dl, ah
and dl, ch
xor ch, ah
and bl, 0x64
or ch, dl
mov dl, bl
and dl, bh
xor bl, bh
or bl, dl
mov dl, ch
not dl
and dl, 0xaf
and ch, 0x50
or ch, dl
mov dl, bl
not dl
and dl, 0xaf
and bl, 0x50
or bl, dl
xor bl, ch
or cl, al
mov eax, ecx
not al
and al, 0xa5
and cl, 0x5a
or cl, al
mov eax, ebx
not al
mov dl, al
and dl, 9
and bl, 0xf6
or bl, dl
mov dl, cl
xor dl, 0x52
xor cl, 0xa5
or al, cl
and cl, 9
and dl, 0xf6
or dl, cl
xor dl, bl
not al
or al, dl
mov cl, dh
not cl
and cl, 0x31
mov dl, dh
and dl, 0x48
or dl, cl
xor dl, 0x48
and dh, 0x86
or dh, dl
mov ecx, eax
not cl
and cl, 0x79
and al, 0x86
or al, cl
mov cl, dh
not cl
and cl, al
not al
and al, dh
or al, cl
mov edx, ebp
mov byte [esp + ebp + 8], al
inc edx
mov cl, byte [esp + 4]
dec cl
mov eax, edx
cmp edx, 8
jne 0x40c149
xor ebx, ebx
mov byte [esp + 0x10], bl
push edi
call fcn.0040165b
mov ebp, eax
mov byte [esp + 0x18], bl
mov dword [esp + 0x14], 0x44711462
xor eax, eax
inc eax
mov cl, 0xcb
mov edx, eax
mov ah, byte [esp + eax + 0x14]
mov al, cl
mov byte [esp + 3], cl
and al, 0x1f
mov ebx, edx
mov esi, edx
add bl, 0x33
mov edx, ebx
and dl, 0xe0
or dl, al
mov al, dl
xor al, 0x80
xor dl, 0xe
and dl, 0x6e
and al, 0x91
or al, dl
mov edx, eax
xor dl, 0x6e
and dl, al
mov al, cl
and al, 0xbf
and bl, 0x40
or bl, al
xor bl, 0xd1
or bl, cl
mov al, bl
not al
mov dh, ah
not dh
mov cl, dh
and cl, 9
mov bh, ah
and bh, 0x20
or bh, cl
xor bh, 0x20
mov cl, dh
and cl, 0xc2
mov ch, ah
and ch, 0x14
or ch, cl
or bh, 0xc2
xor bh, ch
mov cl, bh
not cl
and cl, 0xd6
and bh, 0x29
or bh, cl
mov cl, bh
not cl
and cl, 0x6e
xor bh, 0x91
or bh, cl
mov cl, bh
not cl
and cl, 0x4f
and bh, 0xb0
or bh, cl
mov cl, dh
and cl, 0x54
and ah, 0xab
or ah, cl
xor ah, 0xc5
xor dh, ah
and dh, ah
mov ah, dl
mov ecx, edx
xor cl, 0x63
and cl, dl
mov ch, dl
not ch
mov dl, ch
and dl, 0x8c
and ah, 0x73
or dl, ah
mov byte [esp + 4], dl
mov dl, bl
and dl, 0xac
xor bl, 0x9c
and bl, al
and al, 0x53
or al, dl
or ah, 0x9c
mov dl, ah
and dl, 0xe0
and ch, 3
or ch, dl
mov dl, cl
not dl
or ah, dl
and dl, 0xe0
and cl, 0x1f
or cl, dl
xor cl, ch
mov ch, al
xor ch, 0x53
xor al, 0xcf
and al, ch
not ah
or ah, cl
mov cl, al
and cl, bl
xor bl, al
or bl, cl
mov al, ah
not al
and al, 0xdc
and ah, 0x23
or ah, al
mov al, bl
not al
and al, 0xdc
and bl, 0x23
or bl, al
mov cl, byte [esp + 4]
xor cl, 0x73
xor bl, ah
mov eax, ecx
and al, ch
xor ch, cl
or ch, al
mov dl, bl
not dl
mov eax, edx
and al, 0x28
and bl, 0xd7
or bl, al
mov al, ch
not al
or dl, ch
and ch, 0x28
and al, 0xd7
or al, ch
mov cl, bh
xor cl, 0xb0
xor al, bl
not dl
or dl, al
mov al, dh
not al
mov ah, cl
xor ah, al
and ah, cl
xor bh, 4
and bh, 0x84
and cl, 0x7b
or cl, bh
and al, 0x84
and dh, 0x7b
or dh, al
xor dh, cl
mov al, ah
and al, dh
xor dh, ah
or dh, al
mov eax, edx
not al
mov ecx, edx
or cl, 0x49
mov ah, dh
not ah
and ah, 0x54
mov ch, dh
and ch, 0xab
or ch, ah
mov ah, ch
xor ah, 0xab
xor ch, 0xf4
and ch, ah
mov ah, al
and cl, 0x69
and al, 0x80
or al, cl
or ah, 0x20
and ah, 0x69
and dl, 0x16
or dl, ah
and dh, 0x5f
xor dl, al
mov al, ch
and al, dh
xor dh, ch
or dh, al
mov eax, edx
not al
and al, dh
not dh
and dh, dl
or dh, al
mov byte [esp + esi + 0x14], dh
inc esi
mov cl, byte [esp + 3]
dec cl
mov eax, esi
cmp esi, 4
jne 0x40c3be
xor ebx, ebx
mov byte [esp + 0x18], bl
lea eax, [esp + 0x14]
push eax
lea esi, [esp + 0x24]
push esi
call ebp
mov dword [esp + 0xa], 0x59544441
mov word [esp + 0xe], 0x7b4d
mov byte [esp + 0x10], bl
mov word [esp + 8], 0x476c
xor eax, eax
inc eax
mov cl, 0xcb
mov edx, eax
mov al, byte [esp + eax + 8]
mov byte [esp + 4], al
mov eax, ecx
mov ebx, ecx
mov byte [esp + 7], cl
and cl, 0x33
mov eax, edx
mov ebp, edx
add al, 0x33
mov dh, al
and dh, 8
or dh, cl
mov cl, dh
xor cl, 8
xor dh, 0xf7
mov dl, al
xor dl, 0x3b
and dl, al
mov ah, dl
not ah
mov ch, dh
and ch, 0x45
and cl, 0x3a
or cl, ch
or dh, ah
and ah, 0x45
and dl, 0xba
or dl, ah
xor dl, cl
not dh
or dh, dl
mov cl, dh
not cl
and cl, 0xc4
and dh, 0x3b
or dh, cl
mov cl, dh
not cl
and cl, 0x47
and dh, 0xb8
or dh, cl
mov cl, dh
xor cl, 0xa0
and cl, 0xa2
xor dh, 0x45
and dh, 0x5d
or dh, cl
not dh
mov bh, dh
or bh, 0xa2
mov cl, bh
not cl
mov byte [esp + 3], cl
mov ecx, ebx
and cl, 0xfc
and al, 3
or al, cl
mov ch, al
xor ch, 3
xor al, 0xdc
and al, 0xdf
mov ah, ch
and ah, 0x20
or ah, al
xor ah, 0x82
and ch, 0x5d
or ch, ah
mov al, ch
not al
mov byte [esp + 5], al
mov cl, byte [esp + 4]
mov dl, cl
not dl
mov eax, edx
and al, 0x40
mov bl, cl
and bl, 0xb0
or bl, al
xor bl, 0x40
mov eax, ecx
or al, 0xf0
mov ah, dl
and ah, 0xc
or ah, bl
and al, 0xf3
xor al, ah
mov bl, al
not bl
mov ah, bl
and ah, 3
and al, 0x90
or al, ah
and bl, 0x6c
or bl, al
mov eax, ebx
xor al, 0x82
and al, 0xa2
xor bl, 0x31
or bl, al
and dl, 0x5d
mov eax, ecx
xor al, 0xa2
or al, dl
mov byte [esp + 4], al
mov al, bh
xor al, 0xaa
and al, bh
or dh, 0xf7
mov dl, al
not dl
mov ah, dl
or dl, dh
not dh
and ah, 0xe5
and al, 0x18
or al, ah
mov ah, ch
xor ah, 0xaa
and ah, ch
or dh, 0xe5
xor dh, al
mov al, byte [esp + 5]
and al, 0xaa
not dl
or dl, dh
mov dh, ah
and dh, al
xor al, ah
mov cl, bl
not cl
mov byte [esp + 6], cl
or al, dh
mov cl, dl
not cl
and cl, al
not al
and al, dl
mov ah, byte [esp + 4]
mov dh, ah
not dh
or al, cl
mov dl, byte [esp + 3]
mov cl, dl
and cl, 0x48
and bh, 0xb7
or bh, cl
mov cl, byte [esp + 5]
or dl, cl
and cl, 0x48
and ch, 0xb7
or ch, cl
xor ch, bh
not dl
or dl, ch
not dl
mov ecx, eax
and cl, dl
xor dl, al
or dl, cl
mov byte [esp + 3], dl
mov ecx, ebx
and cl, 0x7f
mov al, byte [esp + 6]
and al, 0x80
or al, cl
mov ecx, eax
xor cl, 0x80
mov ch, cl
mov byte [esp + 5], cl
mov cl, ah
and cl, 0xc7
mov bh, dh
and bh, 0x38
or bh, cl
mov ah, bh
xor ah, 0x38
mov dl, al
xor dl, 0x83
and dl, ch
mov ch, ah
and ch, 0xfc
and dh, 3
or dh, ch
mov ch, dl
not ch
mov cl, ch
and cl, 0xa1
and dl, 0x5e
or dl, cl
or bl, 0xfc
or ch, bl
and bl, 0xa1
mov cl, byte [esp + 6]
and cl, 2
or cl, bl
xor cl, dl
not ch
or ch, cl
mov cl, ch
not cl
and cl, dh
not dh
and dh, ch
or dh, cl
xor al, 0x7f
mov ecx, eax
and cl, 0x69
mov dl, byte [esp + 5]
and dl, 0x96
or dl, cl
xor bh, 0xc7
or al, bh
and bh, 0x69
and ah, 0x96
or ah, bh
xor ah, dl
not al
or al, ah
mov dl, al
not dl
mov ecx, edx
and cl, 0x57
and al, 0xa8
or al, cl
mov cl, dh
not cl
mov ah, cl
and ah, 0x77
and dh, 0x88
or dh, ah
xor al, 0x57
or cl, al
and al, 0x77
and dl, 0x88
or dl, al
xor dl, dh
not cl
or cl, dl
mov dl, byte [esp + 3]
mov eax, edx
not al
and al, 0xd1
and dl, 0x2e
or dl, al
mov ah, dl
mov al, cl
not al
and al, 0x8d
mov edx, ecx
and dl, 0x72
or dl, al
mov al, dl
xor al, 0x72
xor dl, 0x5c
and dl, al
and cl, 0x2e
mov al, dl
and al, cl
xor cl, dl
or cl, al
mov al, ah
not al
and al, cl
not cl
and cl, ah
or cl, al
mov edx, ebp
mov byte [esp + ebp + 8], cl
inc edx
mov cl, byte [esp + 7]
dec cl
mov eax, edx
cmp edx, 8
jne 0x40c5bc
xor ebx, ebx
mov byte [esp + 0x10], bl
push edi
call fcn.0040165b
lea ecx, [esp + 0x1c]
push ecx
push esi
call eax
mov dword [esp + 0xa], 0x59544441
mov word [esp + 0xe], 0x7b4d
mov byte [esp + 0x10], bl
mov word [esp + 8], 0x476c
xor eax, eax
inc eax
mov cl, 0xcb
mov edx, eax
mov al, byte [esp + eax + 8]
mov byte [esp + 3], al
mov eax, edx
mov ebp, edx
add al, 0x33
mov edx, ecx
not cl
mov ah, al
xor ah, 0x20
and ah, al
or cl, 0xdf
mov al, ah
not al
mov ch, cl
and ch, 0x33
or cl, al
and al, 0x33
and ah, 0xcc
or ah, al
xor ah, ch
not cl
or cl, ah
not ah
and ah, 0xdf
mov bh, cl
and bh, 0x20
or bh, ah
and cl, 0x93
xor bh, 0x6c
or bh, cl
mov al, bh
not al
mov dh, dl
mov byte [esp + 4], dl
mov ecx, edx
and cl, 0x6c
xor dh, 0x6c
or dh, cl
mov cl, dh
not cl
and cl, 0x1c
and dh, 0xe3
or dh, cl
mov bl, dh
xor bl, 0xe3
xor dh, 0x1c
mov dl, byte [esp + 3]
mov ecx, edx
not cl
mov ah, dl
and ah, 0xd3
mov ch, cl
and ch, 0x2c
or ch, ah
xor ch, 0xbf
or ch, dl
mov ah, cl
and ah, 0x35
and dl, 0xca
or dl, ah
xor dl, 0xa6
or dl, cl
mov byte [esp + 3], dl
mov cl, bh
and cl, 0xe8
xor bh, 0x94
and bh, al
and al, 0x17
or al, cl
mov dl, al
xor dl, 0x17
xor al, 0x83
and al, dl
mov ah, al
not ah
mov cl, ah
and cl, 0xec
and al, 0x13
or al, cl
mov cl, bh
not cl
or ah, cl
and cl, 0xec
and bh, 0x13
or bh, cl
mov cl, byte [esp + 3]
not cl
mov byte [esp + 5], cl
xor bh, al
mov al, bl
or al, 0x80
not ah
or ah, bh
and al, 0xa8
mov cl, dh
and cl, 0x43
or cl, al
mov al, dl
and al, dh
xor dl, dh
or dh, 0x28
and dh, 0xa8
and bl, 0x14
or bl, dh
xor bl, cl
mov cl, ah
not cl
and cl, 0xa6
and ah, 0x59
or ah, cl
mov cl, bl
not cl
and cl, 0xa6
and bl, 0x59
or bl, cl
xor bl, ah
or dl, al
mov eax, edx
not al
mov dh, bl
not dh
mov cl, dh
and cl, 0x89
and bl, 0x76
or bl, cl
or dh, dl
and dl, 0x89
and al, 0x76
or al, dl
xor al, bl
not dh
or dh, al
mov cl, byte [esp + 3]
mov eax, ecx
and al, 5
xor cl, 0x6e
mov dl, byte [esp + 5]
and cl, dl
mov byte [esp + 3], cl
mov cl, dl
and cl, 0xfa
or cl, al
mov ebx, ecx
xor bl, 0xfa
mov ah, ch
xor ah, 0x6e
and ah, ch
mov bh, ch
xor cl, 0x94
and cl, bl
mov al, ah
not al
mov dl, al
and dl, 0xaa
and ah, 0x55
or ah, dl
mov dl, ch
and dl, bl
xor bl, ch
or ch, 0x91
not bh
or al, ch
and ch, 0xaa
and bh, 0x44
or bh, ch
xor bh, ah
not al
or al, bh
mov ah, cl
not ah
mov ch, ah
and ch, 0xfb
and cl, 4
or cl, ch
mov bh, byte [esp + 3]
mov ch, bh
not ch
or ah, ch
and ch, 0xfb
and bh, 4
or bh, ch
xor bh, cl
not ah
or ah, bh
mov ecx, eax
not cl
and cl, ah
not ah
and ah, al
or ah, cl
or bl, dl
not bl
mov al, ah
and al, bl
xor bl, ah
or bl, al
not dh
mov al, dh
xor al, bl
not al
and al, bl
mov ecx, ebx
not cl
and cl, 0xf3
and bl, 0xc
or bl, cl
xor bl, 0xf3
or bl, dh
not bl
mov ecx, eax
and cl, bl
xor bl, al
or bl, cl
mov edx, ebp
mov byte [esp + ebp + 8], bl
inc edx
mov cl, byte [esp + 4]
dec cl
mov eax, edx
cmp edx, 8
jne 0x40c881
xor ebx, ebx
mov byte [esp + 0x10], bl
push edi
call fcn.0040165b
mov word [esp + 0x14], 0x6576
mov byte [esp + 0x16], bl
lea ecx, [esp + 0x14]
push ecx
push esi
call eax
push esi
call fcn.004011d3
add esp, 0x128
pop esi
pop edi
pop ebx
pop ebp
ret