Function at 0x47fba0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rdi, qword [rsp + 0xc0]
mov r10d, dword [rdi + 4]
mov eax, dword [rdi]
mov rbx, rdx
mov esi, r8d
bswap r10d
mov r14, r9
mov edx, dword [rsp + 0xc8]
mov qword [rsp + 0xa0], rcx
lea ecx, [rsi - 8]
mov r13d, r10d
mov dword [rsp + 0x30], ecx
bswap eax
test edx, edx
je 0x47fce8
test ecx, ecx
js 0x47fcae
shr ecx, 3
mov r15, qword [rsp + 0xa0]
mov edx, r10d
mov ebp, ecx
lea rcx, [rcx*8 + 8]
mov qword [rsp + 0x28], rcx
lea r12, [rbx + rcx]
lea rcx, [rsp + 0x48]
mov r13, rcx
nop
mov r8d, dword [r15 + 4]
mov r9d, dword [r15]
mov rcx, r13
add rbx, 8
add r15, 8
bswap r8d
xor edx, r8d
bswap r9d
xor eax, r9d
mov dword [rsp + 0x4c], edx
mov rdx, r14
mov dword [rsp + 0x48], eax
call sym.IDEA_encrypt
mov eax, dword [rsp + 0x48]
mov edx, eax
mov byte [rbx - 6], ah
shr edx, 0x18
mov byte [rbx - 5], al
mov byte [rbx - 8], dl
mov edx, eax
shr edx, 0x10
mov byte [rbx - 7], dl
mov edx, dword [rsp + 0x4c]
mov r8d, edx
mov byte [rbx - 2], dh
shr r8d, 0x18
mov byte [rbx - 4], r8b
mov r8d, edx
shr r8d, 0x10
mov byte [rbx - 3], r8b
mov byte [rbx - 1], dl
cmp rbx, r12
jne 0x47fc20
mov r13d, edx
mov edx, ebp
mov rcx, qword [rsp + 0x28]
add qword [rsp + 0xa0], rcx
neg edx
shl edx, 3
lea ecx, [rsi + rdx - 0x10]
mov esi, dword [rsp + 0x30]
add esi, edx
cmp ecx, 0xfffffff8
je 0x47ff90
mov rdx, qword [rsp + 0xa0]
movsxd rcx, ecx
lea rcx, [rdx + rcx + 8]
cmp esi, 7
ja case.0x47fcde.0
lea r9, [0x005dfac0]
movsxd r8, dword [r9 + rsi*4]
add r8, r9
jmp r8
test ecx, ecx
js 0x47ffc8
shr ecx, 3
mov r12, qword [rsp + 0xa0]
mov r15d, r10d
mov dword [rsp + 0xb0], esi
mov dword [rsp + 0x34], ecx
lea rcx, [rcx*8 + 8]
mov qword [rsp + 0x38], rcx
add rcx, rbx
mov rsi, r12
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x48]
mov qword [rsp + 0xc0], rdi
mov r12, rcx
mov edi, eax
nop dword [rax + rax]
mov r8d, dword [rsi + 4]
mov eax, dword [rsi]
mov ebp, r15d
mov rdx, r14
mov rcx, r12
mov r13d, edi
add rbx, 8
add rsi, 8
mov r15d, r8d
bswap eax
mov dword [rsp + 0x48], eax
mov edi, eax
bswap r15d
mov dword [rsp + 0x4c], r15d
call sym.IDEA_encrypt
mov ecx, dword [rsp + 0x48]
mov edx, dword [rsp + 0x4c]
xor ecx, r13d
xor edx, ebp
mov r10d, ecx
mov byte [rbx - 6], ch
shr r10d, 0x18
mov byte [rbx - 5], cl
mov byte [rbx - 8], r10b
mov r10d, ecx
mov ecx, edx
shr ecx, 0x18
mov byte [rbx - 2], dh
shr r10d, 0x10
mov byte [rbx - 4], cl
mov ecx, edx
mov byte [rbx - 7], r10b
shr ecx, 0x10
mov byte [rbx - 3], cl
mov byte [rbx - 1], dl
cmp rbx, qword [rsp + 0x28]
jne 0x47fd38
mov rcx, qword [rsp + 0x38]
add qword [rsp + 0xa0], rcx
mov eax, edi
mov r13d, r15d
mov ecx, dword [rsp + 0x34]
mov esi, dword [rsp + 0xb0]
mov rdi, qword [rsp + 0xc0]
neg ecx
shl ecx, 3
lea r12d, [rsi + rcx - 0x10]
mov esi, dword [rsp + 0x30]
add esi, ecx
cmp r12d, 0xfffffff8
je 0x47fe97
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0xa0]
lea rcx, [rsp + 0x48]
movsxd r12, r12d
mov edx, dword [rax]
mov ebp, dword [rax + 4]
bswap edx
mov dword [rsp + 0x48], edx
mov r15d, edx
mov rdx, r14
bswap ebp
mov dword [rsp + 0x4c], ebp
call sym.IDEA_encrypt
mov eax, dword [rsp + 0x28]
xor r13d, dword [rsp + 0x4c]
lea rdx, [rbx + r12 + 8]
xor eax, dword [rsp + 0x48]
cmp esi, 7
ja case.0x47fe48.0
lea r8, [0x005dfae0]
movsxd rcx, dword [r8 + rsi*4]
add rcx, r8
jmp rcx
mov ecx, r13d
sub rdx, 1
mov byte [rdx], ch
mov ecx, r13d
sub rdx, 1
shr ecx, 0x10
mov byte [rdx], cl
mov r10d, r13d
lea rcx, [rdx - 1]
shr r10d, 0x18
mov byte [rdx - 1], r10b
mov byte [rcx - 1], al
lea rdx, [rcx - 1]
mov byte [rdx - 1], ah
lea rcx, [rdx - 1]
mov r8d, eax
lea rdx, [rcx - 1]
shr r8d, 0x10
mov byte [rcx - 1], r8b
shr eax, 0x18
mov r13d, ebp
mov byte [rdx - 1], al
mov eax, r15d
mov r10d, r13d
bswap eax
mov dword [rdi], eax
bswap r10d
mov dword [rdi + 4], r10d
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r9d, r9d
movzx r8d, byte [rcx - 1]
sub rcx, 1
shl r8d, 0x10
or r8d, r9d
lea r9, [rcx - 1]
movzx ecx, byte [rcx - 1]
shl ecx, 0x18
or ecx, r8d
xor r13d, ecx
lea rcx, [r9 - 1]
movzx r9d, byte [r9 - 1]
movzx r8d, byte [rcx - 1]
lea r11, [rcx - 1]
shl r8d, 8
or r9d, r8d
movzx r8d, byte [r11 - 1]
lea rcx, [r11 - 1]
shl r8d, 0x10
or r8d, r9d
movzx ecx, byte [rcx - 1]
shl ecx, 0x18
or ecx, r8d
xor eax, ecx
mov rdx, r14
lea rcx, [rsp + 0x48]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x4c], r13d
call sym.IDEA_encrypt
mov eax, dword [rsp + 0x48]
mov edx, eax
movzx ecx, ah
mov esi, eax
mov r8d, eax
bswap edx
mov dword [rbx], edx
mov edx, dword [rsp + 0x4c]
mov r14d, eax
shr esi, 0x18
mov r11d, ecx
shr r8d, 0x10
mov r10d, edx
mov eax, edx
mov ecx, edx
shr eax, 0x18
bswap r10d
mov dword [rbx + 4], r10d
shr ecx, 0x10
mov ebp, eax
movzx eax, dh
mov r9d, eax
mov byte [rdi], sil
mov byte [rdi + 1], r8b
mov byte [rdi + 2], r11b
mov byte [rdi + 3], r14b
mov byte [rdi + 4], bpl
mov byte [rdi + 5], cl
mov byte [rdi + 6], r9b
mov byte [rdi + 7], dl
jmp 0x47fea5
movzx ecx, ah
mov esi, eax
mov r8d, eax
mov r14d, eax
mov eax, r13d
mov ebx, r13d
mov r11d, ecx
mov ecx, r13d
shr eax, 0x18
shr esi, 0x18
mov edx, r13d
shr r8d, 0x10
mov ebp, eax
movzx eax, bh
shr ecx, 0x10
mov r9d, eax
jmp 0x47ff6e
mov r12d, ecx
jmp 0x47fde5
xor r8d, r8d
jmp 0x47ff0d
mov r11, rcx
xor r9d, r9d
jmp 0x47fefd
xor r9d, r9d
jmp 0x47feed
mov r9, rcx
jmp 0x47fee4
xor r8d, r8d
jmp 0x47fed3
movzx r8d, byte [rcx - 1]
sub rcx, 1
mov r9d, r8d
shl r9d, 8
jmp 0x47fec3
mov rcx, rdx
jmp 0x47fe7c
mov rcx, rdx
jmp 0x47fe6e
mov r13d, ebp
mov eax, r15d
jmp 0x47fe97