Function at 0x4087cd
Capabilities:
Encode data using xor

Disassembly:
push 0x1dc
mov eax, 0x436a3c
call fcn.0041daaa
mov dword [ebp - 0x1ac], edx
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x1a4], ecx
mov dword [ebp - 0x1d0], ecx
xor ebx, ebx
mov dword [ebp - 0x1a0], 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 - 0x58]
push 0x44180c
mov dword [ebp - 0x1a0], 1
call fcn.004043cb
pop ecx
mov dword [ebp - 4], 1
lea edi, [ebp - 0x20]
mov esi, str.s_Y_
mov ecx, ebx
push 0x33
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, 0x35
xor byte [ebp + ecx - 0x20], dl
inc ecx
cmp ecx, 0xf
jl 0x408840
mov esi, str.SEVV_b
lea edi, [ebp - 0x38]
push 0x33
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, 0x35
xor byte [ebp + ecx - 0x38], dl
inc ecx
cmp ecx, 0xd
jl 0x408864
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea ecx, [ebp - 0x20]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp byte [0x4418e9], 0
lea edi, [ebp - 0x1cc]
mov esi, str.s_Yw_CHWS_
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 0x4088c6
push 0x33
mov ecx, ebx
pop esi
xor edx, edx
mov eax, ecx
div esi
add dl, 0x35
xor byte [ebp + ecx - 0x1cc], dl
inc ecx
cmp ecx, 0xe
jl 0x4088b0
mov esi, str.SEVV_b
lea edi, [ebp - 0x1bc]
push 0x33
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, 0x35
xor byte [ebp + ebx - 0x1bc], dl
inc ebx
cmp ebx, 0xd
jl 0x4088d8
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
call fcn.004090d1
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp - 0x1a8]
test eax, eax
je 0x408a0f
test ebx, ebx
je 0x408a0f
cmp dword [ebp - 0x44], 0xf
lea edx, [ebp - 0x198]
lea ecx, [ebp - 0x58]
cmova ecx, dword [ebp - 0x58]
push edx
push ecx
call eax
mov edi, dword [ebp - 0x19c]
mov esi, eax
cmp esi, 0xffffffff
je 0x408a15
lea eax, [ebp - 0x16c]
push eax
lea ecx, [ebp - 0x28]
call fcn.00404163
mov edx, dword [ebp - 0x1ac]
lea ecx, [ebp - 0x1e8]
push 0x441158
mov byte [ebp - 4], 2
call fcn.004043cb
pop ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
push ecx
mov ecx, eax
call fcn.004042eb
push eax
lea ecx, [ebp - 0x40]
call fcn.0040412a
or dword [ebp - 0x1a0], 2
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 4], 5
call fcn.004026b1
test byte [ebp - 0x198], 0x10
je 0x4089d5
mov edx, 0x441808
lea ecx, [ebp - 0x28]
call fcn.00409141
test al, al
jne 0x4089e0
mov edx, 0x441810
lea ecx, [ebp - 0x28]
call fcn.00409141
test al, al
jne 0x4089e0
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.00408d8d
lea ecx, [ebp - 0x40]
call fcn.004026b1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.004026b1
lea eax, [ebp - 0x198]
push eax
push esi
call ebx
test eax, eax
jne 0x408952
push esi
call dword [ebp - 0x1a4]
jmp 0x408a15
mov edi, dword [ebp - 0x19c]
lea ecx, [ebp - 0x58]
call fcn.004026b1
mov eax, edi
call fcn.0041da59
ret