Function at 0x4084c3
Capabilities:
Encode data using xor

Disassembly:
push 0x1dc
mov eax, 0x435799
call fcn.0041c69a
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 0x43f810
mov dword [ebp - 0x1a0], 1
call fcn.00404325
pop ecx
mov dword [ebp - 4], 1
lea edi, [ebp - 0x20]
mov esi, str.rXSPHHHWS_
mov ecx, ebx
push 0x31
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 - 0x20], dl
inc ecx
cmp ecx, 0xf
jl 0x408536
mov esi, str._PDY_U_t_t
lea edi, [ebp - 0x38]
push 0x31
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 - 0x38], dl
inc ecx
cmp ecx, 0xd
jl 0x40855a
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 [0x43f915], 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 0x4085bc
push 0x31
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 0x4085a6
mov esi, str._PDY_U_t_t
lea edi, [ebp - 0x1bc]
push 0x31
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 0x4085ce
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.00408d63
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp - 0x1a8]
test eax, eax
je 0x408705
test ebx, ebx
je 0x408705
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 0x40870b
lea eax, [ebp - 0x16c]
push eax
lea ecx, [ebp - 0x28]
call fcn.004040bd
mov edx, dword [ebp - 0x1ac]
lea ecx, [ebp - 0x1e8]
push 0x43f144
mov byte [ebp - 4], 2
call fcn.00404325
pop ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
push ecx
mov ecx, eax
call fcn.00404245
push eax
lea ecx, [ebp - 0x40]
call fcn.00404084
or dword [ebp - 0x1a0], 2
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 4], 5
call fcn.00402636
test byte [ebp - 0x198], 0x10
je 0x4086cb
mov edx, 0x43f80c
lea ecx, [ebp - 0x28]
call fcn.00408dd3
test al, al
jne 0x4086d6
mov edx, 0x43f814
lea ecx, [ebp - 0x28]
call fcn.00408dd3
test al, al
jne 0x4086d6
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.00408a69
lea ecx, [ebp - 0x40]
call fcn.00402636
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.00402636
lea eax, [ebp - 0x198]
push eax
push esi
call ebx
test eax, eax
jne 0x408648
push esi
call dword [ebp - 0x1a4]
jmp 0x40870b
mov edi, dword [ebp - 0x19c]
lea ecx, [ebp - 0x58]
call fcn.00402636
mov eax, edi
call fcn.0041c649
ret