Function at 0x14003b8a0
Capabilities:
Hash data using sha1

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r15
sub rsp, 0x20
mov edi, edx
mov r15d, edx
shr edi, 4
mov rbx, rcx
and edi, 1
test dl, 0x20
jne 0x14003ac87
cmp byte [rcx + 0x188], 0
je 0x14003ac8a
or edi, 2
lea rsi, [rcx + 0x1b0]
mov qword [rsp + 0x60], r14
xor ebp, ebp
cmp word [rsi], bp
je 0x14003acbe
cmp qword [rcx + 0x1a0], rbp
je 0x14003ae23
test byte [rcx + 0x2b4], 2
jne 0x14003acbe
mov eax, edi
and eax, 2
jne 0x14003ae28
mov rcx, qword [rbx + 0x2b8]
test rcx, rcx
je 0x14003ad33
mov rax, qword [rbx + 0x48]
test rax, rax
jne 0x14003acd7
mov rax, qword [rbx + 0x28]
lea rsi, [rcx + rax]
cmp byte [rbx + 0x188], bpl
je 0x14003acfb
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 0xa8]
call qword [case.0x14003c8e9.0]
test al, al
je 0x14003ad05
mov rax, qword [rsi]
mov qword [rbx + 0x168], rax
cmp byte [rbx + 0x188], bpl
je 0x14003ad25
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 0xa8]
call qword [case.0x14003c8e9.0]
test al, al
jne 0x14003ad33
and edi, 2
cmovne rbp, rsi
mov qword [rbx + 0x170], rbp
cmp byte [rbx + 0x188], 0
je 0x14003adc3
cmp qword [rbx + 0x180], 0
je 0x14003ae0e
cmp qword [rbx + 0x1a0], 0
jne 0x14003ad68
mov rcx, rbx
call fcn.14003b060
test al, al
je 0x14003ae0e
cmp qword [rbx + 0x2c0], 0xffffffffffffffff
je 0x14003ae0e
mov rax, qword [rbx + 0x1a8]
test rax, rax
jne 0x14003ada8
lea r8, [rbx + 0x230]
cmp word [r8], ax
je 0x14003ae0e
xor edx, edx
mov ecx, 0x100002
call qword [sym.imp.KERNEL32.dll_OpenEventW]
mov qword [rbx + 0x1a8], rax
test rax, rax
je 0x14003ae0e
mov rcx, qword [rbx + 0x48]
test rcx, rcx
jne 0x14003adb5
mov rcx, qword [rbx + 0x28]
add rcx, qword [rbx + 0x2c0]
mov qword [rbx + 0x178], rcx
cmp qword [rbx + 8], 0
je 0x14003af2d
cmp byte [rbx + 0x188], 0
jne 0x14003af2d
cmp qword [rbx + 0x50], 0
jne 0x14003af2d
cmp qword [rbx + 0x78], 0
jne 0x14003aee8
mov rax, qword [rbx + 0x58]
lea rcx, [rbx + 0x58]
mov edx, r15d
mov rax, qword [rax + 0x18]
call qword [case.0x14003c8e9.0]
test eax, eax
je 0x14003aee8
mov eax, 0x1b5b
mov r14, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov eax, edi
and eax, 2
test rsi, rsi
je 0x14003aed9
test edi, edi
je 0x14003aed9
mov ecx, 2
test eax, eax
mov r14d, 4
mov r8, rsi
cmovne r14d, ecx
xor edx, edx
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_OpenFileMappingW]
test rax, rax
jne 0x14003ae82
lea edx, [rax + 0x5c]
mov rcx, rsi
call qword [sym.imp.VCRUNTIME140.dll_wcsrchr]
test rax, rax
je 0x14003ae0e
lea r8, [rax + 2]
xor edx, edx
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_OpenFileMappingW]
test rax, rax
je 0x14003ae0e
lea r9, [rsp + 0x50]
mov r8d, r14d
xor edx, edx
mov rcx, rax
call fcn.140191700
mov rsi, rax
test rax, rax
je 0x14003ae0e
mov rcx, qword [rbx + 0x1a0]
test rcx, rcx
je 0x14003aeb1
call fcn.140191a00
mov rax, qword [rsp + 0x50]
lea rcx, [rbx + 0x20]
mov qword [rbx + 0x48], rax
mov qword [rbx + 0x1a0], rsi
mov dword [rbx + 0x2b4], edi
mov qword [rbx + 0x40], rbp
call fcn.140150030
jmp 0x14003acbe
mov ecx, 0xa
call fcn.14018f3e0
jmp 0x14003ae0e
mov rax, qword [rbx + 0x58]
lea rcx, [rbx + 0x58]
mov rax, qword [rax + 0x48]
call qword [case.0x14003c8e9.0]
cmp rax, 0xffffffffffffffff
jne 0x14003af15
mov eax, 0x1388
mov r14, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp qword [rbx + 0x48], 0
mov qword [rbx + 0xd0], rax
jne 0x14003af2d
cmp rax, qword [rbx + 0x40]
jge 0x14003af2d
mov qword [rbx + 0x40], rax
mov edx, r15d
mov rcx, rbx
mov r14, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop rdi
pop rsi
pop rbp
pop rbx
jmp method.CSynchronizedTempStream.virtual_24
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x30
mov edi, edx
mov rbx, rcx
bt edx, 0x13
jae 0x14003b8bc
mov byte [rcx + 0x188], 1
cmp dword [rcx + 0xd8], 0
je 0x14003b8d5
mov eax, 0x232d
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov qword [rsp + 0x40], rsi
xor esi, esi
mov dword [rcx + 0xc0], edi
mov qword [rcx + 0xc8], rsi
test dil, 0x20
je 0x14003b9a9
mov qword [rcx + 0x148], 0xffffffffffffffff
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x14003b95c
mov r8d, dword [rcx]
test r8d, r8d
je 0x14003b95c
nop
mov eax, dword [rcx + 4]
lea rdx, [rcx + 8]
add rdx, rax
cmp r8d, 0xf
je 0x14003b92d
mov r8d, dword [rdx]
mov rcx, rdx
test r8d, r8d
jne 0x14003b910
jmp 0x14003b95c
mov r8, rdx
test rdx, rdx
jne 0x14003b93a
mov r8, rsi
jmp 0x14003b957
cmp dword [rdx], esi
je 0x14003b950
nop
mov eax, dword [r8 + 4]
add r8, 8
add r8, rax
cmp dword [r8], esi
jne 0x14003b940
sub r8, rdx
add r8, 8
call sub.VCRUNTIME140.dll_memmove
bt edi, 0x12
jae 0x14003b9a9
mov dword [rbx + 0xe0], 0x67452301
mov dword [rbx + 0xe4], 0xefcdab89
mov dword [rbx + 0xe8], 0x98badcfe
mov dword [rbx + 0xec], 0x10325476
mov dword [rbx + 0xf0], 0xc3d2e1f0
mov qword [rbx + 0xf8], rsi
mov qword [rbx + 0x100], rsi
mov qword [rbx + 0x148], rsi
mov rax, qword [rbx + 0x168]
mov dword [rbx + 0xd8], 1
cmp rax, 0xffffffffffffffff
je 0x14003b9e2
mov qword [rbx + 0xd0], rax
cmp qword [rbx + 0x48], rsi
jne 0x14003b9d7
cmp rax, qword [rbx + 0x40]
jge 0x14003b9d7
mov qword [rbx + 0x40], rax
mov qword [rbx + 0x168], 0xffffffffffffffff
test dil, dil
jns 0x14003ba1f
mov rax, qword [rbx]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
mov rax, qword [rax + 0x38]
call qword [case.0x14003c8e9.0]
test rax, rax
je 0x14003ba1f
mov dword [rbx + 0xd8], esi
mov eax, 0x232a
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov rbx, qword [rsp + 0x48]
mov eax, esi
mov rsi, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret