Function at 0x40d0f0
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
sub esp, 0x14
call fcn.0043dd70
test al, al
je 0x40d38d
call dword [0x4c6ad8]
mov esi, eax
call fcn.00435bc0
test al, al
je 0x40d388
call dword [0x4c6b00]
call dword [0x4c6afc]
mov dword [esp + 8], 0xd2eda0a5
mov dword [esp + 0xc], 0x8e88f28e
mov byte [esp + 0x10], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40d1aa
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx eax, byte [esp + eax + 8]
mov edi, ecx
or edi, 0xda1d29ee
mov edx, ecx
not edx
or edx, 0x25e2d611
and edx, edi
not edx
mov edi, ecx
xor edi, 0x5a1d29ee
or ecx, 0x25e2d611
and ecx, edi
add ecx, ecx
mov edi, ecx
and edi, edx
xor ecx, edx
lea ecx, [ecx + edi*2]
xor ecx, eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 4]
add al, 0xab
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40d150
mov dword [esp + 8], 0x56b9f333
mov dword [esp + 0xc], 0x4cb11239
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40d209
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
xor edx, 0x40181891
and eax, 0xc0181891
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x2b
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40d1d0
test esi, esi
je 0x40d303
mov dword [esp + 8], 0xc3c2c1e1
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0x40d28e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
xor edx, 0x599c3bd0
and eax, 0xd99c3bd0
lea eax, [edx + eax*2]
mov edx, eax
add eax, ecx
not ecx
or edx, ecx
sub ecx, edx
lea eax, [eax + ecx*2]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, eax
xor ecx, 0x10
and eax, 0x6f
add eax, eax
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0x40d240
mov dword [esp + 8], 0x9701a771
mov dword [esp + 0xc], 0xf9ccf0ba
mov byte [esp + 0x10], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x40d303
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
xor edx, 0x4dac9f5f
mov esi, eax
xor esi, 0x325360a0
or eax, 0x4dac9f5f
and eax, esi
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x25
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x40d2c0
mov dword [esp + 8], 0xf2fdfcff
mov dword [esp + 0xc], 0xf6f1f0f3
mov word [esp + 0x10], 0
mov byte [esp + 0x12], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x40d375
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + ecx]
add edx, 0x8c1d4ad5
add eax, 0x8c1d4ad5
and eax, ecx
mov ecx, edx
not ecx
and ecx, eax
add ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xd7
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x40d330
call fcn.0040e400
test al, al
je 0x40d388
call fcn.00410e40
call fcn.0040fc90
call fcn.0043ecb0
push 0
call dword [0x4c6af4]
int3