Function at 0x40d820
Capabilities:
Encode data using xor

Disassembly:
push 0x64
mov eax, 0x4372ec
call fcn.0041daaa
and dword [ebp - 4], 0
call fcn.004114cf
sub esp, 0x18
mov ebx, eax
mov esi, esp
lea eax, [ebp + 8]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x50], esp
push eax
call fcn.0040419c
mov byte [ebp - 4], 1
cmp byte [0x442033], 0
mov eax, dword [0x44202c]
mov ecx, dword [str.SWYzRM:]
push 0x37
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
pop edi
je 0x40d883
xor ecx, ecx
xor edx, edx
mov eax, ecx
div edi
add dl, 0x36
xor byte [ebp + ecx - 0x58], dl
inc ecx
cmp ecx, 8
jl 0x40d870
sub esp, 0x18
lea eax, [ebp - 0x58]
mov ecx, esp
push eax
call fcn.00404163
mov ecx, esi
mov byte [ebp - 4], 0
call fcn.0040cbad
add esp, 0x30
mov ecx, ebx
call fcn.00410fd8
add esp, 0x18
test al, al
je 0x40db29
push 5
pop edx
lea ecx, [ebp - 0x70]
call fcn.00405cde
mov esi, str.jC_TJg_
mov byte [ebp - 4], 2
lea edi, [ebp - 0x4c]
xor ecx, ecx
push 0x37
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
xor edx, edx
mov eax, ecx
div edi
add dl, 0x36
xor byte [ebp + ecx - 0x4c], dl
inc ecx
cmp ecx, 7
jl 0x40d8d1
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x70]
call fcn.00404734
push eax
lea ecx, [ebp - 0x44]
call fcn.0040412a
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 4
call fcn.004026b1
mov eax, 0x7fffffff
sub eax, dword [ebp - 0x34]
cmp eax, dword [ebp + 0x18]
jb 0x40db3e
cmp dword [ebp - 0x30], 0xf
lea ecx, [ebp - 0x44]
push dword [ebp + 0x18]
cmova ecx, dword [ebp - 0x44]
lea eax, [ebp + 8]
cmp dword [ebp + 0x1c], 0xf
cmova eax, dword [ebp + 8]
push eax
push dword [ebp - 0x34]
push ecx
push ecx
push dword [ebp - 0x49]
lea ecx, [ebp - 0x2c]
call fcn.004048a1
mov byte [ebp - 4], 5
lea eax, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0xf
lea ecx, [ebp - 0x70]
cmova eax, dword [ebp - 0x2c]
push eax
call fcn.00404163
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 6
call fcn.004071c5
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 5
call fcn.004026b1
lea ecx, [ebp - 0x44]
call fcn.00407134
sub esp, 0x18
lea eax, [ebp - 0x2c]
mov ecx, esp
push eax
call fcn.0040419c
mov ecx, ebx
call fcn.004108c0
add esp, 0x18
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x4422d8]
xor ecx, ecx
mov dword [ebp - 0x4c], eax
mov al, byte [0x4422dc]
mov byte [ebp - 0x48], al
xor edx, edx
mov eax, ecx
div edi
add dl, 0x36
xor byte [ebp + ecx - 0x4c], dl
inc ecx
cmp ecx, 5
jl 0x40d9ad
push 0
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040408b
or esi, 0xffffffff
cmp eax, esi
jne 0x40dac7
mov eax, dword [0x4420d4]
xor ecx, ecx
mov dword [ebp - 0x4c], eax
mov al, byte [0x4420d8]
mov byte [ebp - 0x48], al
xor edx, edx
mov eax, ecx
div edi
add dl, 0x36
xor byte [ebp + ecx - 0x4c], dl
inc ecx
cmp ecx, 5
jl 0x40d9eb
push 0
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040408b
cmp eax, esi
jne 0x40dac7
mov eax, dword [0x441f78]
xor ecx, ecx
mov dword [ebp - 0x4c], eax
mov al, byte [0x441f7c]
mov byte [ebp - 0x48], al
xor edx, edx
mov eax, ecx
div edi
add dl, 0x36
xor byte [ebp + ecx - 0x4c], dl
inc ecx
cmp ecx, 5
jl 0x40da26
push 0
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040408b
cmp eax, esi
jne 0x40dac7
mov eax, dword [0x4422e8]
xor ecx, ecx
mov dword [ebp - 0x4c], eax
mov al, byte [0x4422ec]
mov byte [ebp - 0x48], al
xor edx, edx
mov eax, ecx
div edi
add dl, 0x36
xor byte [ebp + ecx - 0x4c], dl
inc ecx
cmp ecx, 5
jl 0x40da5d
push 0
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040408b
cmp eax, esi
jne 0x40dac7
cmp dword [ebp - 0x18], 0xf
lea esi, [ebp - 0x2c]
mov eax, dword [str.YG_W:]
mov dword [ebp - 0x4c], eax
mov al, byte [0x442040]
mov byte [ebp - 0x48], al
jbe 0x40da9e
mov esi, dword [ebp - 0x2c]
xor ecx, ecx
xor edx, edx
mov eax, ecx
div edi
add dl, 0x36
xor byte [ebp + ecx - 0x4c], dl
inc ecx
cmp ecx, 5
jl 0x40daa0
push 1
xor ecx, ecx
lea eax, [ebp - 0x4c]
push ecx
push ecx
push esi
push eax
push ecx
call dword [0x44a7e0]
jmp 0x40db15
cmp dword [ebp - 0x18], 0xf
lea eax, [ebp - 0x2c]
push 1
cmova eax, dword [ebp - 0x2c]
push 0
push 0
push eax
sub esp, 0x18
mov ecx, esp
push 0x44aea0
call fcn.0040419c
mov edx, 0x22b
lea ecx, [ebp - 0x70]
call fcn.00407893
add esp, 0x18
mov byte [ebp - 4], 7
cmp dword [eax + 0x14], 0xf
jbe 0x40db04
mov eax, dword [eax]
push eax
push 0
call dword [0x44a7e0]
lea ecx, [ebp - 0x70]
call fcn.004026b1
lea ecx, [ebp - 0x2c]
call fcn.004026b1
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0
call fcn.004026b1
mov ecx, ebx
call fcn.0040ceb4
lea ecx, [ebp + 8]
call fcn.004026b1
call fcn.0041da59
ret
call fcn.00402267
int3