Function at 0x40d380
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x5b8
mov esi, esp
push eax
sub esp, 0xc
mov ebx, esp
push eax
mov dword [esi + 0xa0], esp
sub esp, 0x68
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x24], eax
mov esp, eax
push eax
sub esp, 0xc
mov dword [esi + 0xa4], esp
sub esp, 0x800
mov dword [esi + 0x1c], esp
sub esp, 0x80
mov edi, esp
sub esp, 0x44
mov dword [esi + 0x98], esp
sub esp, 0x10
mov dword [esi + 0x9c], esp
mov ecx, dword [str.7567fff5468f5b682780aea4c2eb6266]
mov dword [esi + 0x120], 0x74b9f50
mov dword [esi + 0x124], 0
mov dword [esi + 0x3f8], 0
mov eax, dword [esi + 0x3f8]
cmp eax, 7
ja 0x40d457
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x3f8]
mov edx, dword [esi + 0x3f8]
movzx edx, byte [esi + edx + 0x120]
add eax, 0xffc7c3b5
xor eax, edx
mov dword [esi + 0x1f0], eax
mov eax, dword [esi + 0x1f0]
add al, 0x41
mov edx, dword [esi + 0x3f8]
mov byte [esi + edx + 0x120], al
inc dword [esi + 0x3f8]
mov eax, dword [esi + 0x3f8]
cmp eax, 8
jb 0x40d410
mov dword [esi + 0x20], ebx
mov dword [esi + 0xa8], edi
mov edx, dword [str.hRjzG3__DEXTER]
mov dword [esi + 0x1f0], 0xa322625
mov dword [esi + 0x1f4], 0x22393c2a
mov dword [esi + 0x1f8], 0x2231382a
mov dword [esi + 0x1fc], 0x32212235
mov dword [esi + 0x200], 0x21703033
mov dword [esi + 0x204], 0x5f271b0d
mov dword [esi + 0x208], 0x13485d52
mov dword [esi + 0x20c], 0x632f0519
mov byte [esi + 0x210], 0
mov dword [esi + 0xb8], 0
mov eax, dword [esi + 0xb8]
cmp eax, 0x20
ja 0x40d527
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xb8]
mov edi, dword [esi + 0xb8]
movzx edi, byte [esi + edi + 0x1f0]
add eax, 0x4443fdcc
xor eax, edi
mov dword [esi + 0x3f8], eax
mov eax, dword [esi + 0x3f8]
add al, 0x78
mov edi, dword [esi + 0xb8]
mov byte [esi + edi + 0x1f0], al
inc dword [esi + 0xb8]
mov eax, dword [esi + 0xb8]
cmp eax, 0x21
jb 0x40d4e0
movzx ebx, byte [esi + 0x1f0]
lea eax, [esi + 0x3f8]
test bl, bl
je 0x40d54b
lea edi, [esi + 0x1f1]
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x40d540
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40d56b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40d560
mov byte [eax], 0
movzx edx, byte [esi + 0x120]
test dl, dl
je 0x40d58b
lea edi, [esi + 0x121]
nop
mov byte [eax], dl
inc eax
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x40d580
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40d5ab
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40d5a0
mov byte [eax], 0
lea ecx, [esi + 0x3f8]
sub eax, ecx
mov dword [esi + 0x1f0], 0xc9c0e72
mov dword [esi + 0x1f4], 0x8850a99
mov dword [esi + 0x1f8], 0x497069c
mov dword [esi + 0x1fc], 0x52028f
mov dword [esi + 0x200], 0x3cba3e53
mov dword [esi + 0x204], 0x38a23aab
mov dword [esi + 0x208], 0x34153671
mov dword [esi + 0x20c], 0x30a132ac
mov dword [esi + 0x210], 0x2cb92ebf
mov dword [esi + 0x214], 0x28b42abc
mov dword [esi + 0x218], 0x24a926b8
mov dword [esi + 0x21c], 0x20b022b4
mov dword [esi + 0x220], 0x5c0c5ecd
mov dword [esi + 0x224], 0x580a5ad3
mov dword [esi + 0x228], 0x54dc56de
mov dword [esi + 0x22c], 0x500252da
mov dword [esi + 0x230], 0x4cdc4ed5
mov dword [esi + 0x234], 0x48da4ac5
mov dword [esi + 0x238], 0x44ce4614
mov dword [esi + 0x23c], 0x40d542cd
mov dword [esi + 0x240], 0x7cef7ee4
mov dword [esi + 0x244], 0x78e87ae6
mov dword [esi + 0x248], 0x74ee76eb
mov dword [esi + 0x24c], 0x704272ef
mov dword [esi + 0x250], 0x6c6d6e59
mov word [esi + 0x254], 0
mov dword [esi + 0xb8], 0
mov edx, dword [esi + 0xb8]
cmp edx, 0x65
ja 0x40d722
nop
nop
mov edx, dword [esi + 0xb8]
mov edi, dword [esi + 0xb8]
movzx edi, byte [esi + edi + 0x1f0]
lea ebx, [edx + 0x10]
add edx, edi
and ebx, edi
add ebx, ebx
sub edx, ebx
add edx, 0xfa3d0a10
mov dword [esi + 0x120], edx
mov edx, dword [esi + 0x120]
add dl, 0xe1
mov edi, dword [esi + 0xb8]
mov byte [esi + edi + 0x1f0], dl
inc dword [esi + 0xb8]
mov edx, dword [esi + 0xb8]
cmp edx, 0x66
jb 0x40d6d0
mov dword [esi + 0x120], 0x66c06010
mov dword [esi + 0x124], 0x7adc64d7
mov dword [esi + 0x128], 0x787b
mov byte [esi + 0x12c], 0
jmp dword [0x445304]