Function at 0x40369d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x16dc
call fcn.00455490
mov eax, dword [0x499520]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 0x169c], eax
mov eax, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x1694], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
xor ebx, ebx
inc ebx
mov dword [ebp - 0x1698], eax
test byte [0x4a454c], bl
jne 0x403704
or dword [0x4a454c], ebx
mov dword [0x49ef9c], 0xe7eceebf
mov dword [0x49efa0], 0xbce6eff6
mov dword [0x49efa4], 0x83bdbcbc
xor edi, edi
xor eax, eax
mov cl, byte [eax + 0x49ef9c]
xor cl, 0x83
mov byte [eax + 0x49f5cc], cl
inc eax
cmp eax, 0xc
jb 0x403708
mov dword [ebp - 0x16a4], 0x49f5cc
test byte [0x4a4548], bl
jne 0x403753
or dword [0x4a4548], ebx
mov dword [0x49efa8], 0xeefaf0bf
mov dword [0x49efac], 0xbcefece1
mov dword [0x49efb0], 0x83bdbcbc
xor eax, eax
mov cl, byte [eax + 0x49efa8]
xor cl, 0x83
mov byte [eax + 0x49f5d8], cl
inc eax
cmp eax, 0xc
jb 0x403755
mov esi, 0x688
push esi
lea eax, [ebp - 0x1690]
push edi
push eax
mov dword [ebp - 0x16b4], 0x49f5d8
mov dword [ebp - 0x16b0], edi
mov dword [ebp - 0x16ac], edi
call fcn.0044fbd0
mov eax, dword [ebp - 0x169c]
cdq
add esp, 0xc
mov dword [ebp - 0x1690], esi
mov esi, eax
lea eax, [ebp - 0x1690]
push eax
push edx
push esi
push dword [ebp - 0x1698]
mov dword [ebp - 0x16bc], edx
call dword [sym.imp.dbghelp.dll_SymGetModuleInfo64]
test eax, eax
je 0x4037d0
lea eax, [ebp - 0x166c]
mov dword [ebp - 0x16a4], eax
push 0xffa
lea eax, [ebp - 0x1008]
push edi
push eax
call fcn.0044fbd0
add esp, 0xc
lea eax, [ebp - 0x1008]
push eax
lea eax, [ebp - 0x16b0]
push eax
push dword [ebp - 0x16bc]
mov dword [ebp - 0x1008], 0x58
push esi
push dword [ebp - 0x1698]
mov dword [ebp - 0xfb8], 0x7d0
call dword [sym.imp.dbghelp.dll_SymFromAddr]
lea ecx, [ebp - 0xfb4]
test eax, eax
jne 0x40382a
mov ecx, dword [ebp - 0x16b4]
test byte [0x4a4544], bl
jne 0x40385f
or dword [0x4a4544], ebx
mov dword [0x49efb4], 0xa6a3f3a6
mov dword [0x49efb8], 0xf0a6a2f0
mov dword [0x49efbc], 0xa6fbb3a8
mov word [0x49efc0], 0x83fb
xor eax, eax
mov dl, byte [eax + 0x49efb4]
xor dl, 0x83
mov byte [eax + 0x49f5e4], dl
inc eax
cmp eax, 0xe
jb 0x403861
push dword [ebp - 0x16ac]
push dword [ebp - 0x16b0]
push ecx
push dword [ebp - 0x16a4]
push dword [ebp - 0x169c]
push 0x49f5e4
push dword [ebp - 0x1694]
call fcn.0044ce5d
add esp, 0x1c
push 6
pop ecx
mov dword [ebp - 0x16a0], edi
xor eax, eax
lea edi, [ebp - 0x16d8]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x16d8]
push eax
lea eax, [ebp - 0x16a0]
push eax
push dword [ebp - 0x16bc]
mov dword [ebp - 0x16d8], 0x18
push esi
push dword [ebp - 0x1698]
call dword [sym.imp.dbghelp.dll_SymGetLineFromAddr64]
test eax, eax
je 0x40390a
push dword [ebp - 0x16a0]
push dword [ebp - 0x16d0]
push dword [ebp - 0x16cc]
call fcn.00403962
push eax
push dword [ebp - 0x1694]
call fcn.0044ce5d
add esp, 0x14
test byte [0x4a453c], bl
jne 0x403928
or dword [0x4a453c], ebx
mov word [0x49efd4], 0x898e
mov byte [0x49efd6], 0x83
xor eax, eax
mov cl, byte [eax + 0x49efd4]
xor cl, 0x83
mov byte [eax + 0x49f604], cl
inc eax
cmp eax, 3
jb 0x40392a
push dword [ebp - 0x1694]
push 0x49f604
call fcn.0044cad1
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0044c4ce
leave
ret 8