Function at 0x4702a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x5519c0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 5
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
call fcn.004ae8a7
mov esi, dword [ebp + 0x10]
mov ecx, eax
mov edi, dword [ebp + 0x14]
add esp, 4
mov dword [ebx], ecx
mov byte [ebp - 0x35], 0
lea eax, [ecx + 5]
mov dword [ebp - 0x4c], 0x1e
mov dword [ebx + 8], eax
lea eax, [ecx + 5]
mov dword [ecx], 0
mov byte [ecx + 4], 0
mov dword [ebx + 4], eax
movzx eax, byte [esi + 5]
mov bh, byte [eax + edi]
movzx eax, byte [esi + 6]
xor bh, byte [0x4eaba8]
xor bh, byte [0x4ea8e8]
mov byte [ebp - 0xc], bh
mov bl, byte [eax + edi]
movzx eax, byte [esi + 7]
xor bl, byte [0x4ea8e9]
xor bl, byte [0x4eaba9]
mov byte [ebp - 0xb], bl
mov cl, byte [eax + edi]
movzx eax, byte [esi + 8]
xor cl, byte [0x4ea8ea]
xor cl, byte [0x4eabaa]
mov byte [ebp - 0xa], cl
mov dh, byte [eax + edi]
movzx eax, byte [esi + 9]
xor dh, byte [0x4ea8eb]
xor dh, byte [0x4eabab]
movzx esi, bh
mov dl, byte [eax + edi]
xor dl, byte [0x4ea8ec]
xor dl, byte [0x4eabac]
shl esi, 8
movzx eax, bl
or esi, eax
movzx ecx, cl
shl esi, 8
mov eax, ecx
and eax, 0xfffffffc
movzx edi, dh
or esi, eax
shl edi, 9
or esi, 4
movzx eax, dl
add esi, esi
mov byte [ebp - 9], dh
and ecx, 7
mov byte [ebp - 8], dl
or edi, eax
or esi, ecx
or edi, 0x100
mov ecx, esi
mov eax, esi
shr eax, 0xc
mov ebx, esi
shr ecx, 0x18
mov edx, esi
xor cl, al
shr edx, 0x15
mov dword [ebp - 0x48], edx
add esi, esi
shr ebx, 0x14
xor cl, bl
mov dword [ebp - 0x44], ebx
xor cl, dl
mov edx, edi
shr edx, 0x10
and cl, 1
movzx eax, cl
xor cl, 1
or esi, eax
mov eax, edi
shr eax, 2
add edi, edi
xor dl, al
and dl, 1
movzx eax, dl
xor dl, 1
add dl, cl
or edi, eax
add dl, byte [ebp - 0x35]
mov eax, esi
mov dword [ebp - 0x34], edx
mov bl, dl
shr eax, 0xc
mov edx, esi
shr edx, 0x18
mov ecx, esi
xor dl, al
shr ecx, 0x14
xor dl, cl
mov dword [ebp - 0x40], ecx
xor dl, byte [ebp - 0x44]
add esi, esi
and dl, 1
mov ecx, edi
movzx eax, dl
and bl, 1
or esi, eax
shr ecx, 0x10
mov eax, edi
xor dl, 1
shr eax, 2
add edi, edi
xor cl, al
and cl, 1
movzx eax, cl
xor cl, 1
or edi, eax
mov eax, dword [ebp - 0x34]
shr al, 1
and al, 1
add al, dl
mov edx, esi
add al, cl
shr edx, 0x18
mov dword [ebp - 0x34], eax
and al, 1
add al, al
or al, bl
mov ebx, esi
mov byte [ebp - 0x2d], al
mov eax, esi
shr eax, 0xc
xor dl, al
shr ebx, 0x14
xor dl, bl
mov dword [ebp - 0x54], ebx
xor dl, byte [ebp - 0x40]
and dl, 1
add esi, esi
movzx eax, dl
or esi, eax
mov ecx, edi
shr ecx, 0x10
mov eax, edi
shr eax, 2
xor dl, 1
xor cl, al
add edi, edi
and cl, 1
movzx eax, cl
xor cl, 1
or edi, eax
mov eax, dword [ebp - 0x34]
shr al, 1
and al, 1
add al, dl
mov edx, esi
add al, cl
shr edx, 0xc
mov dword [ebp - 0x34], eax
mov ecx, edi
and al, 1
shr ecx, 0x10
shl al, 2
or byte [ebp - 0x2d], al
mov eax, esi
shr eax, 0x14
add esi, esi
xor dl, al
mov dword [ebp - 0x3c], eax
xor dl, byte [ebp - 0x48]
xor dl, bl
and dl, 1
movzx eax, dl
xor dl, 1
or esi, eax
mov eax, edi
shr eax, 2
add edi, edi
xor cl, al
mov ebx, esi
and cl, 1
shr ebx, 0x14
movzx eax, cl
xor cl, 1
or edi, eax
mov eax, dword [ebp - 0x34]
shr al, 1
and al, 1
add al, cl
mov ecx, edi
add al, dl
shr ecx, 0x10
mov dword [ebp - 0x34], eax
mov edx, esi
shr edx, 0xc
and al, 1
shl al, 3
xor dl, bl
or byte [ebp - 0x2d], al
add esi, esi
xor dl, byte [ebp - 0x44]
xor dl, byte [ebp - 0x3c]
and dl, 1
movzx eax, dl
xor dl, 1
or esi, eax
mov eax, edi
shr eax, 2
add edi, edi
xor cl, al
and cl, 1
movzx eax, cl
xor cl, 1
or edi, eax
mov eax, dword [ebp - 0x34]
shr al, 1
and al, 1
add al, dl
add al, cl
mov dword [ebp - 0x34], eax
and al, 1
mov edx, esi
shl al, 4
mov ecx, edi
or byte [ebp - 0x2d], al
mov eax, esi
shr eax, 0x14
add esi, esi
mov dword [ebp - 0x48], eax
shr edx, 0xc
xor dl, al
shr ecx, 0x10
xor dl, byte [ebp - 0x40]
xor dl, bl
and dl, 1
movzx eax, dl
xor dl, 1
or esi, eax
mov eax, edi
shr eax, 2
add edi, edi
xor cl, al
mov ebx, esi
and cl, 1
shr ebx, 0x14
movzx eax, cl
xor cl, 1
or edi, eax
mov eax, dword [ebp - 0x34]
shr al, 1
and al, 1
add al, cl
mov ecx, edi
add al, dl
shr ecx, 0x10
mov dword [ebp - 0x34], eax
mov edx, esi
and al, 1
shr edx, 0xc
shl al, 5
xor dl, bl
or byte [ebp - 0x2d], al
add esi, esi
xor dl, byte [ebp - 0x54]
xor dl, byte [ebp - 0x48]
and dl, 1
movzx eax, dl
xor dl, 1
or esi, eax
mov eax, edi
shr eax, 2
add edi, edi
xor cl, al
and cl, 1
movzx eax, cl
xor cl, 1
or edi, eax
mov eax, dword [ebp - 0x34]
shr al, 1
and al, 1
add al, cl
mov ecx, edi
add al, dl
shr ecx, 0x10
mov dword [ebp - 0x34], eax
mov edx, esi
and al, 1
shr edx, 0x14
shl al, 6
or byte [ebp - 0x2d], al
mov eax, esi
shr eax, 0xc
add esi, esi
xor dl, al
xor dl, bl
xor dl, byte [ebp - 0x3c]
and dl, 1
movzx eax, dl
or esi, eax
mov eax, edi
shr eax, 2
xor cl, al
add edi, edi
and cl, 1
xor dl, 1
movzx eax, cl
xor cl, 1
or edi, eax
mov eax, dword [ebp - 0x34]
shr al, 1
and al, 1
add al, cl
add al, dl
mov cl, al
shl al, 7
or al, byte [ebp - 0x2d]
shr cl, 1
and cl, 1
mov byte [ebp - 0x35], cl
mov ecx, dword [ebp - 0x4c]
mov byte [ebp + ecx - 0x2d], al
sub ecx, 1
mov dword [ebp - 0x4c], ecx
jne 0x4703a6
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x50]
mov esi, dword [ebp + 0x14]
movzx edi, byte [ebp + 0xc]
movzx eax, byte [ebx]
mov ecx, dword [edx]
mov dword [ebp - 0x44], 0
movzx eax, byte [eax + esi]
mov byte [ecx], al
movzx eax, byte [ebx + 1]
mov ecx, dword [edx]
movzx eax, byte [eax + esi]
mov byte [ecx + 1], al
movzx eax, byte [ebx + 2]
mov ecx, dword [edx]
movzx eax, byte [eax + esi]
mov byte [ecx + 2], al
movzx eax, byte [ebx + 3]
mov ecx, dword [edx]
movzx eax, byte [eax + esi]
mov byte [ecx + 3], al
movzx eax, byte [ebx + 4]
lea ebx, [ebp - 0xc]
mov ecx, dword [edx]
mov dword [ebp - 0x3c], ebx
movzx eax, byte [eax + esi]
mov byte [ecx + 4], al
lea ecx, [ebp - 0x12]
mov esi, dword [edx]
mov dword [ebp - 0x34], ecx
mov al, byte [esi]
nop dword [eax + eax]
movzx ecx, byte [ecx - 1]
movzx eax, al
xor ecx, eax
mov al, byte [ecx + 0x4ea8e8]
not al
xor al, byte [ecx + 0x4ea7e8]
xor al, byte [edi + 0x4ea8e8]
xor al, byte [edi + 0x4eab88]
movzx ecx, al
mov al, byte [ecx + 0x4ea9e8]
xor al, byte [ecx + 0x4ea8e8]
mov ecx, dword [ebp - 0x44]
xor al, byte [esi + 1]
shr ecx, 1
and cl, 1
mov dword [ebp - 0x40], ecx
je 0x470701
movzx ecx, al
mov al, byte [ecx + 0x4ea6e8]
xor al, byte [ecx + 0x4ea8e8]
mov ecx, dword [ebp - 0x34]
mov byte [ebx], al
movzx edx, byte [ecx]
movzx ecx, byte [esi + 1]
xor edx, ecx
mov cl, byte [edx + 0x4ea8e8]
not cl
xor cl, byte [edx + 0x4ea7e8]
xor cl, byte [edi + 0x4ea8e8]
xor cl, byte [edi + 0x4eab88]
movzx ecx, cl
mov bl, byte [ecx + 0x4ea9e8]
xor bl, byte [ecx + 0x4ea8e8]
xor bl, byte [esi + 2]
cmp byte [ebp - 0x40], 0
je 0x470750
movzx ecx, bl
mov bl, byte [ecx + 0x4ea6e8]
xor bl, byte [ecx + 0x4ea8e8]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + 1], bl
mov ecx, dword [ebp - 0x34]
movzx edx, byte [ecx + 1]
movzx ecx, byte [esi + 2]
xor edx, ecx
mov cl, byte [edx + 0x4ea8e8]
not cl
xor cl, byte [edx + 0x4ea7e8]
xor cl, byte [edi + 0x4ea8e8]
xor cl, byte [edi + 0x4eab88]
movzx ecx, cl
mov bl, byte [ecx + 0x4ea9e8]
xor bl, byte [ecx + 0x4ea8e8]
xor bl, byte [esi + 3]
cmp byte [ebp - 0x40], 0
je 0x4707a4
movzx ecx, bl
mov bl, byte [ecx + 0x4ea6e8]
xor bl, byte [ecx + 0x4ea8e8]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + 2], bl
mov ecx, dword [ebp - 0x34]
movzx edx, byte [ecx + 2]
movzx ecx, byte [esi + 3]
xor edx, ecx
mov cl, byte [edx + 0x4ea8e8]
not cl
xor cl, byte [edx + 0x4ea7e8]
xor cl, byte [edi + 0x4ea8e8]
xor cl, byte [edi + 0x4eab88]
movzx ecx, cl
mov bl, byte [ecx + 0x4ea9e8]
xor bl, byte [ecx + 0x4ea8e8]
xor bl, byte [esi + 4]
cmp byte [ebp - 0x40], 0
je 0x4707f8
movzx ecx, bl
mov bl, byte [ecx + 0x4ea6e8]
xor bl, byte [ecx + 0x4ea8e8]
mov ecx, dword [ebp - 0x3c]
mov byte [ecx + 3], bl
mov ecx, dword [ebp - 0x34]
movzx edx, byte [ecx + 3]
movzx ecx, byte [esi + 4]
xor edx, ecx
mov cl, byte [edx + 0x4ea8e8]
not cl
xor cl, byte [edx + 0x4ea7e8]
xor cl, byte [edi + 0x4ea8e8]
xor cl, byte [edi + 0x4eab88]
movzx ecx, cl
mov dl, byte [ecx + 0x4ea9e8]
xor dl, byte [ecx + 0x4ea8e8]
cmp byte [ebp - 0x40], 0
je 0x470849
movzx ecx, dl
mov dl, byte [ecx + 0x4ea6e8]
xor dl, byte [ecx + 0x4ea8e8]
mov ecx, dword [ebp - 0x3c]
xor dl, al
mov ebx, esi
mov dword [ebp - 0x3c], esi
mov esi, ecx
mov byte [ecx + 4], dl
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
inc edx
sub ecx, 5
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x34], ecx
cmp edx, 6
jb 0x4706b0
mov eax, dword [ebp - 0x50]
pop edi
pop esi
pop ebx
mov edx, dword [eax]
mov cl, byte [edx]
xor byte [edx + 4], cl
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ae8e5
mov esp, ebp
pop ebp
ret