Function at 0x140176350
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
sub rsp, 0x1b0
mov rax, qword [0x140282ff8]
xor rax, rsp
mov qword [rsp + 0x190], rax
xor esi, esi
mov qword [rsp + 0x68], rcx
cmp byte [0x140285c18], sil
mov rdi, r8
mov rbx, rdx
mov r14, rcx
mov r12d, esi
jne 0x14017639a
cmp byte [0x140284511], sil
jne 0x1401775e6
mov rax, qword [rdx]
mov qword [rsp + 0x1f8], rbp
mov qword [rsp + 0x1a8], r13
mov qword [rsp + 0x1a0], r15
movzx r8d, byte [rax]
lea rcx, [rax + 1]
mov qword [rdx], rcx
movzx eax, byte [rcx]
inc rcx
shl eax, 8
or r8d, eax
mov qword [rdx], rcx
movzx eax, byte [rcx]
inc rcx
shl eax, 0x10
or r8d, eax
mov qword [rdx], rcx
movzx eax, byte [rcx]
shl eax, 0x18
or r8d, eax
lea rax, [rcx + 1]
mov r15d, r8d
mov qword [rdx], rax
shr r15d, 4
and r15d, 0xf
lea eax, [r15 - 1]
cmp eax, 3
ja 0x140177550
mov rax, qword [rdi + 0x28]
mov ecx, r8d
and ecx, 0xf
shr r8d, 8
mov dword [rax + 0x18], r15d
mov rax, qword [rdi + 0x28]
mov dword [rax + 0xc], ecx
mov rax, qword [rdx]
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x10], rcx
mov rax, qword [rdx]
inc rax
mov qword [rdx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 8
or qword [rcx + 0x10], rax
mov rax, qword [rdx]
inc rax
mov qword [rdx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 0x10
or qword [rcx + 0x10], rax
mov rax, qword [rdx]
inc rax
mov qword [rdx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 0x18
or qword [rcx + 0x10], rax
mov rdx, qword [rdx]
inc rdx
mov qword [rbx], rdx
mov r9, qword [rdi + 0x28]
movsxd rax, dword [r9 + 0xc]
cmp eax, 0xa
ja case.default.0x1401764a1
lea r10, [0x140000000]
mov ecx, dword [r10 + rax*4 + 0x177608]
add rcx, r10
jmp rcx
mov eax, r8d
mov ecx, r8d
and eax, 1
shr ecx, 1
mov dword [r9 + 0x30], eax
and ecx, 1
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x48], ecx
mov ecx, r8d
mov rax, qword [rdi + 0x28]
shr ecx, 2
and ecx, 1
shr r8d, 3
and r8d, 1
mov dword [rax + 0x4c], ecx
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x50], r8d
mov rax, qword [rbx]
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x40], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 8
or qword [rcx + 0x40], rax
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x38], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 8
or qword [rcx + 0x38], rax
inc qword [rbx]
jmp 0x1401775ce
mov eax, r8d
and eax, 1
mov dword [r9 + 0x30], eax
cmp r15d, 3
jb 0x14017657e
mov eax, r8d
and al, 0x41
cmp al, 0x40
jne 0x14017656d
lea rax, str.bad_byte_order_for_datatype_message
mov r9d, 0xad
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0a0]
jmp 0x140177569
test r8b, 0x40
je 0x14017657e
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x30], 2
mov rax, qword [rdi + 0x28]
mov ecx, r8d
shr ecx, 1
and ecx, 1
mov dword [rax + 0x48], ecx
mov ecx, r8d
mov rax, qword [rdi + 0x28]
shr ecx, 2
and ecx, 1
mov dword [rax + 0x4c], ecx
mov ecx, r8d
mov rax, qword [rdi + 0x28]
shr ecx, 3
and ecx, 1
mov dword [rax + 0x84], ecx
mov eax, r8d
shr eax, 4
and eax, 3
je 0x1401765ff
sub eax, 1
je 0x1401765ef
cmp eax, 1
je 0x1401765e3
lea rax, str.unknown_floating_point_normalization
mov r9d, 0xc4
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0a0]
jmp 0x140177569
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x80], esi
jmp 0x14017660d
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x80], 1
jmp 0x14017660d
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x80], 2
mov eax, r8d
shr rax, 8
movzx ecx, al
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x50], rcx
mov rax, qword [rbx]
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x40], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 8
or qword [rcx + 0x40], rax
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x38], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 8
or qword [rcx + 0x38], rax
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x58], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x60], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x70], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x78], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x68], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 8
or qword [rcx + 0x68], rax
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 0x10
or qword [rcx + 0x68], rax
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 0x18
or qword [rcx + 0x68], rax
inc qword [rbx]
jmp 0x1401775ce
and r8d, 1
mov dword [r9 + 0x30], r8d
mov rax, qword [rbx]
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x38], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 8
or qword [rcx + 0x38], rax
inc qword [rbx]
jmp 0x1401775ce
mov dword [r9 + 0x30], 4
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx + 0x10]
shl rax, 3
mov qword [rcx + 0x38], rax
mov ecx, r8d
mov rax, qword [rdi + 0x28]
and ecx, 0xf
shr r8d, 4
and r8d, 0xf
mov qword [rax + 0x40], rsi
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x48], esi
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x4c], esi
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x54], ecx
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x50], r8d
jmp 0x1401775ce
mov eax, r8d
mov ecx, r8d
and eax, 1
shr ecx, 1
mov dword [r9 + 0x30], eax
and ecx, 1
mov rax, qword [rdi + 0x28]
shr r8d, 2
and r8d, 1
mov dword [rax + 0x48], ecx
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x4c], r8d
mov rax, qword [rbx]
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x40], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 8
or qword [rcx + 0x40], rax
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x38], rcx
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
movzx eax, byte [rax]
shl rax, 8
or qword [rcx + 0x38], rax
inc qword [rbx]
jmp 0x1401775ce
movzx esi, r8b
lea rcx, [rsi + 1]
call fcn.14005f500
mov rcx, rax
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x30], rcx
test rcx, rcx
jne 0x140176875
lea rax, str.memory_allocation_failed
mov r9d, 0xf7
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027dd20]
mov qword [rsp + 0x30], rax
mov rax, qword [0x14027dc18]
jmp 0x140177575
mov rcx, qword [rdi + 0x28]
mov r8, rsi
mov rdx, qword [rbx]
mov rcx, qword [rcx + 0x30]
call fcn.14005f510
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 0x30]
mov byte [rsi + rcx], r12b
add qword [rbx], rsi
jmp 0x1401775ce
mov rcx, qword [r9 + 0x10]
mov rbp, rsi
mov qword [rsp + 0x70], rsi
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x54], esi
call fcn.1401782a0
mov dword [rsp + 0x60], eax
movzx eax, r8w
mov dword [r9 + 0x34], eax
mov rcx, qword [rdi + 0x28]
mov edx, dword [rcx + 0x34]
test edx, edx
jne 0x140176920
mov dword [rsp + 0x40], esi
lea rax, str.invalid_number_of_members:__u
mov qword [rsp + 0x38], rax
lea r8, str.H5O__dtype_decode_helper
mov rax, qword [0x14027e0b8]
lea rdx, str.C:_b_abs_e4nt8ttmb0croothdf5_1686163951797work_srcH5Odtype.c
mov qword [rsp + 0x30], rax
mov r9d, 0x10d
mov rax, qword [0x14027dc98]
xor ecx, ecx
mov qword [rsp + 0x28], rax
mov rax, qword [0x14027dbb8]
mov qword [rsp + 0x20], rax
call fcn.1400603f0
jmp 0x14017759b
mov dword [rcx + 0x30], edx
mov rax, qword [rdi + 0x28]
mov ecx, dword [rax + 0x30]
shl rcx, 5
call fcn.14005f4e0
mov rcx, rax
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x40], rcx
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x48], rsi
mov rax, qword [rdi + 0x28]
cmp qword [rax + 0x40], rsi
jne 0x14017696e
lea rax, str.memory_allocation_failed
mov r9d, 0x113
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027dd28]
jmp 0x140177569
mov r13d, esi
cmp dword [rax + 0x34], esi
jbe 0x140176db6
nop word [rax + rax]
mov rcx, qword [rbx]
mov r14d, r13d
shl r14, 5
mov qword [rsp + 0x78], rbp
mov dword [rsp + 0x58], esi
call fcn.14005f620
mov rdx, rax
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 0x40]
mov rax, 0xffffffffffffffff
mov qword [r14 + rcx], rdx
mov rcx, qword [rbx]
inc rax
cmp byte [rcx + rax], sil
jne 0x1401769b1
cmp r15d, 3
jb 0x1401769c9
lea rdx, [rcx + 1]
add rdx, rax
jmp 0x1401769d5
add rax, 8
shr rax, 3
lea rdx, [rcx + rax*8]
mov qword [rbx], rdx
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 0x40]
cmp r15d, 3
jb 0x140176a33
mov r10d, dword [rsp + 0x60]
mov qword [rcx + r14 + 8], rsi
add qword [rbx], r10
mov rax, qword [rbx]
test r10, r10
je 0x140176a2b
mov r9d, r10d
nop
dec qword [rbx]
mov rax, qword [rdi + 0x28]
mov rdx, qword [rbx]
mov r8, qword [rax + 0x40]
movzx eax, byte [rdx]
mov rcx, qword [r8 + r14 + 8]
shl rcx, 8
or rcx, rax
mov qword [r8 + r14 + 8], rcx
sub r9, 1
jne 0x140176a00
mov rax, qword [rbx]
add rax, r10
mov qword [rbx], rax
jmp 0x140176a8f
movzx edx, byte [rdx]
mov qword [rcx + r14 + 8], rdx
inc qword [rbx]
mov rax, qword [rdi + 0x28]
mov rdx, qword [rbx]
mov rcx, qword [rax + 0x40]
movzx eax, byte [rdx]
shl rax, 8
or qword [rcx + r14 + 8], rax
inc qword [rbx]
mov rax, qword [rdi + 0x28]
mov rdx, qword [rbx]
mov rcx, qword [rax + 0x40]
movzx eax, byte [rdx]
shl rax, 0x10
or qword [rcx + r14 + 8], rax
inc qword [rbx]
mov rax, qword [rdi + 0x28]
mov rdx, qword [rbx]
mov rcx, qword [rax + 0x40]
movzx eax, byte [rdx]
shl rax, 0x18
or qword [rcx + r14 + 8], rax
inc qword [rbx]
mov rax, qword [rbx]
cmp r15d, 1
jne 0x140176c26
movzx ecx, byte [rax]
inc rax
mov dword [rsp + 0x58], ecx
mov qword [rbx], rax
cmp ecx, 4
ja 0x140176dfe
add rax, 0xb
mov qword [rbx], rax
movzx ecx, byte [rax]
inc rax
mov qword [rbx], rax
mov qword [rsp + 0x80], rcx
movzx edx, byte [rax]
shl rdx, 8
or rdx, rcx
lea rcx, [rax + 1]
mov qword [rbx], rcx
mov qword [rsp + 0x80], rdx
movzx r8d, byte [rcx]
shl r8, 0x10
or r8, rdx
mov qword [rsp + 0x80], r8
inc rcx
mov qword [rbx], rcx
movzx eax, byte [rcx]
shl rax, 0x18
or rax, r8
mov qword [rsp + 0x80], rax
lea rax, [rcx + 1]
mov qword [rbx], rax
movzx ecx, byte [rax]
inc rax
mov qword [rbx], rax
mov qword [rsp + 0x88], rcx
movzx edx, byte [rax]
shl rdx, 8
or rdx, rcx
lea rcx, [rax + 1]
mov qword [rbx], rcx
mov qword [rsp + 0x88], rdx
movzx r8d, byte [rcx]
shl r8, 0x10
or r8, rdx
mov qword [rsp + 0x88], r8
inc rcx
mov qword [rbx], rcx
movzx eax, byte [rcx]
shl rax, 0x18
or rax, r8
mov qword [rsp + 0x88], rax
lea rax, [rcx + 1]
mov qword [rbx], rax
movzx ecx, byte [rax]
inc rax
mov qword [rbx], rax
mov qword [rsp + 0x90], rcx
movzx edx, byte [rax]
shl rdx, 8
or rdx, rcx
lea rcx, [rax + 1]
mov qword [rbx], rcx
mov qword [rsp + 0x90], rdx
movzx r8d, byte [rcx]
shl r8, 0x10
or r8, rdx
inc rcx
mov qword [rsp + 0x90], r8
mov qword [rbx], rcx
movzx eax, byte [rcx]
shl rax, 0x18
or rax, r8
mov qword [rsp + 0x90], rax
lea rax, [rcx + 1]
mov qword [rbx], rax
movzx ecx, byte [rax]
inc rax
mov qword [rsp + 0x98], rcx
mov qword [rbx], rax
movzx edx, byte [rax]
shl rdx, 8
or rdx, rcx
lea rcx, [rax + 1]
mov qword [rbx], rcx
mov qword [rsp + 0x98], rdx
movzx r8d, byte [rcx]
shl r8, 0x10
or r8, rdx
inc rcx
mov qword [rsp + 0x98], r8
mov qword [rbx], rcx
movzx eax, byte [rcx]
shl rax, 0x18
or rax, r8
mov qword [rsp + 0x98], rax
lea rax, [rcx + 1]
mov qword [rbx], rax
call fcn.140004da0
mov rbp, rax
test rax, rax
je 0x140176ed6
mov rcx, qword [rsp + 0x68]
mov r8, rax
mov rdx, rbx
call fcn.140176350
test eax, eax
js 0x140176e84
je 0x140176c67
mov rax, qword [rbp + 0x28]
mov ecx, dword [rax + 0x18]
cmp ecx, r15d
jbe 0x140176c67
mov dword [rsp + 0x54], ecx
mov r12d, 1
cmp r15d, 1
jne 0x140176ccf
mov eax, dword [rsp + 0x58]
test eax, eax
je 0x140176ccf
lea r8, [rsp + 0x80]
mov edx, eax
mov rcx, rbp
call fcn.140015dd0
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140176e1c
mov rcx, rbp
call fcn.14000b970
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
mov rbp, rax
mov rax, qword [rax + 0x28]
test byte [rcx], r15b
je 0x140176cb9
mov dword [rax + 0x18], r15d
jmp 0x140176ccf
mov eax, dword [rax + 0x18]
mov r12d, 1
cmp dword [rsp + 0x54], eax
cmovae eax, dword [rsp + 0x54]
mov dword [rsp + 0x54], eax
mov rdx, qword [rbp + 0x28]
mov eax, dword [rdx + 0x18]
cmp eax, dword [rsp + 0x50]
cmovbe eax, dword [rsp + 0x50]
cmp byte [rdx + 0x1c], 1
mov r8d, eax
mov dword [rsp + 0x50], eax
jne 0x140176cf8
mov rax, qword [rdi + 0x28]
mov byte [rax + 0x1c], 1
mov rdx, qword [rbp + 0x28]
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 0x40]
mov rax, qword [rdx + 0x10]
mov qword [rcx + r14 + 0x10], rax
mov rax, qword [rbp + 0x28]
mov rdx, qword [rdi + 0x28]
mov rcx, qword [rax + 0x10]
add qword [rdx + 0x48], rcx
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 0x40]
mov qword [rcx + r14 + 0x18], rbp
test r13d, r13d
je 0x140176d7d
mov rax, qword [rdi + 0x28]
mov r9, qword [rax + 0x40]
mov r8, qword [r14 + r9 + 8]
cmp r8, qword [rsp + 0x70]
jae 0x140176d78
mov edx, esi
test r13d, r13d
je 0x140176d78
nop word [rax + rax]
mov eax, edx
shl rax, 5
mov rcx, qword [rax + r9 + 8]
cmp r8, rcx
jb 0x140176d71
mov rax, qword [rax + r9 + 0x10]
add rcx, rax
cmp r8, rcx
jb 0x140176e66
inc edx
cmp edx, r13d
jb 0x140176d50
mov r8d, dword [rsp + 0x50]
mov rcx, qword [rdi + 0x28]
inc r13d
mov rax, qword [rcx + 0x40]
mov rbp, qword [rax + r14 + 0x10]
add rbp, qword [rax + r14 + 8]
cmp qword [rsp + 0x78], rbp
cmova rbp, qword [rsp + 0x78]
mov qword [rsp + 0x70], rbp
cmp r13d, dword [rcx + 0x34]
jb 0x140176980
mov r14, qword [rsp + 0x68]
mov dword [rsp + 0x50], r8d
mov rcx, rdi
call fcn.140016950
mov eax, dword [rsp + 0x54]
cmp r15d, eax
jae 0x140176f00
mov edx, eax
mov rcx, rdi
mov r15d, eax
call fcn.14000b600
test eax, eax
jns 0x140176f00
lea rax, str.cant_upgrade_compound_encoding_version
mov r9d, 0x1a4
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027ddc0]
jmp 0x140177569
lea rax, str.invalid_number_of_dimensions_for_array
mov r9d, 0x136
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0a8]
jmp 0x140177569
lea ebx, [r13 + 1]
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 0x40]
mov rcx, qword [rcx + rsi]
call fcn.14005f600
lea rsi, [rsi + 0x20]
sub rbx, 1
jne 0x140176e20
mov rcx, qword [rdi + 0x28]
mov rcx, qword [rcx + 0x40]
call fcn.14005f600
lea rax, str.unable_to_create_array_datatype
mov r9d, 0x163
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027df10]
jmp 0x140177569
lea rax, str.member_overlaps_with_previous_member
mov r9d, 0x195
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0d8]
jmp 0x140177569
lea ebx, [r13 + 1]
nop dword [rax + rax]
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 0x40]
mov rcx, qword [rcx + rsi]
call fcn.14005f600
lea rsi, [rsi + 0x20]
sub rbx, 1
jne 0x140176e90
mov rcx, qword [rdi + 0x28]
mov rcx, qword [rcx + 0x40]
call fcn.14005f600
lea rax, str.unable_to_decode_member_type
mov r9d, 0x14e
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0d8]
jmp 0x140177569
lea rax, str.memory_allocation_failed
mov r9d, 0x147
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027dd20]
mov qword [rsp + 0x30], rax
mov rax, qword [0x14027dc18]
jmp 0x140177575
mov eax, dword [rsp + 0x50]
cmp r15d, eax
jae 0x140176f3f
test byte [r14], 1
jne 0x140176f3f
mov edx, eax
mov rcx, rdi
call fcn.14000b600
test eax, eax
jns 0x140176f3b
lea rax, str.cant_upgrade_compound_encoding_version
mov r9d, 0x1ac
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027ddc0]
jmp 0x140177569
or dword [r14], 2
test r12d, r12d
jns 0x1401775ce
jmp 0x1401775a1
mov dword [r9 + 0x30], 4
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx + 0x10]
shl rax, 3
mov qword [rcx + 0x38], rax
mov ecx, r8d
mov rax, qword [rdi + 0x28]
and ecx, 0xf
mov qword [rax + 0x40], rsi
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x48], esi
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x4c], esi
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x50], ecx
mov rcx, qword [rdi + 0x28]
mov eax, dword [rcx + 0x50]
cmp eax, 4
ja 0x14017701b
add eax, 0xfffffffe
cmp eax, 2
jbe 0x140176fdf
mov byte [rcx + 0x58], sil
mov rax, qword [rdi + 0x28]
xor r8d, r8d
mov byte [rax + 0x1c], 1
xor edx, edx
mov rcx, rdi
call fcn.14000e370
test eax, eax
jns 0x1401775ce
lea rax, str.invalid_datatype_location
mov r9d, 0x1ce
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027dda0]
jmp 0x140177569
mov byte [rcx + 0x58], 1
mov rax, qword [rdi + 0x28]
shr r8d, 4
and r8d, 0xf
mov dword [rax + 0x54], r8d
mov rax, qword [rdi + 0x28]
cmp dword [rax + 0x54], 1
je 0x140176fa8
lea rax, str.reference_version_does_not_match
mov r9d, 0x1c3
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0d8]
jmp 0x140177569
lea rax, str.invalid_reference_type
mov r9d, 0x1ba
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0d8]
jmp 0x140177569
movzx ecx, r8w
mov dword [r9 + 0x30], ecx
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x34], ecx
call fcn.140004da0
mov rcx, rax
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x20], rcx
test rcx, rcx
jne 0x140177087
lea rax, str.memory_allocation_failed
mov r9d, 0x1d7
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027dd20]
mov qword [rsp + 0x30], rax
mov rax, qword [0x14027dc18]
jmp 0x140177575
mov r8, qword [rdi + 0x28]
mov rdx, rbx
mov rcx, r14
mov r8, qword [r8 + 0x20]
call fcn.140176350
test eax, eax
jns 0x1401770bc
lea rax, str.unable_to_decode_parent_datatype
mov r9d, 0x1d9
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0d8]
jmp 0x140177569
mov rdx, qword [rdi + 0x28]
mov rax, qword [rdx + 0x20]
mov rcx, qword [rax + 0x28]
mov eax, dword [rcx + 0x18]
cmp r15d, eax
jae 0x14017710d
test byte [r14], 1
jne 0x14017710d
mov edx, eax
mov rcx, rdi
mov r15d, eax
call fcn.14000b600
test eax, eax
jns 0x140177105
lea rax, str.cant_upgrade_enum_encoding_version
mov r9d, 0x1dd
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027ddc0]
jmp 0x140177569
or dword [r14], 2
mov rdx, qword [rdi + 0x28]
mov ecx, dword [rdx + 0x30]
shl rcx, 3
call fcn.14005f4e0
mov rcx, rax
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x48], rcx
test rcx, rcx
je 0x140177200
mov rdx, qword [rdi + 0x28]
mov rax, qword [rdx + 0x20]
mov rcx, qword [rax + 0x28]
mov eax, dword [rdx + 0x30]
mov rcx, qword [rcx + 0x10]
imul rcx, rax
call fcn.14005f4e0
mov rcx, rax
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x40], rcx
test rcx, rcx
je 0x140177200
mov rcx, qword [rdi + 0x28]
cmp dword [rcx + 0x34], esi
jbe 0x1401771c2
mov rcx, qword [rbx]
call fcn.14005f620
mov r8, rax
mov edx, esi
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 0x48]
mov rax, 0xffffffffffffffff
mov qword [rcx + rdx*8], r8
mov rcx, qword [rbx]
nop dword [rax]
inc rax
cmp byte [rcx + rax], r12b
jne 0x140177190
cmp r15d, 3
jb 0x1401771a8
lea rdx, [rcx + 1]
add rdx, rax
jmp 0x1401771b4
add rax, 8
shr rax, 3
lea rdx, [rcx + rax*8]
mov qword [rbx], rdx
inc esi
mov rcx, qword [rdi + 0x28]
cmp esi, dword [rcx + 0x34]
jb 0x140177166
mov rax, qword [rcx + 0x20]
mov rdx, qword [rax + 0x28]
mov eax, dword [rcx + 0x34]
mov rcx, qword [rcx + 0x40]
mov r8, qword [rdx + 0x10]
mov rdx, qword [rbx]
imul r8, rax
call fcn.14005f510
mov rdx, qword [rdi + 0x28]
mov rax, qword [rdx + 0x20]
mov rcx, qword [rax + 0x28]
mov eax, dword [rdx + 0x34]
mov rdx, qword [rcx + 0x10]
imul rdx, rax
add qword [rbx], rdx
jmp 0x1401775ce
lea rax, str.memory_allocation_failed
mov r9d, 0x1e3
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027dd20]
mov qword [rsp + 0x30], rax
mov rax, qword [0x14027dc18]
jmp 0x140177575
mov eax, r8d
and eax, 0xf
mov dword [r9 + 0x30], eax
mov rcx, qword [rdi + 0x28]
cmp dword [rcx + 0x30], 1
jne 0x14017725a
mov eax, r8d
shr r8d, 8
shr eax, 4
and eax, 0xf
mov dword [rcx + 0x3c], eax
and r8d, 0xf
mov rax, qword [rdi + 0x28]
mov dword [rax + 0x38], r8d
call fcn.140004da0
mov rcx, rax
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x20], rcx
test rcx, rcx
jne 0x14017728d
lea rax, str.memory_allocation_failed
mov r9d, 0x202
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027dd20]
jmp 0x140177569
mov r8, qword [rdi + 0x28]
mov rdx, rbx
mov rcx, r14
mov r8, qword [r8 + 0x20]
call fcn.140176350
test eax, eax
jns 0x1401772c2
lea rax, str.unable_to_decode_VL_parent_type
mov r9d, 0x204
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0d8]
jmp 0x140177569
mov r8, qword [rdi + 0x28]
mov rax, qword [r8 + 0x20]
mov rcx, qword [rax + 0x28]
mov edx, dword [rcx + 0x18]
cmp r15d, edx
jae 0x14017730e
test byte [r14], 1
jne 0x14017730e
mov rcx, rdi
call fcn.14000b600
test eax, eax
jns 0x140177306
lea rax, str.cant_upgrade_vlen_encoding_version
mov r9d, 0x208
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027ddc0]
jmp 0x140177569
or dword [r14], 2
mov r8, qword [rdi + 0x28]
mov byte [r8 + 0x1c], 1
xor edx, edx
xor r8d, r8d
mov rcx, rdi
call fcn.14000e370
test eax, eax
jns 0x1401775ce
lea rax, str.invalid_datatype_location
mov r9d, 0x20f
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027dda0]
jmp 0x140177569
movzx eax, byte [rdx]
mov dword [r9 + 0x38], eax
mov rax, qword [rbx]
inc rax
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
cmp dword [rcx + 0x38], 0x20
jbe 0x140177372
lea rax, str.too_many_dimensions_for_array_datatype
mov r9d, 0x218
jmp 0x14017755d
cmp r15d, 3
jae 0x140177383
add rax, 3
mov qword [rbx], rax
mov rcx, qword [rdi + 0x28]
mov qword [rcx + 0x30], 1
mov rax, qword [rdi + 0x28]
cmp dword [rax + 0x38], esi
jbe 0x140177416
nop dword [rax + rax]
mov eax, esi
inc esi
lea r8, [rax*8 + 0x40]
mov rax, qword [rbx]
movzx ecx, byte [rax]
mov rax, qword [rdi + 0x28]
mov qword [r8 + rax], rcx
inc qword [rbx]
mov rcx, qword [rbx]
mov rdx, qword [rdi + 0x28]
movzx eax, byte [rcx]
shl rax, 8
or qword [rdx + r8], rax
inc qword [rbx]
mov rcx, qword [rbx]
mov rdx, qword [rdi + 0x28]
movzx eax, byte [rcx]
shl rax, 0x10
or qword [rdx + r8], rax
inc qword [rbx]
mov rcx, qword [rbx]
mov rdx, qword [rdi + 0x28]
movzx eax, byte [rcx]
shl rax, 0x18
or qword [rdx + r8], rax
inc qword [rbx]
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx + 0x30]
imul rax, qword [r8 + rcx]
mov qword [rcx + 0x30], rax
mov rax, qword [rdi + 0x28]
cmp esi, dword [rax + 0x38]
jb 0x1401773a0
cmp r15d, 3
jae 0x140177425
mov eax, dword [rax + 0x38]
shl eax, 2
add qword [rbx], rax
call fcn.140004da0
mov rcx, rax
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x20], rcx
test rcx, rcx
jne 0x140177458
lea rax, str.memory_allocation_failed
mov r9d, 0x22a
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027dd20]
jmp 0x140177569
mov r8, qword [rdi + 0x28]
mov rdx, rbx
mov rcx, r14
mov r8, qword [r8 + 0x20]
call fcn.140176350
test eax, eax
jns 0x14017748d
lea rax, str.unable_to_decode_array_parent_type
mov r9d, 0x22c
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0d8]
jmp 0x140177569
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + 0x20]
mov rax, qword [rcx + 0x28]
mov ecx, dword [rax + 0x18]
cmp r15d, ecx
jae 0x1401774da
test byte [r14], 1
jne 0x1401774da
mov r15d, ecx
mov edx, ecx
mov rcx, rdi
call fcn.14000b600
test eax, eax
jns 0x1401774d6
lea rax, str.cant_upgrade_array_encoding_version
mov r9d, 0x230
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027ddc0]
jmp 0x140177569
or dword [r14], 2
cmp r15d, 2
jae 0x140177516
test byte [r14], 1
jne 0x140177516
mov edx, 2
mov rcx, rdi
call fcn.14000b600
test eax, eax
jns 0x140177512
lea rax, str.cant_upgrade_array_encoding_version
mov r9d, 0x233
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027ddc0]
jmp 0x140177569
or dword [r14], 2
mov rdx, qword [rdi + 0x28]
mov rax, qword [rdx + 0x20]
mov rcx, qword [rax + 0x28]
cmp byte [rcx + 0x1c], 1
jne 0x1401775ce
mov byte [rdx + 0x1c], 1
jmp 0x1401775ce
lea rax, str.unknown_datatype_class_found
mov r9d, 0x240
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027e0a0]
jmp 0x140177569
lea rax, str.bad_version_number_for_datatype_message
mov r9d, 0x90
mov qword [rsp + 0x38], rax
mov rax, qword [0x14027df50]
mov qword [rsp + 0x30], rax
mov rax, qword [0x14027dc98]
mov qword [rsp + 0x28], rax
lea r8, str.H5O__dtype_decode_helper
mov rax, qword [0x14027dbb8]
lea rdx, str.C:_b_abs_e4nt8ttmb0croothdf5_1686163951797work_srcH5Odtype.c
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.1400603f0
mov r12d, 0xffffffff
test rdi, rdi
je 0x1401775ce
mov rdx, qword [rdi + 0x28]
test rdx, rdx
je 0x1401775bf
lea rcx, [0x14027d478]
call fcn.140049400
mov qword [rdi + 0x28], rax
mov rdx, rdi
lea rcx, [0x14027d450]
call fcn.140049400
mov r13, qword [rsp + 0x1a8]
mov rbp, qword [rsp + 0x1f8]
mov r15, qword [rsp + 0x1a0]
mov eax, r12d
mov rcx, qword [rsp + 0x190]
xor rcx, rsp
call fcn.1401f0130
add rsp, 0x1b0
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret