Function at 0x41f260
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
test rcx, rcx
mov rsi, rcx
mov rdi, rdx
mov ebp, r8d
mov rbx, r9
je 0x41fb6d
test rdx, rdx
je 0x41fb54
test r9, r9
je 0x41fb3b
mov ecx, dword [r9]
call fcn.0041e680
test eax, eax
mov r12d, eax
jne 0x41f564
mov ecx, dword [rbx + 4]
mov r12d, 0x10
lea eax, [rcx - 1]
cmp eax, 0x7f
ja 0x41f564
movsxd rax, dword [rbx + 8]
cmp eax, 0x80
ja 0x41f564
mov r12d, ecx
and r12d, 7
jne 0x41f580
movsxd rdx, dword [rbx]
mov r13, qword [0x00461eb0]
lea r8, [rdx + rdx*2]
shl r8, 6
cmp qword [r13 + r8 + 0x70], 0
je 0x41f357
cmp ecx, ebp
ja 0x41f357
cmp ecx, eax
jg 0x41f740
cmp ebp, ecx
jb 0x41f357
xor edx, edx
movsxd r10, dword [rbx]
mov eax, ebp
div ecx
mov ecx, dword [rbx + 0xc]
lea r9, [rbx + 0x118]
mov rdx, rdi
lea r11, [r10 + r10*2]
mov qword [rsp + 0x28], r9
lea r9, [rbx + 0x14]
mov dword [rsp + 0x20], ecx
mov rcx, rsi
shl r11, 6
mov r8d, eax
call qword [r13 + r11 + 0x70]
test eax, eax
jne 0x41f561
mov ecx, dword [rbx + 4]
mov eax, ebp
xor edx, edx
div ecx
imul eax, ecx
mov ebp, edx
add rsi, rax
add rdi, rax
test ebp, ebp
lea r15, [rbx + 0x118]
lea r14, [rbx + 0x14]
jne 0x41f3a4
jmp 0x41f564
test r9d, r9d
je 0x41f51d
lea edx, [r9 + 1]
movzx eax, byte [rsi]
sub ebp, 1
add rdi, 1
add rsi, 1
mov dword [rbx + 8], edx
xor al, byte [rbx + r9 + 0x94]
mov byte [rdi - 1], al
test ebp, ebp
je 0x41f564
mov ecx, dword [rbx + 4]
movsxd r9, dword [rbx + 8]
cmp r9d, ecx
jne 0x41f370
mov r8d, dword [rbx + 0xc]
mov r9d, dword [rbx + 0x10]
test r8d, r8d
jne 0x41f590
test r9d, r9d
jle 0x41f4f2
add byte [rbx + 0x14], 1
jne 0x41f4f2
lea rax, [rbx + 0x15]
sub r9d, 1
lea r10, [rax + r9]
and r9d, 7
je 0x41f4af
movzx ecx, byte [rbx + 0x15]
lea rax, [rbx + 0x16]
lea r11d, [rcx + 1]
test r11b, r11b
mov byte [rbx + 0x15], r11b
jne 0x41f4f2
cmp r9, 1
je 0x41f4af
cmp r9, 2
je 0x41f49a
cmp r9, 3
je 0x41f489
cmp r9, 4
je 0x41f474
cmp r9, 5
je 0x41f45b
cmp r9, 6
je 0x41f444
movzx r9d, byte [rbx + 0x16]
add rax, 1
lea edx, [r9 + 1]
test dl, dl
mov byte [rbx + 0x16], dl
jne 0x41f4f2
movzx r8d, byte [rax]
add rax, 1
lea ecx, [r8 + 1]
mov byte [rax - 1], cl
test cl, cl
jne 0x41f4f2
movzx r11d, byte [rax]
add rax, 1
add r11d, 1
mov byte [rax - 1], r11b
test r11b, r11b
jne 0x41f4f2
movzx r9d, byte [rax]
add rax, 1
add r9d, 1
mov byte [rax - 1], r9b
test r9b, r9b
jne 0x41f4f2
movzx edx, byte [rax]
add rax, 1
add edx, 1
mov byte [rax - 1], dl
test dl, dl
jne 0x41f4f2
movzx r8d, byte [rax]
add rax, 1
add r8d, 1
mov byte [rax - 1], r8b
test r8b, r8b
jne 0x41f4f2
cmp r10, rax
je 0x41f4f2
add byte [rax], 1
jne 0x41f4f2
add byte [rax + 1], 1
jne 0x41f4f2
add byte [rax + 2], 1
jne 0x41f4f2
add byte [rax + 3], 1
jne 0x41f4f2
add byte [rax + 4], 1
jne 0x41f4f2
add byte [rax + 5], 1
jne 0x41f4f2
add byte [rax + 6], 1
jne 0x41f4f2
movzx ecx, byte [rax + 7]
add rax, 8
lea r11d, [rcx + 1]
mov byte [rax - 1], r11b
test r11b, r11b
je 0x41f4af
movsxd r10, dword [rbx]
lea rdx, [rbx + 0x94]
mov r8, r15
mov rcx, r14
lea rax, [r10 + r10*2]
shl rax, 6
call qword [r13 + rax + 0x28]
test eax, eax
jne 0x41f561
mov ecx, dword [rbx + 4]
mov dword [rbx + 8], 0
xor r9d, r9d
cmp ecx, ebp
ja 0x41f379
test ecx, ecx
jle 0x41f54e
lea r11, [rbx + 0x94]
movsxd r10, r9d
add r9d, 8
mov rcx, qword [rsi + r10]
xor rcx, qword [r11 + r10]
mov qword [rdi + r10], rcx
mov ecx, dword [rbx + 4]
cmp ecx, r9d
jg 0x41f533
movsxd r9, ecx
sub ebp, ecx
mov dword [rbx + 8], ecx
add rsi, r9
add rdi, r9
jmp 0x41f399
mov r12d, eax
mov eax, r12d
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r12d, 0x10
jmp 0x41f564
lea eax, [rcx - 1]
cmp eax, r9d
jl 0x41f4f2
cdqe
movzx r10d, byte [rbx + rax + 0x14]
lea r11d, [r10 + 1]
test r11b, r11b
mov byte [rbx + rax + 0x14], r11b
jne 0x41f4f2
sub ecx, 2
movsxd rcx, ecx
mov edx, ecx
sub edx, r9d
add edx, 1
and edx, 7
je 0x41f6b6
cmp r9d, ecx
jg 0x41f4f2
movzx r8d, byte [rbx + rcx + 0x14]
lea eax, [r8 + 1]
mov byte [rbx + rcx + 0x14], al
sub rcx, 1
test al, al
jne 0x41f4f2
cmp edx, 1
je 0x41f6b6
cmp edx, 2
je 0x41f69a
cmp edx, 3
je 0x41f682
cmp edx, 4
je 0x41f666
cmp edx, 5
je 0x41f64e
cmp edx, 6
je 0x41f632
movzx r10d, byte [rbx + rcx + 0x14]
add r10d, 1
mov byte [rbx + rcx + 0x14], r10b
sub rcx, 1
test r10b, r10b
jne 0x41f4f2
movzx r11d, byte [rbx + rcx + 0x14]
add r11d, 1
mov byte [rbx + rcx + 0x14], r11b
sub rcx, 1
test r11b, r11b
jne 0x41f4f2
movzx edx, byte [rbx + rcx + 0x14]
add edx, 1
mov byte [rbx + rcx + 0x14], dl
sub rcx, 1
test dl, dl
jne 0x41f4f2
movzx r8d, byte [rbx + rcx + 0x14]
add r8d, 1
mov byte [rbx + rcx + 0x14], r8b
sub rcx, 1
test r8b, r8b
jne 0x41f4f2
movzx eax, byte [rbx + rcx + 0x14]
add eax, 1
mov byte [rbx + rcx + 0x14], al
sub rcx, 1
test al, al
jne 0x41f4f2
movzx r10d, byte [rbx + rcx + 0x14]
add r10d, 1
mov byte [rbx + rcx + 0x14], r10b
sub rcx, 1
test r10b, r10b
jne 0x41f4f2
cmp r9d, ecx
jg 0x41f4f2
movzx r11d, byte [rbx + rcx + 0x14]
lea rdx, [rcx - 1]
add r11d, 1
test r11b, r11b
mov byte [rbx + rcx + 0x14], r11b
jne 0x41f4f2
add byte [rbx + rdx + 0x14], 1
jne 0x41f4f2
add byte [rbx + rcx + 0x12], 1
jne 0x41f4f2
add byte [rbx + rcx + 0x11], 1
jne 0x41f4f2
add byte [rbx + rcx + 0x10], 1
jne 0x41f4f2
add byte [rbx + rcx + 0xf], 1
jne 0x41f4f2
add byte [rbx + rcx + 0xe], 1
jne 0x41f4f2
movzx r8d, byte [rbx + rcx + 0xd]
add r8d, 1
mov byte [rbx + rcx + 0xd], r8b
sub rcx, 8
test r8b, r8b
je 0x41f6b6
jmp 0x41f4f2
mov r14d, ecx
lea r9, [rbx + 0x118]
lea r10, [rbx + 0x14]
sub r14d, eax
mov qword [rsp + 0xa0], rsi
mov r15, rdi
mov dword [rsp + 0x4c], r14d
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r10
jmp 0x41f7ac
test eax, eax
je 0x41f926
lea r8d, [rax + 1]
movzx r10d, byte [rsi]
sub r14d, 1
add r15, 1
add rsi, 1
mov dword [rbx + 8], r8d
xor r10b, byte [rbx + rax + 0x94]
mov byte [r15 - 1], r10b
mov ecx, dword [rbx + 4]
test r14d, r14d
je 0x41fb20
movsxd rax, dword [rbx + 8]
cmp eax, ecx
jne 0x41f770
mov ecx, dword [rbx + 0xc]
mov edx, dword [rbx + 0x10]
test ecx, ecx
jne 0x41f970
test edx, edx
jle 0x41f8f3
add byte [rbx + 0x14], 1
jne 0x41f8f3
lea r10, [rbx + 0x15]
sub edx, 1
lea r9, [r10 + rdx]
and edx, 7
je 0x41f8aa
movzx eax, byte [rbx + 0x15]
lea r10, [rbx + 0x16]
lea r11d, [rax + 1]
test r11b, r11b
mov byte [rbx + 0x15], r11b
jne 0x41f8f3
cmp rdx, 1
je 0x41f8aa
cmp rdx, 2
je 0x41f897
cmp rdx, 3
je 0x41f882
cmp rdx, 4
je 0x41f86f
cmp rdx, 5
je 0x41f856
cmp rdx, 6
je 0x41f83f
movzx edx, byte [rbx + 0x16]
add r10, 1
add edx, 1
test dl, dl
mov byte [rbx + 0x16], dl
jne 0x41f8f3
movzx ecx, byte [r10]
add r10, 1
add ecx, 1
mov byte [r10 - 1], cl
test cl, cl
jne 0x41f8f3
movzx r8d, byte [r10]
add r10, 1
add r8d, 1
mov byte [r10 - 1], r8b
test r8b, r8b
jne 0x41f8f3
movzx eax, byte [r10]
add r10, 1
add eax, 1
mov byte [r10 - 1], al
test al, al
jne 0x41f8f3
movzx r11d, byte [r10]
add r10, 1
add r11d, 1
mov byte [r10 - 1], r11b
test r11b, r11b
jne 0x41f8f3
movzx edx, byte [r10]
add r10, 1
add edx, 1
mov byte [r10 - 1], dl
test dl, dl
jne 0x41f8f3
cmp r9, r10
je 0x41f8f3
add byte [r10], 1
jne 0x41f8f3
add byte [r10 + 1], 1
jne 0x41f8f3
add byte [r10 + 2], 1
jne 0x41f8f3
add byte [r10 + 3], 1
jne 0x41f8f3
add byte [r10 + 4], 1
jne 0x41f8f3
add byte [r10 + 5], 1
jne 0x41f8f3
add byte [r10 + 6], 1
jne 0x41f8f3
movzx ecx, byte [r10 + 7]
add r10, 8
add ecx, 1
mov byte [r10 - 1], cl
test cl, cl
je 0x41f8aa
movsxd r9, dword [rbx]
lea rdx, [rbx + 0x94]
mov r8, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
lea rax, [r9 + r9*2]
shl rax, 6
call qword [r13 + rax + 0x28]
test eax, eax
jne 0x41f561
mov ecx, dword [rbx + 4]
mov dword [rbx + 8], 0
xor eax, eax
cmp ecx, r14d
ja 0x41f778
test ecx, ecx
jle 0x41f959
lea r9, [rbx + 0x94]
nop dword [rax]
movsxd rdx, eax
add eax, 8
mov rcx, qword [rsi + rdx]
xor rcx, qword [r9 + rdx]
mov qword [r15 + rdx], rcx
mov ecx, dword [rbx + 4]
cmp ecx, eax
jg 0x41f940
movsxd rax, ecx
sub r14d, ecx
mov dword [rbx + 8], ecx
add rsi, rax
add r15, rax
jmp 0x41f79f
lea r8d, [rax - 1]
cmp r8d, edx
jl 0x41f8f3
movsxd r9, r8d
movzx r11d, byte [rbx + r9 + 0x14]
lea r10d, [r11 + 1]
test r10b, r10b
mov byte [rbx + r9 + 0x14], r10b
jne 0x41f8f3
sub eax, 2
cdqe
mov ecx, eax
sub ecx, edx
add ecx, 1
and ecx, 7
je 0x41fa9b
cmp edx, eax
jg 0x41f8f3
movzx r8d, byte [rbx + rax + 0x14]
lea r9d, [r8 + 1]
mov byte [rbx + rax + 0x14], r9b
sub rax, 1
test r9b, r9b
jne 0x41f8f3
cmp ecx, 1
je 0x41fa9b
cmp ecx, 2
je 0x41fa7f
cmp ecx, 3
je 0x41fa63
cmp ecx, 4
je 0x41fa47
cmp ecx, 5
je 0x41fa2f
cmp ecx, 6
je 0x41fa13
movzx r11d, byte [rbx + rax + 0x14]
add r11d, 1
mov byte [rbx + rax + 0x14], r11b
sub rax, 1
test r11b, r11b
jne 0x41f8f3
movzx r10d, byte [rbx + rax + 0x14]
add r10d, 1
mov byte [rbx + rax + 0x14], r10b
sub rax, 1
test r10b, r10b
jne 0x41f8f3
movzx ecx, byte [rbx + rax + 0x14]
add ecx, 1
mov byte [rbx + rax + 0x14], cl
sub rax, 1
test cl, cl
jne 0x41f8f3
movzx r8d, byte [rbx + rax + 0x14]
add r8d, 1
mov byte [rbx + rax + 0x14], r8b
sub rax, 1
test r8b, r8b
jne 0x41f8f3
movzx r9d, byte [rbx + rax + 0x14]
add r9d, 1
mov byte [rbx + rax + 0x14], r9b
sub rax, 1
test r9b, r9b
jne 0x41f8f3
movzx r11d, byte [rbx + rax + 0x14]
add r11d, 1
mov byte [rbx + rax + 0x14], r11b
sub rax, 1
test r11b, r11b
jne 0x41f8f3
cmp edx, eax
jg 0x41f8f3
movzx r10d, byte [rbx + rax + 0x14]
lea rcx, [rax - 1]
add r10d, 1
test r10b, r10b
mov byte [rbx + rax + 0x14], r10b
jne 0x41f8f3
add byte [rbx + rcx + 0x14], 1
jne 0x41f8f3
add byte [rbx + rax + 0x12], 1
jne 0x41f8f3
add byte [rbx + rax + 0x11], 1
jne 0x41f8f3
add byte [rbx + rax + 0x10], 1
jne 0x41f8f3
add byte [rbx + rax + 0xf], 1
jne 0x41f8f3
add byte [rbx + rax + 0xe], 1
jne 0x41f8f3
movzx r8d, byte [rbx + rax + 0xd]
add r8d, 1
mov byte [rbx + rax + 0xd], r8b
sub rax, 8
test r8b, r8b
je 0x41fa9b
jmp 0x41f8f3
movsxd r14, dword [rsp + 0x4c]
mov rsi, qword [rsp + 0xa0]
add rdi, r14
add rsi, r14
sub ebp, r14d
jmp 0x41f301
lea rdx, str.src_modes_ctr_ctr_encrypt.c
lea rcx, [0x0045eb52]
mov r8d, 0x5c
call fcn.0041e640
lea rdx, str.src_modes_ctr_ctr_encrypt.c
lea rcx, str.ct___NULL
mov r8d, 0x5b
call fcn.0041e640
lea rdx, str.src_modes_ctr_ctr_encrypt.c
lea rcx, str.pt___NULL
mov r8d, 0x5a
call fcn.0041e640
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop