Function at 0x537a7c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea esi, [ebp - 0x1c]
xor ecx, ecx
push ebp
push 0x537cf5
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov byte [esi], 0x48
mov byte [esi + 1], 0x45
call fcn.00402c80
mov eax, 0xff
call fcn.00403390
mov byte [esi + 2], al
mov eax, 0xff
call fcn.00403390
mov byte [esi + 3], al
mov eax, 0xff
call fcn.00403390
mov byte [esi + 4], al
mov eax, 0xff
call fcn.00403390
mov byte [esi + 5], al
mov eax, 0xff
call fcn.00403390
mov ebx, eax
mov byte [esi + 6], bl
mov al, byte [esi + 3]
mov byte [0x5603a4], al
mov al, byte [esi + 4]
mov byte [0x5603a5], al
mov al, byte [esi + 5]
mov byte [0x5603a6], al
mov byte [0x5603a7], bl
mov al, byte [esi + 2]
mov byte [0x5603a0], al
mov byte [esi + 7], 0
mov ebx, 7
mov eax, esi
mov dl, byte [eax]
xor byte [esi + 7], dl
inc eax
dec ebx
jne 0x537b19
xor eax, eax
mov dword [0x56039c], eax
mov edx, esi
mov cx, 8
mov eax, dword [0x5602fc]
call fcn.004f6e0c
mov ebx, 0x64
push 0xa
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x55d3b8]
mov eax, dword [eax]
call fcn.0047c944
cmp dword [0x56039c], 0
jg 0x537b5d
dec ebx
jne 0x537b3e
cmp dword [0x56039c], 0
jne 0x537b80
mov eax, dword [ebp - 4]
mov edx, 0x537d18
call fcn.00404c5c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x537d09
mov ebx, 4
mov eax, 0x560384
lea edx, [ebp - 8]
mov cl, byte [eax]
mov byte [edx], cl
inc edx
inc eax
dec ebx
jne 0x537b8d
mov al, byte [ebp - 8]
cmp al, 0x52
jne 0x537bc8
cmp byte [ebp - 7], 0x50
jne 0x537bc8
xor al, byte [ebp - 7]
xor al, byte [ebp - 6]
cmp al, byte [ebp - 5]
jne 0x537bc8
xor eax, eax
mov al, byte [0x5603a0]
and eax, 0x7f
mov al, byte [eax + 0x560304]
xor al, byte [ebp - 6]
mov byte [0x5603a1], al
jmp 0x537be2
mov eax, dword [ebp - 4]
mov edx, 0x537d24
call fcn.00404c5c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x537d09
mov byte [esi], 0x56
mov byte [esi + 1], 0x50
xor eax, eax
mov al, byte [0x5603a0]
inc eax
and eax, 0x7f
mov al, byte [eax + 0x560304]
xor al, byte [0x5603a1]
mov byte [esi + 2], al
mov dl, byte [esi]
xor dl, byte [esi + 1]
xor dl, al
mov byte [esi + 3], dl
xor eax, eax
mov dword [0x56039c], eax
mov edx, esi
mov cx, 4
mov eax, dword [0x5602fc]
call fcn.004f6e0c
mov ebx, 0x64
push 0xa
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x55d3b8]
mov eax, dword [eax]
call fcn.0047c944
cmp dword [0x56039c], 0
jg 0x537c48
dec ebx
jne 0x537c29
cmp dword [0x56039c], 0
jne 0x537c6b
mov eax, dword [ebp - 4]
mov edx, 0x537d18
call fcn.00404c5c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x537d09
mov al, byte [0x560384]
mov byte [ebp - 8], al
mov al, byte [0x560385]
mov byte [ebp - 7], al
cmp byte [ebp - 8], 0x4f
jne 0x537cd4
cmp byte [ebp - 7], 0x4b
jne 0x537cd4
xor eax, eax
mov al, byte [0x5603a1]
mov edx, eax
imul edx, eax
shr edx, 1
add edx, 9
and edx, 0xff
mov byte [0x5603a1], dl
xor eax, eax
mov al, byte [0x5603a0]
mov edx, eax
imul edx, eax
xor eax, eax
mov al, byte [0x5603a1]
add edx, eax
and edx, 0xff
mov byte [0x5603a0], dl
mov eax, dword [ebp - 4]
mov edx, 0x537d30
call fcn.00404c5c
jmp 0x537ceb
mov eax, dword [ebp - 4]
mov edx, 0x537d3c
call fcn.00404c5c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x537d09
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x537d09
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret