Function at 0x180051210
Capabilities:
Hash data with crc32

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov eax, dword [rcx]
lea r9, [0x1800745e0]
movsxd rax, dword [r9 + rax*4]
add rax, r9
jmp rax
mov ecx, edx
call sub.KERNEL32.dll_GetStdHandle
test rax, rax
je 0x180046a90
cmp rax, 0xffffffffffffffff
jne 0x180046b15
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
jmp 0x180046a9a
mov rsi, qword [rcx + 8]
test rsi, rsi
je 0x180046b6f
mov edi, edx
mov qword [rbp], 0
call sub.KERNEL32.dll_GetCurrentProcess
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9, rbp
mov rcx, rax
mov rdx, rsi
mov r8, rax
call sub.KERNEL32.dll_DuplicateHandle
test eax, eax
je 0x180046b59
mov rsi, qword [rbp]
mov edx, edi
jmp 0x180046b71
mov dword [rbp], 0
mov dword [rbp + 0x20], 0
mov word [rbp + 0x24], 0
movaps xmm0, xmmword [0x1800745d0]
movups xmmword [rbp + 0x10], xmm0
cmp edx, 0xfffffff6
sete byte [rbp + 0x20]
mov dword [rbp - 0x30], 0x18
setne byte [rbp + 0x21]
mov qword [rbp - 0x28], 0
mov dword [rbp - 0x20], 1
lea rax, [rbp - 0x30]
mov qword [rbp + 8], rax
lea rcx, [0x180098a33]
mov r8, rbp
mov edx, 7
call fcn.18003a810
mov rdi, rdx
jmp 0x180046afe
mov rsi, r8
cmp edx, 0xfffffff6
setne dl
mov rcx, rbp
call fcn.1800476b0
cmp qword [rbp], 0
mov rbx, qword [rbp + 8]
je 0x180046b9e
mov eax, 1
mov rdi, rbx
jmp 0x180046afe
mov ecx, dword [rcx + 4]
call sub.KERNEL32.dll_GetStdHandle
test rax, rax
jne 0x18004697d
movabs rax, 0x600000002
mov qword [rbp], 1
lea rcx, [rbp + 8]
mov qword [rbp + 8], rax
call fcn.18001c870
jmp 0x180046afa
mov rsi, qword [rcx + 8]
test rsi, rsi
je 0x180046afa
mov qword [rbp], 0
call sub.KERNEL32.dll_GetCurrentProcess
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov r9, rbp
mov rcx, rax
mov rdx, rsi
mov r8, rax
call sub.KERNEL32.dll_DuplicateHandle
test eax, eax
je 0x180046b59
mov rdi, qword [rbp]
jmp 0x180046afc
xor edi, edi
xor eax, eax
mov rdx, rdi
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rbp - 0x30], 0
mov rsi, rax
call sub.KERNEL32.dll_GetCurrentProcess
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
lea r9, [rbp - 0x30]
mov rcx, rax
mov rdx, rsi
mov r8, rax
call sub.KERNEL32.dll_DuplicateHandle
test eax, eax
je 0x180046b59
mov rdi, qword [rbp - 0x30]
jmp 0x180046afc
call sub.KERNEL32.dll_GetLastError
mov edi, eax
shl rdi, 0x20
or rdi, 2
mov eax, 1
jmp 0x180046afe
xor esi, esi
mov ebx, edx
cmp edx, 0xfffffff6
setne dl
mov rcx, rbp
call fcn.1800476b0
cmp qword [rbp], 0
mov rdi, qword [rbp + 8]
je 0x180046bc7
mov rcx, rsi
call sub.KERNEL32.dll_CloseHandle
mov eax, 1
jmp 0x180046afe
mov rdi, qword [rbp + 0x10]
mov rax, rsi
cmp qword [rsi], 0
je 0x180046bb7
mov rcx, qword [rax + 8]
call sub.KERNEL32.dll_CloseHandle
mov rax, rsi
mov qword [rax], 1
mov qword [rax + 8], rbx
jmp 0x180046afc
cmp ebx, 0xfffffff6
mov r13, qword [rbp + 0x10]
mov rbx, rsi
cmovne rbx, rdi
cmovne rdi, rsi
mov r12, qword [0x1800a4040]
test r12, r12
mov qword [rbp - 8], r13
je 0x180046bf1
dec r12
jmp 0x180046c8a
lea rdx, str.RUST_MIN_STACKlibrary_std_src_threadmod.rsfailed_to_spawn_thread
mov rcx, rbp
mov r8d, 0xe
call fcn.18003b6d0
mov rsi, qword [rbp]
movabs rax, 0x8000000000000001
dec rax
cmp rsi, rax
jne 0x180046c24
mov r12d, 0x200000
jmp 0x180046c7e
mov r14, qword [rbp + 8]
mov r8, qword [rbp + 0x10]
lea rcx, [rbp - 0x48]
mov rdx, r14
call fcn.18000ab60
cmp qword [rbp - 0x48], 0
je 0x180046c47
mov r12d, 0x200000
jmp 0x180046c68
mov rdx, qword [rbp - 0x40]
mov r8, qword [rbp - 0x38]
lea rcx, [rbp - 0x48]
call fcn.18000d1a0
cmp byte [rbp - 0x48], 0
mov r12d, 0x200000
jne 0x180046c68
mov r12, qword [rbp - 0x40]
test rsi, rsi
je 0x180046c7e
mov rcx, qword [0x1800a4080]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
lea rax, [r12 + 1]
mov qword [0x1800a4040], rax
mov qword [rbp], 2
mov rcx, rbp
call fcn.18001e910
mov r14, rax
lock inc qword [rax]
jle 0x180046fbc
mov qword [rbp], 1
mov qword [rbp + 8], 1
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
movzx eax, byte [0x1800a40a8]
mov edx, 0x30
xor ecx, ecx
call fcn.18004b1f0
test rax, rax
je 0x180046e5e
mov r15, rax
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmm2, xmmword [rbp + 0x20]
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
lock inc qword [rax]
jle 0x180046fbc
movzx eax, byte [0x1800a4048]
test al, al
je 0x180046d3c
mov byte [0x1800a4048], 1
call fcn.18003f180
test rax, rax
je 0x180046f8a
mov r13, qword [rax]
mov qword [rax], 0
test r13, r13
je 0x180046d3c
lock inc qword [r13]
jle 0x180046fbc
xor esi, esi
jmp 0x180046d4d
movzx eax, byte [0x1800a4048]
mov sil, 1
xor r13d, r13d
test al, al
je 0x180046d78
mov byte [0x1800a4048], 1
call fcn.18003f180
test rax, rax
je 0x180046f4d
mov rcx, qword [rax]
mov qword [rax], r13
test rcx, rcx
je 0x180046d78
lock dec qword [rcx]
jne 0x180046d78
call fcn.18003f2a0
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], rbx
mov qword [rbp - 0x10], rdi
mov qword [rbp - 0x28], r15
mov rcx, qword [r15 + 0x10]
test rcx, rcx
je 0x180046da0
lock inc qword [rcx + 0x18]
jle 0x180046fb3
movzx eax, byte [0x1800a40a8]
mov edx, 0x28
xor ecx, ecx
call fcn.18004b1f0
test rax, rax
je 0x180046e76
mov rsi, rax
mov rax, qword [rbp - 0x10]
mov qword [rsi + 0x20], rax
movups xmm0, xmmword [rbp - 0x30]
movups xmm1, xmmword [rbp - 0x20]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
movzx eax, byte [0x1800a40a8]
mov edx, 0x10
xor ecx, ecx
call fcn.18004b1f0
test rax, rax
je 0x180046e8a
mov r13, rax
mov qword [rax], rsi
lea rax, fcn.1800480b0
mov qword [r13 + 8], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x180048120]
xor ecx, ecx
mov rdx, r12
mov r9, r13
call sub.KERNEL32.dll_CreateThread
test rax, rax
je 0x180046e9e
mov rcx, rax
call sub.KERNEL32.dll_CloseHandle
lock dec qword [r14]
jne 0x180046e43
mov rcx, r14
call fcn.18001e820
lock dec qword [r15]
mov rdi, qword [rbp - 8]
jne 0x180046afc
mov rcx, r15
call fcn.180048060
jmp 0x180046afc
lea rsi, [rbp + 0x10]
mov ecx, 8
mov edx, 0x30
call fcn.1800089f0
jmp 0x180046fbc
mov ecx, 8
mov edx, 0x28
call fcn.1800089f0
jmp 0x180046fbc
mov ecx, 8
mov edx, 0x10
call fcn.1800089f0
jmp 0x180046fbc
mov rax, qword [r13]
mov qword [rbp + 0x30], rax
mov rsi, qword [r13 + 8]
mov rax, qword [rsi]
test rax, rax
je 0x180046eb8
mov rcx, qword [rbp + 0x30]
call rax
cmp qword [rsi + 8], 0
je 0x180046ee4
cmp qword [rsi + 0x10], 0x11
jb 0x180046ed2
mov rax, qword [rbp + 0x30]
mov rax, qword [rax - 8]
mov qword [rbp + 0x30], rax
mov rcx, qword [0x1800a4080]
xor edx, edx
mov r8, qword [rbp + 0x30]
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x1800a4080]
xor edx, edx
mov r8, r13
call sub.KERNEL32.dll_HeapFree
call sub.KERNEL32.dll_GetLastError
mov esi, eax
lock dec qword [r15]
jne 0x180046f0a
mov rcx, r15
call fcn.180048060
shl rsi, 0x20
or rsi, 2
lock dec qword [r14]
jne 0x180046f20
mov rcx, r14
call fcn.18001e820
mov qword [rbp], rsi
lea rax, [0x180097200]
mov qword [rsp + 0x20], rax
lea rcx, [0x1800971e3]
lea r9, fcn.18001c870
mov r8, rbp
mov edx, 0x16
call fcn.18000b220
jmp 0x180046fbc
test sil, sil
jne 0x180046f61
lock dec qword [r13]
jne 0x180046f61
mov rcx, r13
call fcn.18003f2a0
lea rax, str.library_std_srcio_stdio.rs
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructionlibrary_std_src_threadlocal.rs
lea r9, [0x180096518]
mov r8, rbp
mov edx, 0x46
call fcn.18000b220
jmp 0x180046fbc
lea rax, str.library_std_srcio_stdio.rs
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructionlibrary_std_src_threadlocal.rs
lea r9, [0x180096518]
mov r8, rbp
mov edx, 0x46
call fcn.18000b220
jmp 0x180046fbc
add rcx, 0x10
call fcn.18001f050
ud2
mov rcx, qword [rbp + 0xfe8]
call sub.KERNEL32.dll_CloseHandle
mov rcx, rsi
call sub.KERNEL32.dll_CloseHandle
movaps xmm6, xmmword [rbp + 0x1010]
add rsp, 0x10a8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
jmp rax
add ecx, dword [rax - 0x73]
or eax, 0x2be0d
movsxd rax, dword [rcx + rax*4]
add rax, rcx
invalid
jmp rax
enter 0xffffffffffffe0ff, 0x41
movzx eax, byte [rdi + 0x10]
jmp 0x180048832
and al, ch
pop rcx
insd dword [rdi], dx
std
invalid
mov ch, 0
add byte [rax], al
lea rcx, [0x180074608]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
xor eax, eax
jmp 0x180048832
cmp al, 0xb
jne 0x180048847
lea rcx, [rbp + 0xff8]
call fcn.18001c870
jmp 0x180048777
dec dword [rax - 0x39]
test dword [rax + 0x100000f], esi
mov al, 0xf
add byte [rax], al
add dword [rax], eax
add byte [rax], al
mov qword [rbp + 0xfb8], r15
invalid
mov qword [rbp + 0xfb0], 1
mov al, 0xf
add byte [rax], al
add dword [rax], eax
add byte [rax], al
mov qword [rbp + 0xfb8], r15
sldt word [rax]
lea rcx, [rbp + 0xfb8]
lea ecx, [rbp + 0xfb8]
add byte [rax], al
call fcn.18001c870
jmp 0x180048777
invalid
invalid
invalid
invalid
std
invalid
or eax, 0xb0ffffff
and eax, 0x23b0c4eb
mov al, 0x23
mov al, 0x25
jmp 0x180048832
mov al, 0x23
jmp 0x180048832
mov al, 0x24
jmp 0x180048832
mov al, 0x1b
jmp 0x180048832
mov al, 0x22
jmp 0x180048832
mov al, 0x10
jmp 0x180048832
mov al, 0xe
jmp 0x180048832
mov al, 0x21
jmp 0x180048832
mov al, 0xb
jmp 0x180048832
movabs al, byte [0x98eb0cb09ceb28b0]
jmp 0x180048832
mov al, 9
jmp 0x180048832
sbb ebx, ebp
nop
mov al, 0x18
jmp 0x180048832
test byte [rax - 0x4f7f14fd], dh
invalid
jmp 0x180048832
mov al, 1
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
jmp 0x180048832
add eax, 0x4ac66
mov edx, 0x24
call fcn.18000a2e0
int3
add byte [rax], al
enter 0, 0
add byte [rax - 0x73], cl
loopne 0x18004e537
mov dword [rbp - 0x48], eax
add ebp, 0x20
ror byte [rax - 0x77], 0xea
and al, 0x50
mov eax, 0x4800002b
cmp dword [rsp + 0x60], 0
invalid
invalid
sti
dec esp
nop word [rax + rax]
dec dword [rax - 0x75]
jns 0x1800505ee
dec dword [rbx + rcx*4 + 0x71]
invalid
mov eax, dword [rsi]
mov ebx, eax
cmp qword [r14 + 8], 0
je 0x180050663
cmp qword [r14 + 0x10], 0x11
jb 0x180050652
mov rdi, qword [rdi - 8]
mov rcx, qword [0x1800a4080]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x1800a4080]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rcx, rbx
call fcn.180053bd0
int3
and byte [rax - 0x77], cl
invalid
lodsb al, byte [rsi]
jmp 0x18a028bd4
jmp 0x1f4c58de1
test eax, eax
mov dword [rsp + 0x58], eax
clc
invalid
add byte [rax], al
and al, 0x38
invalid
ror qword [rax - 0x77], 0x44
and al, 0x28
and al, 0x28
dec dword [rax - 0x77]
jl 0x180050c4d
xor byte [rbp + rcx*4 + 0x35], cl
sti
cmp al, byte [rdx]
add byte [rcx], dh
dec dword [rcx + rcx*4 + 0x64]
and al, 0x38
add al, byte [rax]
add byte [rax - 0x7b], cl
sal byte [rbp - 0x54], 0x4c
mov edi, dword [rsi + 0x10]
invalid
cmp edi, eax
add ebp, 0x20
add byte [rdi], cl
test dword [rdi + 1], esp
add dword [eax], eax
invalid
sub eax, 0xfd28548
add dword [rdi], ecx
test byte [rbx - 2], dl
invalid
push rsp
mov dword [rax + rax], eax
shr ecx, 0x20
cmp ecx, 0x23
je case.0x180050494.34
jmp 0x180050f3a
jle 0x180050f66
add byte [rax], al
add al, ch
add al, 0x90
sti
dec esp
int3
nop dword [rax]
add esp, 0x20
xor al, 0xf
invalid
nop dword [rax + rax]
xor r8d, r8d
jmp fcn.180050b70
add byte [rax], al
add byte [rax], al
add rdx, 0xfffffffffffffff0
shl r8, 4
nop dword [rax + rax]
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
test r8, r8
je 0x180051241
invalid
mov eax, dword [rdx + 0x10]
add rdx, 0x10
add r8, 0xfffffffffffffff0
test rax, rax
je 0x180051220
invalid
mov rdx, qword [rdx + 8]
mov r8, rax
jmp fcn.180051ac0
mov edx, 1
xor eax, eax
ror byte [rcx - 0x77], 0xc0
mov dword [rdi + 0x10], edx
add al, 0
push rsi
add al, byte [rax]
add byte [rax - 0x77], cl
push rsp
and al, 0x40
outsb dx, byte [rsi]
sbb byte [rax - 0x75], cl
mov rax, qword cs:[rsi + 8]
mov eax, dword [rsi + 8]
mov eax, dword [rsi + 8]
add byte [rax], al
and al, 0x48
dec dword [rbp + 0x39]
ret
invalid
lea ecx, [rsp + 0x30]
xor byte [rax - 0x77], cl
bnd call fcn.180053400
fist word [rdx]
add byte [rax], al
cmp rdx, rax
cmovae rdx, rax
cmovae edx, eax
invalid
pop rsp