Function at 0x140004330
Capabilities:
Encode data using xor
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
movaps xmmword [rsp + 0x60], xmm7
movaps xmmword [rsp + 0x50], xmm6
mov dword [rsp + 0x2c], r9d
mov rdi, rcx
mov ebx, dword [rsp + 0xe0]
call sym.__crypto::hmac::Hmac_D__as_crypto::mac::Mac_::input::hc801499c3531a46e
bswap ebx
mov dword [rsp + 0x4c], ebx
cmp byte [rdi + 0xa8], 0
jne 0x140004808
cmp byte [rdi + 0xa0], 0
jne 0x140004818
mov rax, qword [rdi + 0x30]
add rax, 0x20
jb 0x140004832
mov r14, qword [rsp + 0x100]
mov r15, qword [rsp + 0xf8]
mov qword [rdi + 0x30], rax
lea rbx, [rdi + 0x80]
mov qword [rsp + 0x30], rbx
lea r12, [rdi + 0x38]
lea rdx, [rsp + 0x4c]
lea r9, [rsp + 0x30]
mov r8d, 4
mov rcx, r12
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
mov rcx, rdi
mov rdx, r15
mov r8, r14
call sym.__crypto::hmac::Hmac_D__as_crypto::mac::Mac_::raw_result::h799db1a37f1e2723
mov qword [rdi + 0x30], 0
mov qword [rdi + 0x78], 0
movaps xmm6, xmmword [0x14012a250]
movups xmmword [rdi + 0x90], xmm6
movaps xmm7, xmmword [0x14012a260]
movups xmmword [rdi + 0x80], xmm7
mov byte [rdi + 0xa0], 0
mov r8, qword [rdi + 0x10]
mov rax, r8
shr rax, 0x3d
jne 0x1400047ee
mov rdx, qword [rdi]
lea rax, [r8*8]
mov qword [rdi + 0x30], rax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x30], rbx
lea r9, [rsp + 0x30]
mov qword [rsp + 0x38], r12
mov rcx, r12
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
mov byte [rdi + 0xa8], 0
cmp dword [rsp + 0x2c], 1
jbe 0x1400047d3
mov rbx, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xe8]
movabs r12, 0x2000000000000000
mov rcx, rdi
mov rdx, r15
mov r8, r14
call sym.__crypto::hmac::Hmac_D__as_crypto::mac::Mac_::input::hc801499c3531a46e
mov rcx, rdi
mov rdx, r13
mov r8, rbx
call sym.__crypto::hmac::Hmac_D__as_crypto::mac::Mac_::raw_result::h799db1a37f1e2723
mov qword [rdi + 0x30], 0
mov qword [rdi + 0x78], 0
movups xmmword [rdi + 0x90], xmm6
movups xmmword [rdi + 0x80], xmm7
mov byte [rdi + 0xa0], 0
mov r8, qword [rdi + 0x10]
cmp r8, r12
jae 0x1400047ee
mov rdx, qword [rdi]
lea rax, [r8*8]
mov qword [rdi + 0x30], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
mov byte [rdi + 0xa8], 0
cmp r14, rbx
cmovae r14, rbx
test r14, r14
je 0x140004507
cmp r14, 8
jae 0x140004517
xor eax, eax
jmp 0x1400045a0
cmp dword [rsp + 0x2c], 2
ja 0x14000472b
jmp 0x1400047d3
cmp r14, 0x20
jae 0x140004521
xor eax, eax
jmp 0x14000456c
mov rax, r14
and rax, 0xffffffffffffffe0
xor ecx, ecx
nop word [rax + rax]
movups xmm0, xmmword [r13 + rcx]
movups xmm1, xmmword [r13 + rcx + 0x10]
movups xmm2, xmmword [r15 + rcx]
xorps xmm2, xmm0
movups xmm0, xmmword [r15 + rcx + 0x10]
xorps xmm0, xmm1
movups xmmword [r15 + rcx], xmm2
movups xmmword [r15 + rcx + 0x10], xmm0
add rcx, 0x20
cmp rax, rcx
jne 0x140004530
cmp r14, rax
je 0x1400045b6
test r14b, 0x18
je 0x1400045a0
mov rcx, rax
mov rax, r14
and rax, 0xfffffffffffffff8
nop word cs:[rax + rax]
mov rdx, qword [r13 + rcx]
xor qword [r15 + rcx], rdx
add rcx, 8
cmp rax, rcx
jne 0x140004580
cmp r14, rax
je 0x1400045b6
nop word [rax + rax]
movzx ecx, byte [r13 + rax]
xor byte [r15 + rax], cl
lea rcx, [rax + 1]
mov rax, rcx
cmp r14, rcx
jne 0x1400045a0
cmp dword [rsp + 0x2c], 2
jbe 0x1400047d3
test r14, r14
je 0x14000472b
mov r12, r14
and r12, 0xffffffffffffffe0
mov rbp, r14
and rbp, 0xfffffffffffffff8
mov esi, 2
jmp 0x1400045ea
cmp esi, dword [rsp + 0x2c]
je 0x1400047d3
mov rcx, rdi
mov rdx, r13
mov rbx, qword [rsp + 0xf0]
mov r8, rbx
call sym.__crypto::hmac::Hmac_D__as_crypto::mac::Mac_::input::hc801499c3531a46e
mov rcx, rdi
mov rdx, r13
mov r8, rbx
call sym.__crypto::hmac::Hmac_D__as_crypto::mac::Mac_::raw_result::h799db1a37f1e2723
mov qword [rdi + 0x30], 0
mov qword [rdi + 0x78], 0
movups xmmword [rdi + 0x90], xmm6
movups xmmword [rdi + 0x80], xmm7
mov byte [rdi + 0xa0], 0
mov r8, qword [rdi + 0x10]
movabs rax, 0x2000000000000000
cmp r8, rax
jae 0x1400047ee
inc esi
mov rdx, qword [rdi]
lea rax, [r8*8]
mov qword [rdi + 0x30], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x38]
lea r9, [rsp + 0x30]
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
mov byte [rdi + 0xa8], 0
cmp r14, 8
jae 0x140004690
xor ecx, ecx
jmp 0x140004710
xor eax, eax
cmp r14, 0x20
jb 0x1400046f0
nop dword [rax + rax]
movups xmm0, xmmword [r13 + rax]
movups xmm1, xmmword [r13 + rax + 0x10]
movups xmm2, xmmword [r15 + rax]
xorps xmm2, xmm0
movups xmm0, xmmword [r15 + rax + 0x10]
xorps xmm0, xmm1
movups xmmword [r15 + rax], xmm2
movups xmmword [r15 + rax + 0x10], xmm0
add rax, 0x20
cmp r12, rax
jne 0x1400046a0
cmp r14, r12
je 0x1400045e0
mov rax, r12
mov rcx, r12
test r14b, 0x18
je 0x140004710
nop word cs:[rax + rax]
mov rcx, qword [r13 + rax]
xor qword [r15 + rax], rcx
add rax, 8
cmp rbp, rax
jne 0x1400046f0
mov rcx, rbp
cmp r14, rbp
je 0x1400045e0
nop
movzx eax, byte [r13 + rcx]
xor byte [r15 + rcx], al
lea rax, [rcx + 1]
mov rcx, rax
cmp r14, rax
jne 0x140004710
jmp 0x1400045e0
add dword [rsp + 0x2c], 0xfffffffe
lea r14, [rsp + 0x30]
nop word cs:[rax + rax]
mov rcx, rdi
mov rdx, r13
mov rbx, qword [rsp + 0xf0]
mov r8, rbx
call sym.__crypto::hmac::Hmac_D__as_crypto::mac::Mac_::input::hc801499c3531a46e
mov rcx, rdi
mov rdx, r13
mov r8, rbx
call sym.__crypto::hmac::Hmac_D__as_crypto::mac::Mac_::raw_result::h799db1a37f1e2723
mov qword [rdi + 0x30], 0
mov qword [rdi + 0x78], 0
movups xmmword [rdi + 0x90], xmm6
movups xmmword [rdi + 0x80], xmm7
mov byte [rdi + 0xa0], 0
mov r8, qword [rdi + 0x10]
movabs rax, 0x2000000000000000
cmp r8, rax
jae 0x1400047ee
mov rdx, qword [rdi]
lea rax, [r8*8]
mov qword [rdi + 0x30], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x38]
mov r9, r14
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
mov byte [rdi + 0xa8], 0
dec dword [rsp + 0x2c]
jne 0x140004740
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x60]
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0c0]
mov edx, 0x19
call sym.std::panicking::begin_panic::h8a6b93740170dc30
ud2
lea rcx, [0x14012b866]
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_hmac.rsassertion_failed:__self.finished
jmp 0x140004826
lea rcx, str.assertion_failed:__self.finished
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_sha2.rs
mov edx, 0x20
call dbg.panic
ud2
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0a8]
mov edx, 0x19
call dbg.expect_failed
ud2