Function at 0x40853a
Capabilities:
Encode data using xor

Disassembly:
push 0x1dc
mov eax, 0x42ed17
call fcn.0041a90a
mov dword [ebp - 0x1ac], edx
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x1a8], ecx
mov dword [ebp - 0x1d0], ecx
xor ebx, ebx
mov dword [ebp - 0x1a4], ebx
mov edi, ecx
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ecx], ebx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x5c]
push 0x439678
mov dword [ebp - 0x1a4], 1
call fcn.0040452b
pop ecx
mov dword [ebp - 4], 1
lea edi, [ebp - 0x24]
mov esi, 0x4397cc
mov ecx, ebx
push 0x35
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x24], dl
inc ecx
cmp ecx, 0xf
jl 0x4085ad
mov esi, str._PDY_U_t_t
lea edi, [ebp - 0x3c]
push 0x35
mov ecx, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x3c], dl
inc ecx
cmp ecx, 0xd
jl 0x4085d1
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea ecx, [ebp - 0x24]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp byte [0x439779], 0
lea edi, [ebp - 0x1cc]
mov esi, str.rXSvBOzTRZ
mov dword [ebp - 0x1a8], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
je 0x408633
push 0x35
mov ecx, ebx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x34
xor byte [ebp + ecx - 0x1cc], dl
inc ecx
cmp ecx, 0xe
jl 0x40861d
mov esi, str._PDY_U_t_t
lea edi, [ebp - 0x1bc]
push 0x35
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edx, edx
mov eax, ebx
div ecx
add dl, 0x34
xor byte [ebp + ebx - 0x1bc], dl
inc ebx
cmp ebx, 0xd
jl 0x408645
lea eax, [ebp - 0x1bc]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea ecx, [ebp - 0x1cc]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
mov eax, dword [ebp - 0x1a8]
test eax, eax
je 0x408771
test ebx, ebx
je 0x408771
cmp dword [ebp - 0x48], 0xf
lea edx, [ebp - 0x19c]
lea ecx, [ebp - 0x5c]
cmova ecx, dword [ebp - 0x5c]
push edx
push ecx
call eax
mov edi, dword [ebp - 0x1a0]
mov esi, eax
cmp esi, 0xffffffff
je 0x408777
lea eax, [ebp - 0x170]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004042c3
mov edx, dword [ebp - 0x1ac]
lea ecx, [ebp - 0x1e8]
push 0x438f4c
mov byte [ebp - 4], 2
call fcn.0040452b
pop ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 3
push ecx
mov ecx, eax
call fcn.0040444b
push eax
lea ecx, [ebp - 0x44]
call fcn.0040428a
or dword [ebp - 0x1a4], 2
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 4], 5
call fcn.00402616
test byte [ebp - 0x19c], 0x10
je 0x408737
mov edx, 0x439674
lea ecx, [ebp - 0x2c]
call fcn.00408dd9
test al, al
jne 0x408742
mov edx, 0x43967c
lea ecx, [ebp - 0x2c]
call fcn.00408dd9
test al, al
jne 0x408742
lea eax, [ebp - 0x44]
mov ecx, edi
push eax
call fcn.00408ad5
lea ecx, [ebp - 0x44]
call fcn.00402616
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.00402616
lea eax, [ebp - 0x19c]
push eax
push esi
call ebx
test eax, eax
jne 0x4086b4
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x408777
mov edi, dword [ebp - 0x1a0]
lea ecx, [ebp - 0x5c]
call fcn.00402616
mov eax, edi
call fcn.0041a8b9
ret