Function at 0x49c530
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xc
call fcn.00596bf0
mov eax, dword [ebp + 8]
test eax, eax
je 0x49cbd1
cmp dword [ebp + 0xc], 0
je 0x49cbd1
push esi
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x49cbd0
mov ecx, dword [esi + 0x110]
mov dword [ebp - 8], ecx
cmp ecx, 0xc
je 0x49c57a
cmp ecx, 0xe
je 0x49c57a
cmp ecx, 0x10
jne 0x49cbd0
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 2]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 3]
push ebx
push edi
movzx edi, byte [eax + 5]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 4]
shl edx, 8
xor edx, edi
movzx edi, byte [eax + 6]
shl edx, 8
xor edx, edi
movzx edi, byte [eax + 7]
shl edx, 8
xor edx, edi
xor edx, dword [esi + 4]
movzx edi, byte [eax + 9]
movzx ebx, byte [eax + 0xc]
mov dword [ebp + 8], edx
movzx edx, byte [eax + 8]
shl edx, 8
xor edx, edi
movzx edi, byte [eax + 0xa]
xor ecx, dword [esi]
shl edx, 8
xor edx, edi
movzx edi, byte [eax + 0xb]
shl edx, 8
xor edx, edi
movzx edi, byte [eax + 0xd]
xor edx, dword [esi + 8]
shl ebx, 8
xor ebx, edi
movzx edi, byte [eax + 0xe]
movzx eax, byte [eax + 0xf]
shl ebx, 8
xor ebx, edi
shl ebx, 8
xor ebx, eax
xor ebx, dword [esi + 0xc]
mov eax, edx
shr eax, 0x18
mov edi, dword [eax*4 + 0x5c6278]
mov eax, edx
mov dword [ebp - 4], ecx
mov ecx, edx
shr eax, 8
movzx edx, dl
shr ecx, 0x10
movzx eax, al
movzx ecx, cl
xor edi, dword [ecx*4 + 0x5c6678]
xor edi, dword [eax*4 + 0x5c6a78]
mov eax, ebx
xor edi, dword [edx*4 + 0x5c6e78]
mov edx, ebx
shr edx, 0x10
movzx edx, dl
shr eax, 0x18
mov eax, dword [eax*4 + 0x5c6278]
xor eax, dword [edx*4 + 0x5c6678]
mov edx, ebx
shr edx, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x5c6a78]
movzx edx, bl
xor eax, dword [edx*4 + 0x5c6e78]
mov edx, dword [ebp + 8]
mov ebx, edx
shr edx, 0x10
shr ebx, 0x18
movzx ecx, dl
mov edx, dword [ebx*4 + 0x5c6278]
xor edx, dword [ecx*4 + 0x5c6678]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 4]
shr ebx, 8
movzx ebx, bl
xor edx, dword [ebx*4 + 0x5c6a78]
movzx ebx, byte [ebp + 8]
xor edx, dword [ebx*4 + 0x5c6e78]
mov ebx, ecx
xor edx, edi
shr ebx, 0x10
mov dword [ebp + 8], edx
movzx ebx, bl
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + 0x5c6278]
xor edx, dword [ebx*4 + 0x5c6678]
xor edi, eax
mov ebx, ecx
shr ebx, 8
movzx ebx, bl
xor edx, dword [ebx*4 + 0x5c6a78]
movzx ecx, cl
xor edx, dword [ecx*4 + 0x5c6e78]
mov ecx, dword [ebp + 8]
xor eax, ecx
xor edx, ecx
xor edi, edx
xor ecx, edi
rol edi, 0x10
mov ebx, eax
mov dword [ebp + 8], ecx
mov ecx, edi
mov edi, eax
shr edi, 0x10
and ebx, 0xff0000
xor ebx, edi
mov edi, eax
shl eax, 0x10
and edi, 0xff00
xor edi, eax
shl edi, 8
shr ebx, 8
xor ebx, edi
mov edi, dword [ebp + 8]
mov eax, edi
shr eax, 8
shl edi, 8
xor eax, edi
mov edi, dword [ebp + 8]
and eax, 0xff00ff
shl edi, 8
xor eax, edi
xor eax, ecx
xor ecx, ebx
xor edx, eax
xor ebx, eax
xor ebx, dword [esi + 0x1c]
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x14]
xor ecx, edx
xor edx, dword [esi + 0x10]
xor eax, ecx
xor ecx, dword [esi + 0x18]
xor dword [ebp + 8], eax
add esi, 0x20
sub dword [ebp - 8], 2
mov dword [ebp - 4], ebx
je 0x49ca0e
mov ebx, ecx
shr ebx, 0x10
movzx edi, bl
mov eax, ecx
mov ebx, ecx
shr ebx, 8
shr eax, 0x18
mov eax, dword [eax*4 + 0x5c6a78]
xor eax, dword [edi*4 + 0x5c6e78]
movzx edi, bl
xor eax, dword [edi*4 + 0x5c6278]
movzx ecx, cl
xor eax, dword [ecx*4 + 0x5c6678]
mov ecx, dword [ebp - 4]
mov ebx, ecx
shr ebx, 0x10
movzx ebx, bl
mov edi, ecx
shr edi, 0x18
mov edi, dword [edi*4 + 0x5c6a78]
xor edi, dword [ebx*4 + 0x5c6e78]
mov ebx, ecx
shr ebx, 8
movzx ebx, bl
xor edi, dword [ebx*4 + 0x5c6278]
movzx ecx, cl
xor edi, dword [ecx*4 + 0x5c6678]
mov ecx, dword [ebp + 8]
mov ebx, ecx
shr ebx, 0x18
shr ecx, 0x10
movzx ecx, cl
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebx*4 + 0x5c6a78]
mov ebx, dword [ebp - 0xc]
xor ecx, dword [ebx*4 + 0x5c6e78]
mov ebx, dword [ebp + 8]
shr ebx, 8
movzx ebx, bl
xor ecx, dword [ebx*4 + 0x5c6278]
movzx ebx, byte [ebp + 8]
xor ecx, dword [ebx*4 + 0x5c6678]
mov ebx, edx
shr ebx, 0x10
movzx ebx, bl
mov dword [ebp - 4], edi
xor ecx, eax
xor eax, edi
mov edi, edx
shr edi, 0x18
mov edi, dword [edi*4 + 0x5c6a78]
xor edi, dword [ebx*4 + 0x5c6e78]
mov ebx, edx
shr ebx, 8
movzx ebx, bl
xor edi, dword [ebx*4 + 0x5c6278]
mov ebx, dword [ebp - 4]
movzx edx, dl
xor edi, dword [edx*4 + 0x5c6678]
xor ebx, ecx
mov edx, ebx
mov dword [ebp - 4], ebx
shr edx, 8
shl ebx, 8
xor edx, ebx
mov ebx, dword [ebp - 4]
and edx, 0xff00ff
shl ebx, 8
xor edx, ebx
xor edi, ecx
xor eax, edi
xor ecx, eax
mov dword [ebp - 4], edx
mov edx, ecx
and edx, 0xff0000
mov ebx, ecx
shr ebx, 0x10
xor edx, ebx
mov ebx, ecx
shr edx, 8
and ebx, 0xff00
shl ecx, 0x10
xor ebx, ecx
mov ecx, dword [ebp - 4]
shl ebx, 8
xor edx, ebx
xor edx, eax
xor eax, ecx
rol edi, 0x10
xor edi, edx
xor eax, edi
xor ecx, edx
xor ecx, dword [esi + 0xc]
mov dword [ebp - 4], edi
mov edi, dword [esi]
xor dword [ebp - 4], edi
mov edi, dword [esi + 4]
xor edi, eax
xor eax, dword [esi + 8]
xor edx, edi
mov ebx, eax
add esi, 0x10
shr ebx, 0x10
movzx ebx, bl
mov dword [ebp - 0xc], esi
mov esi, eax
shr esi, 0x18
mov edi, dword [esi*4 + 0x5c6278]
xor edi, dword [ebx*4 + 0x5c6678]
mov ebx, eax
shr ebx, 8
movzx esi, bl
xor edi, dword [esi*4 + 0x5c6a78]
movzx eax, al
xor edi, dword [eax*4 + 0x5c6e78]
mov eax, ecx
shr eax, 0x18
mov esi, dword [eax*4 + 0x5c6278]
mov ebx, ecx
mov eax, ecx
shr ebx, 0x10
shr eax, 8
movzx ebx, bl
xor esi, dword [ebx*4 + 0x5c6678]
movzx eax, al
xor esi, dword [eax*4 + 0x5c6a78]
movzx ecx, cl
xor esi, dword [ecx*4 + 0x5c6e78]
mov ecx, edx
mov eax, edx
shr ecx, 0x10
shr eax, 0x18
mov eax, dword [eax*4 + 0x5c6278]
movzx ecx, cl
xor eax, dword [ecx*4 + 0x5c6678]
mov ecx, edx
shr ecx, 8
movzx edx, dl
movzx ecx, cl
xor eax, dword [ecx*4 + 0x5c6a78]
mov ecx, dword [ebp - 4]
xor eax, dword [edx*4 + 0x5c6e78]
mov ebx, ecx
shr ebx, 0x10
mov edx, ecx
shr edx, 0x18
mov edx, dword [edx*4 + 0x5c6278]
movzx ebx, bl
xor edx, dword [ebx*4 + 0x5c6678]
mov ebx, ecx
shr ebx, 8
movzx ebx, bl
xor edx, dword [ebx*4 + 0x5c6a78]
xor eax, edi
movzx ecx, cl
xor edx, dword [ecx*4 + 0x5c6e78]
xor edi, esi
xor edx, eax
xor edi, edx
xor esi, eax
xor eax, edi
rol edi, 0x10
mov ecx, edi
mov edi, esi
mov ebx, esi
shr ebx, 0x10
and edi, 0xff0000
xor edi, ebx
mov ebx, esi
shl esi, 0x10
and ebx, 0xff00
xor ebx, esi
shr edi, 8
shl ebx, 8
xor ebx, edi
mov esi, eax
mov edi, eax
shr esi, 8
shl edi, 8
xor esi, edi
shl eax, 8
and esi, 0xff00ff
xor eax, esi
mov esi, dword [ebp - 0xc]
xor eax, ecx
xor ecx, ebx
xor edx, eax
xor ebx, eax
xor ebx, dword [esi + 0xc]
mov dword [ebp + 8], eax
mov eax, dword [esi + 4]
xor ecx, edx
xor edx, dword [esi]
xor eax, ecx
xor ecx, dword [esi + 8]
xor dword [ebp + 8], eax
add esi, 0x10
sub dword [ebp - 8], 2
mov dword [ebp - 4], ebx
jne 0x49c764
mov eax, edx
shr eax, 0x10
movzx eax, al
mov eax, dword [eax*4 + 0x5c6e78]
shr eax, 8
movzx edi, al
mov eax, edx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x5c6a78]
shl eax, 8
or edi, eax
mov eax, edx
shr eax, 8
movzx eax, al
movzx eax, byte [eax*4 + 0x5c6278]
shl edi, 8
movzx edx, dl
mov dword [ebp - 0xc], edi
or edi, eax
movzx eax, byte [edx*4 + 0x5c6678]
shl edi, 8
or edi, eax
xor edi, dword [esi]
mov dword [ebp - 4], edi
mov edi, dword [ebp + 8]
mov edx, edi
shr edx, 0x10
movzx eax, dl
mov edx, dword [eax*4 + 0x5c6e78]
shr edi, 0x18
movzx eax, byte [edi*4 + 0x5c6a78]
shl eax, 8
shr edx, 8
movzx edx, dl
or edx, eax
mov eax, dword [ebp + 8]
shr eax, 8
movzx eax, al
movzx eax, byte [eax*4 + 0x5c6278]
shl edx, 8
or edx, eax
movzx eax, byte [ebp + 8]
movzx eax, byte [eax*4 + 0x5c6678]
shl edx, 8
or edx, eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov eax, dword [eax*4 + 0x5c6e78]
shr eax, 8
movzx edi, al
mov eax, ecx
shr eax, 0x18
movzx eax, byte [eax*4 + 0x5c6a78]
shl eax, 8
or edi, eax
mov eax, ecx
shr eax, 8
movzx eax, al
movzx eax, byte [eax*4 + 0x5c6278]
movzx ecx, cl
xor edx, dword [esi + 4]
shl edi, 8
mov dword [ebp + 8], edi
or edi, eax
movzx eax, byte [ecx*4 + 0x5c6678]
shl edi, 8
or edi, eax
xor edi, dword [esi + 8]
mov ecx, ebx
shr ecx, 0x10
movzx eax, cl
mov ecx, dword [eax*4 + 0x5c6e78]
shr ecx, 8
movzx eax, cl
mov ecx, ebx
shr ecx, 0x18
movzx ecx, byte [ecx*4 + 0x5c6a78]
shl ecx, 8
mov dword [ebp + 8], edi
or eax, ecx
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
movzx ecx, byte [ecx*4 + 0x5c6278]
shl eax, 8
or eax, ecx
movzx ecx, bl
movzx ecx, byte [ecx*4 + 0x5c6678]
mov ebx, dword [ebp - 4]
shr ebx, 0x18
shl eax, 8
or eax, ecx
xor eax, dword [esi + 0xc]
mov ecx, dword [ebp + 0xc]
mov byte [ecx], bl
mov ebx, dword [ebp - 4]
shr ebx, 0x10
mov byte [ecx + 1], bl
mov ebx, dword [ebp - 4]
shr ebx, 8
mov byte [ecx + 2], bl
mov bl, byte [ebp - 4]
mov byte [ecx + 3], bl
mov ebx, edx
shr ebx, 0x18
mov byte [ecx + 4], bl
mov ebx, edx
shr ebx, 0x10
mov byte [ecx + 5], bl
mov ebx, edx
shr ebx, 8
mov byte [ecx + 7], dl
mov byte [ecx + 6], bl
mov edx, edi
mov ebx, edx
shr ebx, 0x18
mov byte [ecx + 8], bl
mov ebx, edx
shr ebx, 0x10
mov byte [ecx + 0xb], dl
mov byte [ecx + 9], bl
mov ebx, edx
mov edx, eax
shr edx, 0x18
mov byte [ecx + 0xc], dl
mov edx, eax
shr edx, 0x10
mov byte [ecx + 0xd], dl
shr ebx, 8
mov edx, eax
shr edx, 8
pop edi
mov byte [ecx + 0xa], bl
mov byte [ecx + 0xe], dl
mov byte [ecx + 0xf], al
pop ebx
pop esi
mov esp, ebp
pop ebp
ret