Function at 0x495ea4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xffffffc8
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x1038], ebx
mov dword [ebp - 0x1034], ebx
mov dword [ebp - 0x1030], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x49617c
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov cl, 0xdf
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00495e08
cmp eax, 0xffffffff
jne 0x495f2e
push 0x64
call sub.KERNEL32.DLL_Sleep_1
mov cl, 0x10
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00495e08
cmp eax, 0xffffffff
jne 0x495f2e
push 0xc8
call sub.KERNEL32.DLL_Sleep_1
mov cl, 4
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00495e08
cmp eax, 0xffffffff
je 0x496156
mov word [ebp - 0x12], 0
xor eax, eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x19], 0
lea eax, [ebp - 0x20]
call fcn.004048b4
cmp dword [ebp - 0x18], 0
jle 0x495f52
push 0x32
call sub.KERNEL32.DLL_Sleep_1
inc dword [ebp - 0x18]
lea eax, [ebp - 0x102c]
xor ecx, ecx
mov edx, 0x100c
call fcn.0040324c
mov byte [ebp - 0x102c], 0x51
mov byte [ebp - 0x102b], 0x83
mov byte [ebp - 0x102a], 0xf3
movzx eax, word [ebp - 0x12]
shr eax, 8
mov byte [ebp - 0x1029], al
mov al, byte [ebp - 0x12]
and al, 0xff
mov byte [ebp - 0x1028], al
mov dword [ebp - 0x10], 5
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x102c]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00495bb0
test al, al
je 0x496136
xor ecx, ecx
mov edx, dword [ebp - 0x10]
dec edx
test edx, edx
jl 0x495fcf
inc edx
lea eax, [ebp - 0x102c]
xor cl, byte [eax]
inc eax
dec edx
jne 0x495fc9
cmp cl, 0x50
jne 0x496136
cmp dword [ebp - 0x10], 0
jbe 0x496136
cmp byte [ebp - 0x102c], 0x6e
jne 0x496136
cmp byte [ebp - 0x102a], 0xe3
jne 0x496136
xor eax, eax
mov al, byte [ebp - 0x1028]
mov dx, word [ebp - 0x12]
and dx, 0xff
cmp ax, dx
jne 0x496136
mov al, byte [ebp - 0x102b]
and al, 0x7f
and eax, 0xff
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 3
ja 0x496038
mov dword [ebp - 0x18], 0x80
jmp 0x496136
mov ebx, 5
cmp byte [ebp - 0x19], 0
je 0x496051
cmp byte [ebp + ebx - 0x102c], 0x29
jne 0x496051
mov byte [ebp - 0x19], 0
cmp byte [ebp - 0x19], 0
je 0x496080
lea ecx, [ebp - 0x1030]
xor eax, eax
mov al, byte [ebp + ebx - 0x102c]
mov edx, 2
call fcn.00409198
mov edx, dword [ebp - 0x1030]
lea eax, [ebp - 0x20]
call fcn.00404b7c
jmp 0x4960c8
mov al, byte [ebp + ebx - 0x102c]
test al, al
je 0x496093
sub al, 0xff
je 0x496093
xor eax, eax
jmp 0x496095
mov al, 1
test al, al
jne 0x4960bb
lea eax, [ebp - 0x1034]
mov dl, byte [ebp + ebx - 0x102c]
call fcn.00404a9c
mov edx, dword [ebp - 0x1034]
lea eax, [ebp - 0x20]
call fcn.00404b7c
jmp 0x4960c8
lea eax, [ebp - 0x20]
mov edx, 0x496194
call fcn.00404b7c
cmp byte [ebp - 0x19], 0
jne 0x496118
mov eax, dword [ebp - 0x20]
call fcn.00404b74
mov esi, eax
lea edx, [ebp - 0x1038]
mov eax, dword [ebp - 0x20]
call fcn.00408c08
mov edx, dword [ebp - 0x1038]
mov eax, 0x4961a0
call fcn.00404eb8
test eax, eax
jle 0x496118
mov edx, esi
sub edx, 0xa
cmp eax, edx
jle 0x496118
sub esi, 4
cmp eax, esi
jge 0x496118
cmp byte [ebp + ebx - 0x102c], 0x28
jne 0x496118
mov byte [ebp - 0x19], 1
inc ebx
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, ebx
jb 0x49612a
cmp ebx, 0x24
jle 0x49603d
mov ax, word [ebp - 0x10]
sub ax, 3
add word [ebp - 0x12], ax
cmp dword [ebp - 0x18], 0x3f
jle 0x495f45
cmp dword [ebp - 0x20], 0
setne bl
test bl, bl
je 0x496156
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
call fcn.00409988
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x496183
lea eax, [ebp - 0x1038]
mov edx, 3
call fcn.004048d8
lea eax, [ebp - 0x20]
call fcn.004048b4
ret