Function at 0x5340a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x50
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x78]
test eax, eax
je 0x534310
mov edx, dword [esp + 0x74]
mov al, byte [edx]
and eax, 0xff
mov edi, eax
shl edi, 0x18
xor eax, eax
mov al, byte [edx + 1]
shl eax, 0x10
or edi, eax
xor eax, eax
mov al, byte [edx + 3]
or edi, eax
xor eax, eax
mov al, byte [edx + 2]
shl eax, 8
or edi, eax
xor ecx, ecx
mov cl, byte [edx + 4]
shl ecx, 0x18
xor eax, eax
mov al, byte [edx + 5]
shl eax, 0x10
or ecx, eax
xor eax, eax
mov al, byte [edx + 7]
or ecx, eax
xor eax, eax
mov al, byte [edx + 6]
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x6c]
sub eax, 8
js 0x534681
shr eax, 3
mov dword [esp + 0x38], eax
lea esi, [eax*8 + 8]
mov dword [esp + 0x3c], esi
add esi, ebx
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x68]
lea eax, [esp + 0x48]
mov dword [esp + 0x28], eax
mov dword [esp + 8], edi
mov edi, ecx
lea esi, [esi]
xor edx, edx
mov dl, byte [ebx]
shl edx, 0x18
xor eax, eax
mov al, byte [ebx + 1]
shl eax, 0x10
or edx, eax
xor eax, eax
mov al, byte [ebx + 3]
or edx, eax
xor eax, eax
mov al, byte [ebx + 2]
shl eax, 8
or edx, eax
xor eax, eax
mov al, byte [ebx + 4]
shl eax, 0x18
mov cl, byte [ebx + 5]
and ecx, 0xff
mov ebp, ecx
shl ebp, 0x10
or eax, ebp
mov cl, byte [ebx + 7]
and ecx, 0xff
or eax, ecx
mov cl, byte [ebx + 6]
and ecx, 0xff
mov ebp, ecx
shl ebp, 8
or eax, ebp
add ebx, 8
xor edx, dword [esp + 8]
mov dword [esp + 0x48], edx
xor eax, edi
mov dword [esp + 0x4c], eax
mov edi, dword [esp + 0x70]
mov dword [esp + 4], edi
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00533770
mov edx, dword [esp + 0x48]
mov dword [esp + 8], edx
mov eax, edx
shr eax, 0x18
mov byte [esi], al
mov eax, edx
shr eax, 0x10
mov byte [esi + 1], al
mov eax, edx
shr eax, 8
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov edi, dword [esp + 0x4c]
mov eax, edi
shr eax, 0x18
mov byte [esi + 4], al
mov eax, edi
shr eax, 0x10
mov byte [esi + 5], al
mov eax, edi
shr eax, 8
mov byte [esi + 6], al
mov ecx, edi
mov byte [esi + 7], cl
add esi, 8
cmp dword [esp + 0x14], ebx
jne 0x534140
mov eax, edi
mov edi, edx
mov ecx, eax
mov ebx, dword [esp + 0x3c]
add dword [esp + 0x68], ebx
mov eax, dword [esp + 0x38]
neg eax
mov esi, dword [esp + 0x6c]
lea eax, [esi + eax*8 - 0x10]
cmp eax, 0xfffffff8
je 0x534650
lea edx, [eax + 8]
mov eax, dword [esp + 0x14]
add eax, edx
cmp edx, 7
jbe switch.0x00534570
xor esi, esi
xor edx, edx
lea esi, [esi]
lea edi, [edi]
xor edi, edx
mov dword [esp + 0x48], edi
xor ecx, esi
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 4], ecx
lea eax, [esp + 0x48]
mov dword [esp], eax
call fcn.00533770
mov eax, dword [esp + 0x48]
mov edx, eax
shr edx, 0x18
mov byte [esp + 0x14], dl
mov ebx, dword [esp + 0x68]
mov byte [ebx], dl
mov edx, eax
shr edx, 0x10
mov byte [esp + 0x18], dl
mov byte [ebx + 1], dl
mov edx, eax
shr edx, 8
mov byte [esp + 0x28], dl
mov byte [ebx + 2], dl
mov ebp, eax
mov byte [ebx + 3], al
mov edx, dword [esp + 0x4c]
shr edx, 0x18
mov edi, edx
mov byte [ebx + 4], dl
mov edx, dword [esp + 0x4c]
shr edx, 0x10
mov bl, dl
mov esi, dword [esp + 0x68]
mov byte [esi + 5], dl
mov ecx, dword [esp + 0x4c]
shr ecx, 8
mov dl, cl
mov byte [esi + 6], cl
mov cl, byte [esp + 0x4c]
mov byte [esi + 7], cl
mov al, byte [esp + 0x14]
mov esi, dword [esp + 0x74]
mov byte [esi], al
mov al, byte [esp + 0x18]
mov byte [esi + 1], al
mov al, byte [esp + 0x28]
mov byte [esi + 2], al
mov eax, ebp
mov byte [esi + 3], al
mov eax, edi
mov byte [esi + 4], al
mov byte [esi + 5], bl
mov byte [esi + 6], dl
mov byte [esi + 7], cl
add esp, 0x50
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0x74]
xor edx, edx
mov dl, byte [ecx]
shl edx, 0x18
xor eax, eax
mov al, byte [ecx + 1]
shl eax, 0x10
or edx, eax
xor eax, eax
mov al, byte [ecx + 3]
or edx, eax
xor eax, eax
mov al, byte [ecx + 2]
shl eax, 8
or edx, eax
xor eax, eax
mov al, byte [ecx + 4]
shl eax, 0x18
mov esi, ecx
xor ecx, ecx
mov cl, byte [esi + 5]
shl ecx, 0x10
or eax, ecx
xor ecx, ecx
mov cl, byte [esi + 7]
or eax, ecx
xor ecx, ecx
mov cl, byte [esi + 6]
shl ecx, 8
or eax, ecx
mov esi, dword [esp + 0x6c]
sub esi, 8
js 0x53468a
shr esi, 3
mov dword [esp + 0x38], esi
lea edi, [esi*8 + 8]
mov dword [esp + 0x3c], edi
add edi, ebx
mov dword [esp + 0x14], edi
mov ebp, dword [esp + 0x68]
lea ecx, [esp + 0x48]
mov dword [esp + 0x28], ecx
lea esi, [esi]
mov cl, byte [ebx]
and ecx, 0xff
mov edi, ecx
shl edi, 0x18
xor ecx, ecx
mov cl, byte [ebx + 1]
shl ecx, 0x10
or edi, ecx
xor ecx, ecx
mov cl, byte [ebx + 3]
or edi, ecx
xor ecx, ecx
mov cl, byte [ebx + 2]
shl ecx, 8
or edi, ecx
mov dword [esp + 0x48], edi
mov cl, byte [ebx + 4]
and ecx, 0xff
mov esi, ecx
shl esi, 0x18
xor ecx, ecx
mov cl, byte [ebx + 5]
shl ecx, 0x10
or esi, ecx
xor ecx, ecx
mov cl, byte [ebx + 7]
or esi, ecx
xor ecx, ecx
mov cl, byte [ebx + 6]
shl ecx, 8
or esi, ecx
add ebx, 8
mov dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x70]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00533770
mov edx, dword [esp + 0x10]
xor edx, dword [esp + 0x48]
mov eax, dword [esp + 0xc]
xor eax, dword [esp + 0x4c]
mov ecx, edx
shr ecx, 0x18
mov byte [ebp], cl
mov ecx, edx
shr ecx, 0x10
mov byte [ebp + 1], cl
mov ecx, edx
shr ecx, 8
mov byte [ebp + 2], cl
mov byte [ebp + 3], dl
mov edx, eax
shr edx, 0x18
mov byte [ebp + 4], dl
mov edx, eax
shr edx, 0x10
mov byte [ebp + 5], dl
mov edx, eax
shr edx, 8
mov byte [ebp + 6], dl
mov byte [ebp + 7], al
add ebp, 8
mov edx, edi
mov eax, esi
cmp dword [esp + 0x14], ebx
jne 0x534390
mov ebx, dword [esp + 0x3c]
add dword [esp + 0x68], ebx
mov esi, dword [esp + 0x38]
neg esi
mov edi, dword [esp + 0x6c]
lea esi, [edi + esi*8 - 0x10]
cmp esi, 0xfffffff8
je 0x534520
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov bl, byte [ecx]
shl ebx, 0x18
mov edi, ecx
xor ecx, ecx
mov cl, byte [edi + 1]
shl ecx, 0x10
or ebx, ecx
xor ecx, ecx
mov cl, byte [edi + 3]
or ebx, ecx
xor ecx, ecx
mov cl, byte [edi + 2]
shl ecx, 8
or ebx, ecx
mov dword [esp + 0x48], ebx
mov cl, byte [edi + 4]
and ecx, 0xff
mov ebp, ecx
shl ebp, 0x18
xor ecx, ecx
mov cl, byte [edi + 5]
shl ecx, 0x10
or ebp, ecx
xor ecx, ecx
mov cl, byte [edi + 7]
or ebp, ecx
xor ecx, ecx
mov cl, byte [edi + 6]
shl ecx, 8
or ebp, ecx
mov dword [esp + 0x4c], ebp
mov edi, dword [esp + 0x70]
mov dword [esp + 4], edi
lea ecx, [esp + 0x48]
mov dword [esp], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00533770
mov edx, dword [esp + 0x10]
xor edx, dword [esp + 0x48]
mov eax, dword [esp + 0xc]
xor eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
add esi, 8
mov ecx, dword [esp + 0x68]
add ecx, esi
cmp esi, 7
jbe switch.0x00534580
mov eax, ebp
mov edx, ebx
lea esi, [esi]
mov ecx, edx
shr ecx, 0x18
mov ebx, dword [esp + 0x74]
mov byte [ebx], cl
mov ecx, edx
shr ecx, 0x10
mov byte [ebx + 1], cl
mov ecx, edx
shr ecx, 8
mov byte [ebx + 2], cl
mov byte [ebx + 3], dl
mov edx, eax
shr edx, 0x18
mov byte [ebx + 4], dl
mov edx, eax
shr edx, 0x10
mov byte [ebx + 5], dl
mov edx, eax
shr edx, 8
mov byte [ebx + 6], dl
mov byte [ebx + 7], al
add esp, 0x50
pop ebx
pop esi
pop edi
pop ebp
ret
jmp dword [edx*4 + 0x60a700]
jmp dword [esi*4 + 0x60a720]
mov dl, byte [eax - 1]
and edx, 0xff
mov esi, edx
shl esi, 8
dec eax
lea ebx, [eax - 1]
xor edx, edx
mov dl, byte [eax - 1]
shl edx, 0x10
or edx, esi
lea eax, [ebx - 1]
mov bl, byte [ebx - 1]
and ebx, 0xff
mov esi, ebx
shl esi, 0x18
or esi, edx
lea edx, [eax - 1]
xor ebx, ebx
mov bl, byte [eax - 1]
lea eax, [edx - 1]
mov dl, byte [edx - 1]
and edx, 0xff
shl edx, 8
or edx, ebx
lea ebx, [eax - 1]
mov al, byte [eax - 1]
and eax, 0xff
shl eax, 0x10
or eax, edx
xor edx, edx
mov dl, byte [ebx - 1]
shl edx, 0x18
or edx, eax
jmp 0x534250
mov esi, dword [esp + 0x14]
shr esi, 8
mov eax, esi
mov byte [ecx - 1], al
dec ecx
lea esi, [ecx - 1]
mov edi, dword [esp + 0x14]
shr edi, 0x10
mov eax, edi
mov byte [ecx - 1], al
lea ecx, [esi - 1]
mov eax, dword [esp + 0x14]
shr eax, 0x18
mov byte [esi - 1], al
lea edi, [ecx - 1]
mov byte [ecx - 1], dl
lea ecx, [edi - 1]
mov esi, edx
shr esi, 8
mov eax, esi
mov byte [edi - 1], al
lea edi, [ecx - 1]
mov esi, edx
shr esi, 0x10
mov eax, esi
mov byte [ecx - 1], al
shr edx, 0x18
mov byte [edi - 1], dl
mov eax, ebp
mov edx, ebx
jmp 0x534520
mov eax, edi
shr eax, 0x18
mov byte [esp + 0x14], al
mov edx, edi
shr edx, 0x10
mov byte [esp + 0x18], dl
mov ebx, edi
shr ebx, 8
mov byte [esp + 0x28], bl
mov ebp, edi
mov edi, ecx
shr edi, 0x18
mov ebx, ecx
shr ebx, 0x10
mov edx, ecx
shr edx, 8
jmp 0x5342d3
mov dword [esp + 0x14], ebx
jmp 0x534226
mov dword [esp + 0x14], ebx
jmp 0x534475
mov ebx, eax
xor esi, esi
xor eax, eax
jmp 0x5345df
xor esi, esi
jmp 0x534596
xor esi, esi
xor edx, edx
jmp 0x5345cf
mov edx, eax
xor esi, esi
xor ebx, ebx
jmp 0x5345be
xor esi, esi
jmp 0x5345b6
mov ebx, eax
xor edx, edx
jmp 0x5345a3
mov esi, ecx
jmp 0x53460a
mov edi, ecx
jmp 0x53461d
mov edi, ecx
jmp 0x534637