Function at 0x1400037b0
Capabilities:
Hash data with crc32

Disassembly:
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], rdi
mov rdi, rcx
xor r14d, r14d
call fcn.1400036a0
lea rbx, [rcx + 0x1400]
cmp qword [rcx + 0x1408], rbx
jne 0x140003840
mov rax, qword [rcx + 0x1420]
mov r8d, 0x1400
mov rdx, rcx
mov rcx, rax
call qword [rax]
test eax, eax
jne 0x140003839
lea rcx, [rbp - 0x28]
call qword [sym.imp.MSVCR120.dll_public:_void___cdecl_std::exception::constructor_void____ptr64]
nop
lea rax, vtable.tta::tta_exception.0
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], 4
lea rdx, [0x14000e2b0]
lea rcx, [rbp - 0x28]
call sub.MSVCR120.dll__CxxThrowException
int3
mov qword [rdi + 0x1408], rdi
mov r8, qword [rdi + 0x1408]
mov edx, dword [rdi + 0x1418]
movzx eax, byte [r8]
xor rax, rdx
movzx ecx, al
lea r15, [0x14000bfa0]
shr edx, 8
mov eax, dword [r15 + rcx*4]
xor eax, edx
mov dword [rdi + 0x1418], eax
inc dword [rdi + 0x141c]
movzx eax, byte [r8]
inc r8
mov qword [rdi + 0x1408], r8
cmp al, 0x49
jne 0x140003cc2
cmp r8, rbx
jne 0x1400038dc
mov rax, qword [rdi + 0x1420]
mov r8d, 0x1400
mov rdx, rdi
mov rcx, rax
call qword [rax]
test eax, eax
jne 0x1400038d5
lea rcx, [rbp - 0x28]
call qword [sym.imp.MSVCR120.dll_public:_void___cdecl_std::exception::constructor_void____ptr64]
nop
lea rax, vtable.tta::tta_exception.0
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], 4
lea rdx, [0x14000e2b0]
lea rcx, [rbp - 0x28]
call sub.MSVCR120.dll__CxxThrowException
int3
mov qword [rdi + 0x1408], rdi
mov r8, qword [rdi + 0x1408]
mov edx, dword [rdi + 0x1418]
movzx eax, byte [r8]
xor rax, rdx
movzx ecx, al
shr edx, 8
mov eax, dword [r15 + rcx*4]
xor eax, edx
mov dword [rdi + 0x1418], eax
inc dword [rdi + 0x141c]
movzx eax, byte [r8]
inc r8
mov qword [rdi + 0x1408], r8
cmp al, 0x44
jne 0x140003cc2
cmp r8, rbx
jne 0x140003971
mov rax, qword [rdi + 0x1420]
mov r8d, 0x1400
mov rdx, rdi
mov rcx, rax
call qword [rax]
test eax, eax
jne 0x14000396a
lea rcx, [rbp - 0x28]
call qword [sym.imp.MSVCR120.dll_public:_void___cdecl_std::exception::constructor_void____ptr64]
nop
lea rax, vtable.tta::tta_exception.0
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], 4
lea rdx, [0x14000e2b0]
lea rcx, [rbp - 0x28]
call sub.MSVCR120.dll__CxxThrowException
int3
mov qword [rdi + 0x1408], rdi
mov r8, qword [rdi + 0x1408]
mov edx, dword [rdi + 0x1418]
movzx eax, byte [r8]
xor rax, rdx
movzx ecx, al
shr edx, 8
mov eax, dword [r15 + rcx*4]
xor eax, edx
mov dword [rdi + 0x1418], eax
inc dword [rdi + 0x141c]
movzx eax, byte [r8]
inc r8
mov qword [rdi + 0x1408], r8
cmp al, 0x33
jne 0x140003cc2
lea rax, [r8 + 2]
mov qword [rdi + 0x1408], rax
cmp rax, rbx
jne 0x140003a11
mov rax, qword [rdi + 0x1420]
mov r8d, 0x1400
mov rdx, rdi
mov rcx, rax
call qword [rax]
test eax, eax
jne 0x140003a0a
lea rcx, [rbp - 0x28]
call qword [sym.imp.MSVCR120.dll_public:_void___cdecl_std::exception::constructor_void____ptr64]
nop
lea rax, vtable.tta::tta_exception.0
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], 4
lea rdx, [0x14000e2b0]
lea rcx, [rbp - 0x28]
call sub.MSVCR120.dll__CxxThrowException
int3
mov qword [rdi + 0x1408], rdi
mov r8, qword [rdi + 0x1408]
mov edx, dword [rdi + 0x1418]
movzx eax, byte [r8]
xor rax, rdx
movzx ecx, al
shr edx, 8
mov eax, dword [r15 + rcx*4]
xor eax, edx
mov dword [rdi + 0x1418], eax
inc dword [rdi + 0x141c]
movzx eax, byte [r8]
lea rcx, [r8 + 1]
mov qword [rdi + 0x1408], rcx
test al, 0x10
mov eax, 0xa
cmovne r14d, eax
cmp rcx, rbx
jne 0x140003aaa
mov rax, qword [rdi + 0x1420]
mov r8d, 0x1400
mov rdx, rdi
mov rcx, rax
call qword [rax]
test eax, eax
jne 0x140003aa3
lea rcx, [rbp - 0x28]
call qword [sym.imp.MSVCR120.dll_public:_void___cdecl_std::exception::constructor_void____ptr64]
nop
lea rax, vtable.tta::tta_exception.0
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], 4
lea rdx, [0x14000e2b0]
lea rcx, [rbp - 0x28]
call sub.MSVCR120.dll__CxxThrowException
int3
mov qword [rdi + 0x1408], rdi
mov r8, qword [rdi + 0x1408]
mov edx, dword [rdi + 0x1418]
movzx eax, byte [r8]
xor rax, rdx
movzx ecx, al
shr edx, 8
mov eax, dword [r15 + rcx*4]
xor eax, edx
mov dword [rdi + 0x1418], eax
inc dword [rdi + 0x141c]
movzx eax, byte [r8]
lea rcx, [r8 + 1]
mov qword [rdi + 0x1408], rcx
and eax, 0x7f
add r14d, eax
cmp rcx, rbx
jne 0x140003b3e
mov rax, qword [rdi + 0x1420]
mov r8d, 0x1400
mov rdx, rdi
mov rcx, rax
call qword [rax]
test eax, eax
jne 0x140003b37
lea rcx, [rbp - 0x28]
call qword [sym.imp.MSVCR120.dll_public:_void___cdecl_std::exception::constructor_void____ptr64]
nop
lea rax, vtable.tta::tta_exception.0
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], 4
lea rdx, [0x14000e2b0]
lea rcx, [rbp - 0x28]
call sub.MSVCR120.dll__CxxThrowException
int3
mov qword [rdi + 0x1408], rdi
mov r8, qword [rdi + 0x1408]
mov edx, dword [rdi + 0x1418]
movzx eax, byte [r8]
xor rax, rdx
movzx ecx, al
shr edx, 8
mov eax, dword [r15 + rcx*4]
xor eax, edx
mov dword [rdi + 0x1418], eax
inc dword [rdi + 0x141c]
movzx esi, byte [r8]
lea rcx, [r8 + 1]
mov qword [rdi + 0x1408], rcx
and esi, 0x7f
shl r14d, 7
or esi, r14d
cmp rcx, rbx
jne 0x140003bd6
mov rax, qword [rdi + 0x1420]
mov r8d, 0x1400
mov rdx, rdi
mov rcx, rax
call qword [rax]
test eax, eax
jne 0x140003bcf
lea rcx, [rbp - 0x28]
call qword [sym.imp.MSVCR120.dll_public:_void___cdecl_std::exception::constructor_void____ptr64]
nop
lea rax, vtable.tta::tta_exception.0
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], 4
lea rdx, [0x14000e2b0]
lea rcx, [rbp - 0x28]
call sub.MSVCR120.dll__CxxThrowException
int3
mov qword [rdi + 0x1408], rdi
mov r9, qword [rdi + 0x1408]
mov edx, dword [rdi + 0x1418]
movzx eax, byte [r9]
xor rax, rdx
movzx ecx, al
shr edx, 8
mov eax, dword [r15 + rcx*4]
xor eax, edx
mov dword [rdi + 0x1418], eax
inc dword [rdi + 0x141c]
movzx r14d, byte [r9]
lea rcx, [r9 + 1]
mov qword [rdi + 0x1408], rcx
and r14d, 0x7f
shl esi, 7
or r14d, esi
cmp rcx, rbx
jne 0x140003c6e
mov rax, qword [rdi + 0x1420]
mov r8d, 0x1400
mov rdx, rdi
mov rcx, rax
call qword [rax]
test eax, eax
jne 0x140003c67
lea rcx, [rbp - 0x28]
call qword [sym.imp.MSVCR120.dll_public:_void___cdecl_std::exception::constructor_void____ptr64]
nop
lea rax, vtable.tta::tta_exception.0
mov qword [rbp - 0x28], rax
mov dword [rbp - 0x10], 4
lea rdx, [0x14000e2b0]
lea rcx, [rbp - 0x28]
call sub.MSVCR120.dll__CxxThrowException
int3
mov qword [rdi + 0x1408], rdi
mov r8, qword [rdi + 0x1408]
mov edx, dword [rdi + 0x1418]
movzx eax, byte [r8]
xor rax, rdx
movzx ecx, al
shr edx, 8
mov eax, dword [r15 + rcx*4]
xor eax, edx
mov dword [rdi + 0x1418], eax
inc dword [rdi + 0x141c]
movzx ebx, byte [r8]
lea rax, [r8 + 1]
mov qword [rdi + 0x1408], rax
and ebx, 0x7f
shl r14d, 7
or ebx, r14d
mov edx, ebx
mov rcx, rdi
call fcn.1400036c0
lea eax, [rbx + 0xa]
jmp 0x140003ccb
mov qword [rdi + 0x1408], rdi
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rbp
ret