Function at 0x486930
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x4fc040]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x4c], ecx
push ebx
mov ebx, edx
push esi
push edi
movzx eax, byte [ebx + 7]
cdq
mov esi, eax
mov ecx, edx
shld ecx, esi, 8
movzx eax, byte [ebx + 6]
cdq
or ecx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ebx + 5]
shld ecx, esi, 8
cdq
or ecx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ebx + 4]
shld ecx, esi, 8
cdq
or ecx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ebx + 3]
shld ecx, esi, 8
cdq
or ecx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ebx + 2]
shld ecx, esi, 8
cdq
or ecx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ebx + 1]
shld ecx, esi, 8
cdq
or ecx, edx
shl esi, 8
or esi, eax
movzx eax, byte [ebx]
shld ecx, esi, 8
cdq
or ecx, edx
shl esi, 8
or esi, eax
mov dword [ebp - 0x2c], ecx
movzx eax, byte [ebx + 0xf]
cdq
mov edi, eax
mov dword [ebp - 0x30], esi
movzx eax, byte [ebx + 0xe]
mov ecx, edx
shld ecx, edi, 8
cdq
shl edi, 8
or ecx, edx
or edi, eax
movzx eax, byte [ebx + 0xd]
shld ecx, edi, 8
cdq
shl edi, 8
or ecx, edx
or edi, eax
movzx eax, byte [ebx + 0xc]
shld ecx, edi, 8
cdq
shl edi, 8
or ecx, edx
or edi, eax
movzx eax, byte [ebx + 0xb]
shld ecx, edi, 8
cdq
shl edi, 8
or ecx, edx
or edi, eax
movzx eax, byte [ebx + 0xa]
shld ecx, edi, 8
cdq
or ecx, edx
shl edi, 8
or edi, eax
movzx eax, byte [ebx + 9]
shld ecx, edi, 8
cdq
or ecx, edx
shl edi, 8
or edi, eax
movzx eax, byte [ebx + 8]
cdq
shld ecx, edi, 8
or ecx, edx
shl edi, 8
mov edx, esi
mov dword [ebp - 0x3c], ecx
mov esi, dword [ebp - 0x2c]
or edi, eax
shrd edx, esi, 7
xor edx, dword [ebp - 0x30]
shr esi, 7
and edx, 0xaa00aa
xor esi, dword [ebp - 0x2c]
mov eax, edx
and esi, 0xaa00aa
mov ecx, esi
shld ecx, eax, 7
xor ecx, esi
shl eax, 7
xor dword [ebp - 0x2c], ecx
xor eax, edx
xor dword [ebp - 0x30], eax
mov edx, edi
mov esi, dword [ebp - 0x3c]
shrd edx, esi, 7
shr esi, 7
xor edx, edi
xor esi, dword [ebp - 0x3c]
and edx, 0xaa00aa
and esi, 0xaa00aa
mov eax, edx
mov ecx, esi
shld ecx, eax, 7
xor ecx, esi
shl eax, 7
mov esi, dword [ebp - 0x2c]
xor eax, edx
mov edx, dword [ebp - 0x30]
xor edi, eax
xor dword [ebp - 0x3c], ecx
shrd edx, esi, 0xe
xor edx, dword [ebp - 0x30]
shr esi, 0xe
and edx, 0xcccc
xor esi, dword [ebp - 0x2c]
mov eax, edx
and esi, 0xcccc
mov ecx, esi
shld ecx, eax, 0xe
xor ecx, esi
shl eax, 0xe
mov esi, dword [ebp - 0x3c]
xor eax, edx
xor dword [ebp - 0x30], eax
mov edx, edi
xor dword [ebp - 0x2c], ecx
shrd edx, esi, 0xe
shr esi, 0xe
xor edx, edi
xor esi, dword [ebp - 0x3c]
and edx, 0xcccc
and esi, 0xcccc
mov eax, edx
mov ecx, esi
shld ecx, eax, 0xe
shl eax, 0xe
xor eax, edx
xor ecx, esi
mov edx, dword [ebp - 0x30]
xor edi, eax
mov eax, dword [ebp - 0x2c]
add ebx, 0x10
shrd edx, eax, 0x1c
mov esi, dword [ebp - 0x3c]
xor edx, dword [ebp - 0x30]
xor esi, ecx
xor ecx, ecx
mov dword [ebp - 0x40], ebx
and edx, 0xf0f0f0f0
mov eax, edx
shld ecx, eax, 0x1c
shl eax, 0x1c
xor ecx, 0
xor dword [ebp - 0x2c], ecx
xor eax, edx
xor dword [ebp - 0x30], eax
xor ecx, ecx
mov eax, esi
mov edx, edi
shrd edx, eax, 0x1c
xor edx, edi
and edx, 0xf0f0f0f0
mov eax, edx
shld ecx, eax, 0x1c
xor ecx, 0
shl eax, 0x1c
xor esi, ecx
xor eax, edx
mov edx, dword [ebp - 0x30]
xor edi, eax
mov dword [ebp - 0x3c], esi
mov esi, dword [ebp - 0x2c]
shrd edx, esi, 8
shr esi, 8
xor edx, edi
xor esi, dword [ebp - 0x3c]
and edx, 0xff00ff
and esi, 0xff00ff
mov eax, edx
xor dword [ebp - 0x3c], esi
mov ecx, esi
shld ecx, eax, 8
xor edi, edx
xor dword [ebp - 0x2c], ecx
shl eax, 8
xor dword [ebp - 0x30], eax
movzx eax, byte [ebx + 7]
cdq
mov ecx, eax
mov dword [ebp - 0x48], edi
movzx eax, byte [ebx + 6]
mov esi, edx
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebx + 5]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebx + 4]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebx + 3]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [ebx + 2]
cdq
or ecx, eax
or esi, edx
movzx eax, byte [ebx + 1]
cdq
shld esi, ecx, 8
or esi, edx
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx]
cdq
shld esi, ecx, 8
or esi, edx
shl ecx, 8
or ecx, eax
mov dword [ebp - 0x34], esi
movzx eax, byte [ebx + 0xf]
cdq
mov edi, eax
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x40]
mov ebx, edx
shld ebx, edi, 8
shl edi, 8
movzx eax, byte [eax + 0xe]
cdq
or edi, eax
or ebx, edx
mov eax, dword [ebp - 0x40]
shld ebx, edi, 8
shl edi, 8
movzx eax, byte [eax + 0xd]
cdq
or edi, eax
or ebx, edx
mov eax, dword [ebp - 0x40]
shld ebx, edi, 8
shl edi, 8
movzx eax, byte [eax + 0xc]
cdq
or edi, eax
or ebx, edx
mov eax, dword [ebp - 0x40]
shld ebx, edi, 8
shl edi, 8
movzx eax, byte [eax + 0xb]
cdq
or edi, eax
or ebx, edx
mov eax, dword [ebp - 0x40]
shld ebx, edi, 8
shl edi, 8
movzx eax, byte [eax + 0xa]
cdq
or edi, eax
or ebx, edx
mov eax, dword [ebp - 0x40]
shld ebx, edi, 8
shl edi, 8
movzx eax, byte [eax + 9]
cdq
or edi, eax
or ebx, edx
mov eax, dword [ebp - 0x40]
shld ebx, edi, 8
shl edi, 8
movzx eax, byte [eax + 8]
cdq
or ebx, edx
or edi, eax
mov edx, ecx
shrd edx, esi, 7
shr esi, 7
xor edx, ecx
xor esi, dword [ebp - 0x34]
and edx, 0xaa00aa
and esi, 0xaa00aa
mov eax, edx
mov ecx, esi
shld ecx, eax, 7
xor ecx, esi
shl eax, 7
xor eax, edx
xor dword [ebp - 0x34], ecx
xor dword [ebp - 0x38], eax
mov edx, edi
mov esi, ebx
shrd edx, esi, 7
xor edx, edi
shr esi, 7
and edx, 0xaa00aa
xor esi, ebx
and esi, 0xaa00aa
mov eax, edx
mov ecx, esi
shld ecx, eax, 7
xor ecx, esi
shl eax, 7
xor eax, edx
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
xor edi, eax
shrd edx, esi, 0xe
xor ebx, ecx
xor edx, dword [ebp - 0x38]
and edx, 0xcccc
shr esi, 0xe
xor esi, dword [ebp - 0x34]
mov eax, edx
and esi, 0xcccc
mov ecx, esi
shld ecx, eax, 0xe
shl eax, 0xe
xor ecx, esi
xor dword [ebp - 0x34], ecx
xor eax, edx
xor dword [ebp - 0x38], eax
mov edx, edi
mov esi, ebx
shrd edx, esi, 0xe
xor edx, edi
shr esi, 0xe
and edx, 0xcccc
xor esi, ebx
mov eax, edx
and esi, 0xcccc
mov ecx, esi
shld ecx, eax, 0xe
shl eax, 0xe
xor ecx, esi
mov esi, dword [ebp - 0x38]
xor eax, edx
xor edi, eax
mov edx, esi
mov eax, dword [ebp - 0x34]
xor ebx, ecx
shrd edx, eax, 0x1c
xor ecx, ecx
xor edx, esi
and edx, 0xf0f0f0f0
mov eax, edx
shld ecx, eax, 0x1c
shl eax, 0x1c
xor ecx, 0
xor dword [ebp - 0x34], ecx
xor eax, edx
xor esi, eax
mov edx, edi
mov eax, ebx
mov dword [ebp - 0x38], esi
shrd edx, eax, 0x1c
xor ecx, ecx
xor edx, edi
and edx, 0xf0f0f0f0
mov eax, edx
shld ecx, eax, 0x1c
shl eax, 0x1c
xor ecx, 0
xor eax, edx
xor edi, eax
xor ebx, ecx
mov edx, esi
mov esi, dword [ebp - 0x34]
shrd edx, esi, 8
xor edx, edi
shr esi, 8
xor esi, ebx
and edx, 0xff00ff
and esi, 0xff00ff
mov eax, edx
mov ecx, esi
xor edi, edx
shld ecx, eax, 8
xor ebx, esi
xor dword [ebp - 0x34], ecx
mov esi, dword [ebp - 0x34]
shl eax, 8
xor dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
mov ecx, edx
mov eax, dword [ebp - 0x30]
movzx eax, ax
shl ecx, 0x10
or ecx, eax
mov eax, esi
shrd edx, eax, 0x10
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x30]
shrd ecx, eax, 0x10
shl edx, 0x10
movzx eax, cx
mov ecx, esi
or edx, eax
shl ecx, 0x10
mov dword [ebp - 0x20], edx
and esi, 0xffff0000
mov edx, dword [ebp - 0x2c]
movzx eax, dx
or ecx, eax
shr edx, 0x10
or esi, edx
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x48]
mov ecx, edi
shl ecx, 0x10
movzx eax, dx
or ecx, eax
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x3c]
mov eax, ebx
shrd edi, eax, 0x10
mov eax, esi
mov dword [ebp - 0x24], ecx
shrd edx, eax, 0x10
shl edi, 0x10
mov ecx, ebx
movzx eax, dx
and ebx, 0xffff0000
or edi, eax
shl ecx, 0x10
movzx eax, si
lea edx, [ebp - 0x28]
shr esi, 0x10
or ecx, eax
or ebx, esi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], ebx
mov ecx, edx
mov ebx, dword [ebp - 0x44]
mov dword [ebp - 0x1c], edi
mov esi, dword [ebx + 0x2d0]
shl esi, 5
add esi, ebx
push esi
call fcn.00484a90
mov eax, dword [ebx + 0x2d0]
add esp, 4
sub esi, 0x20
xor edi, edi
sub eax, 1
je 0x486ecd
nop dword [eax]
lea edx, [ebp - 0x28]
push esi
mov ecx, edx
call fcn.00483ee0
mov eax, dword [ebx + 0x2d0]
inc edi
dec eax
add esp, 4
sub esi, 0x20
cmp edi, eax
jb 0x486eb0
mov eax, dword [ebp - 0x28]
xor ecx, ecx
xor eax, dword [esi]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
xor eax, dword [esi + 4]
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
xor eax, dword [esi + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
xor eax, dword [esi + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
xor eax, dword [esi + 0x10]
mov dword [ebp - 0x18], eax
xor edx, dword [esi + 0x14]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
xor eax, dword [esi + 0x18]
mov dword [ebp - 0x10], eax
xor ebx, dword [esi + 0x1c]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x44], ebx
add eax, 0xa
mov dword [ebp - 0x40], ecx
nop
mov esi, ecx
xor edi, edi
shl esi, 4
mov ecx, esi
shr ebx, cl
shr edx, cl
shld edi, ebx, 0x10
movzx ecx, dx
mov edx, dword [ebp - 0x1c]
shl ebx, 0x10
or ebx, ecx
mov ecx, esi
shr edx, cl
shld edi, ebx, 0x10
movzx ecx, dx
mov edx, dword [ebp - 0x24]
shl ebx, 0x10
or ebx, ecx
mov ecx, esi
shr edx, cl
shld edi, ebx, 0x10
movzx ecx, dx
mov edx, dword [ebp - 0x18]
shl ebx, 0x10
or ebx, ecx
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x34], ebx
mov ecx, esi
mov ebx, dword [ebp - 0x10]
xor edi, edi
shr ebx, cl
shr edx, cl
shld edi, ebx, 0x10
movzx ecx, dx
mov edx, dword [ebp - 0x20]
shl ebx, 0x10
or ebx, ecx
mov ecx, esi
shr edx, cl
shld edi, ebx, 0x10
movzx edx, dx
shl ebx, 0x10
or ebx, edx
mov edx, dword [ebp - 0x28]
shr edx, cl
shld edi, ebx, 0x10
movzx ecx, dx
shl ebx, 0x10
or ebx, ecx
mov dword [ebp - 0x30], edi
mov esi, ebx
shrd esi, edi, 8
xor esi, dword [ebp - 0x34]
shr edi, 8
and esi, 0xff00ff
xor edi, dword [ebp - 0x2c]
mov ecx, esi
xor dword [ebp - 0x34], esi
and edi, 0xff00ff
xor dword [ebp - 0x2c], edi
mov edx, edi
shld edx, ecx, 8
xor dword [ebp - 0x30], edx
xor edx, edx
mov edi, dword [ebp - 0x30]
shl ecx, 8
xor ebx, ecx
mov ecx, edi
mov esi, ebx
shrd esi, ecx, 0x1c
xor esi, ebx
and esi, 0xf0f0f0f0
mov ecx, esi
shld edx, ecx, 0x1c
shl ecx, 0x1c
xor edx, 0
xor ecx, esi
mov esi, dword [ebp - 0x34]
xor ebx, ecx
xor edi, edx
mov dword [ebp - 0x30], edi
mov ecx, dword [ebp - 0x2c]
xor edx, edx
shrd esi, ecx, 0x1c
xor esi, dword [ebp - 0x34]
and esi, 0xf0f0f0f0
mov ecx, esi
shld edx, ecx, 0x1c
shl ecx, 0x1c
xor edx, 0
xor dword [ebp - 0x2c], edx
xor ecx, esi
xor dword [ebp - 0x34], ecx
mov esi, ebx
shrd esi, edi, 0xe
shr edi, 0xe
xor esi, ebx
xor edi, dword [ebp - 0x30]
and esi, 0xcccc
and edi, 0xcccc
mov ecx, esi
mov edx, edi
shld edx, ecx, 0xe
xor edx, edi
shl ecx, 0xe
xor dword [ebp - 0x30], edx
xor ecx, esi
mov esi, dword [ebp - 0x34]
xor ebx, ecx
mov edi, dword [ebp - 0x2c]
shrd esi, edi, 0xe
xor esi, dword [ebp - 0x34]
shr edi, 0xe
and esi, 0xcccc
xor edi, dword [ebp - 0x2c]
mov ecx, esi
and edi, 0xcccc
mov edx, edi
shld edx, ecx, 0xe
xor edx, edi
shl ecx, 0xe
xor dword [ebp - 0x2c], edx
xor ecx, esi
xor dword [ebp - 0x34], ecx
mov esi, ebx
mov edi, dword [ebp - 0x30]
shrd esi, edi, 7
shr edi, 7
xor esi, ebx
xor edi, dword [ebp - 0x30]
and esi, 0xaa00aa
and edi, 0xaa00aa
mov ecx, esi
mov edx, edi
shld edx, ecx, 7
xor edx, edi
shl ecx, 7
mov edi, dword [ebp - 0x2c]
xor ecx, esi
mov esi, dword [ebp - 0x34]
xor ebx, ecx
xor dword [ebp - 0x30], edx
shrd esi, edi, 7
mov byte [eax - 0xa], bl
xor esi, dword [ebp - 0x34]
shr edi, 7
and esi, 0xaa00aa
xor edi, dword [ebp - 0x2c]
mov ecx, esi
and edi, 0xaa00aa
mov edx, edi
shld edx, ecx, 7
shl ecx, 7
xor edx, edi
mov edi, dword [ebp - 0x2c]
xor ecx, esi
xor dword [ebp - 0x34], ecx
xor edi, edx
mov ecx, dword [ebp - 0x30]
mov edx, ebx
mov dword [ebp - 0x2c], edi
shrd edx, ecx, 8
mov ecx, dword [ebp - 0x30]
lea eax, [eax + 0x10]
mov byte [eax - 0x19], dl
mov edx, ebx
shrd edx, ecx, 0x10
mov byte [eax - 0x18], dl
mov edx, dword [ebp - 0x30]
mov ecx, edx
shrd ebx, ecx, 0x18
mov ecx, edx
mov byte [eax - 0x16], dl
shr ecx, 8
mov byte [eax - 0x15], cl
mov ecx, edx
shr ecx, 0x10
mov byte [eax - 0x14], cl
mov ecx, edi
shr edx, 0x18
mov byte [eax - 0x13], dl
mov byte [eax - 0x17], bl
mov ebx, dword [ebp - 0x34]
mov edx, ebx
shrd edx, ecx, 8
mov ecx, edi
mov byte [eax - 0x12], bl
mov byte [eax - 0x11], dl
mov edx, ebx
shrd edx, ecx, 0x10
mov byte [eax - 0x10], dl
mov edx, edi
mov ecx, edx
mov byte [eax - 0xe], dl
shrd ebx, ecx, 0x18
mov ecx, edx
shr ecx, 8
mov byte [eax - 0xd], cl
mov ecx, edx
shr ecx, 0x10
mov byte [eax - 0xc], cl
mov ecx, dword [ebp - 0x40]
shr edx, 0x18
inc ecx
mov byte [eax - 0xf], bl
mov ebx, dword [ebp - 0x44]
mov byte [eax - 0xb], dl
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x40], ecx
cmp ecx, 2
jb 0x486f20
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00495b16
mov esp, ebp
pop ebp
ret