Function at 0x140145720
Capabilities:
Authenticate hmac

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rsi, rdx
call fcn.140145190
movsxd rdx, dword [0x14028c260]
mov rdi, rax
mov rax, rdx
lea rcx, [rdx + rdx*2]
lea rdx, [0x1401e73a0]
add eax, 1
lea rbx, [rdx + rcx*8]
and eax, 3
mov qword [rbx + 8], 0
mov dword [0x14028c260], eax
mov rax, qword [rbx + 0x10]
cmp rax, qword [0x14022c910]
je 0x1401457b8
mov byte [rax], 0
mov rcx, rsi
call fcn.140029ec0
mov rcx, rax
mov rsi, rax
call sub.msvcrt.dll_strlen
mov rdx, rsi
mov rcx, rbx
mov r8, rax
call fcn.14008f5f0
test rdi, rdi
je 0x1401457a7
mov r8, rdi
lea rdx, [0x1402143ab]
mov rcx, rbx
call fcn.14008fc00
mov rax, qword [rbx + 0x10]
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
cmp byte [rax], 0
je 0x14014576f
mov r8d, 0xac
lea rdx, [0x14021438f]
lea rcx, [0x140214398]
call qword [sym.imp.msvcrt.dll__assert]
nop
nop dword [rax + rax]
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
mov rbx, qword [0x14022c040]
mov rax, qword [rbx]
mov qword [rsp + 0xe8], rax
xor eax, eax
mov r14, rcx
mov rdi, rdx
mov rsi, r8
test rcx, rcx
je 0x140145a4b
movzx eax, byte [rcx]
test al, 0xe
je 0x140145a00
shr al, 1
and eax, 7
cmp al, 3
je 0x140145a24
ja 0x140145970
cmp al, 1
je 0x140145ad8
cmp al, 2
jne 0x140145a30
xor edx, edx
mov rcx, r14
call fcn.1400b4180
test eax, eax
jne 0x140145a4b
lea rbx, [r14 + 4]
mov rcx, rsi
lea r12, [rsp + 0x90]
mov rdx, rbx
mov qword [rsp + 0x40], rbx
call fcn.140145190
mov dword [rsp + 0x20], 0
mov r9d, dword [r14 + 0x30]
mov rdx, rbx
mov r8, qword [r14 + 0x28]
mov rcx, r12
mov r15, rax
call fcn.1400b2670
mov ebx, eax
test eax, eax
jne 0x140145a4b
test r15, r15
mov r13, qword [0x14022c970]
lea rbp, [rsp + 0x50]
setne r14b
mov rdx, rbp
mov rcx, r12
call fcn.1400b2a20
test eax, eax
je 0x140145a50
mov r9d, dword [rsp + 0x84]
mov eax, r9d
and eax, 0xf000
cmp eax, 0xe000
je 0x1401458b0
cmp eax, 0x4000
je 0x140145a80
mov eax, r9d
and eax, 0xd000
cmp eax, 0x8000
jne 0x140145ca0
mov rcx, qword [r13]
mov rdx, rbp
call fcn.1400fb200
test rax, rax
je 0x140145937
test r14b, r14b
je 0x140145937
mov rdx, qword [rsp + 0x78]
mov r9, r15
mov rcx, rsi
mov qword [rsp + 0x38], rax
lea r8, [0x1402143b7]
mov qword [rsp + 0x20], rdx
mov rdx, rbp
call fcn.140145330
mov rax, qword [rsp + 0x38]
mov r9, rsi
mov r8, rdi
mov edx, 3
mov rcx, rax
call qword [rsi]
test eax, eax
js 0x140145c90
test ebx, ebx
mov rdx, rbp
mov rcx, r12
cmove ebx, eax
call fcn.1400b2a20
test eax, eax
jne 0x1401458c3
jmp 0x140145a50
cmp al, 4
jne 0x140145a30
mov rcx, rsi
lea rdx, [r14 + 4]
call fcn.140145190
mov rcx, r14
mov rbx, rax
call fcn.14009d570
test eax, eax
jne 0x140145a4b
test rbx, rbx
je 0x1401459b6
mov rax, qword [r14 + 0x28]
mov r9, rbx
lea r8, [0x1402143fd]
mov rcx, rsi
lea rdx, [rax + 4]
call fcn.140145330
mov rbx, qword [0x14022c040]
mov rax, qword [rsp + 0xe8]
sub rax, qword [rbx]
jne 0x140145d65
mov rcx, qword [r14 + 0x28]
mov rax, qword [rsi]
mov r9, rsi
mov r8, rdi
mov edx, 8
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp rax
mov rax, qword [0x14022c970]
lea rdx, [rcx + 4]
mov rcx, qword [rax]
call fcn.140039e90
movzx eax, byte [r14]
shr al, 1
and eax, 7
cmp al, 3
jne 0x140145831
xor ebx, ebx
jmp 0x140145a50
lea rdx, [r14 + 4]
mov rcx, rsi
call fcn.140145720
lea rcx, str.Unknown_object_type_for__s
mov rdx, rax
call fcn.1400b6bf0
mov ebx, 0xffffffff
mov rdi, qword [0x14022c040]
mov rax, qword [rsp + 0xe8]
sub rax, qword [rdi]
jne 0x140145d65
mov eax, ebx
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [r13]
mov rdx, rbp
call fcn.1400b4110
test rax, rax
je 0x140145abf
test r14b, r14b
je 0x140145abf
mov rdx, qword [rsp + 0x78]
mov r9, r15
mov rcx, rsi
mov qword [rsp + 0x38], rax
lea r8, [0x1402143b1]
mov qword [rsp + 0x20], rdx
mov rdx, rbp
call fcn.140145330
mov rax, qword [rsp + 0x38]
mov r9, rsi
mov r8, rdi
mov edx, 2
mov rcx, rax
call qword [rsi]
jmp 0x140145947
mov rbx, qword [0x14022c970]
xor r8d, r8d
mov rdx, r14
mov rcx, qword [rbx]
call fcn.140116aa0
mov r12d, eax
test eax, eax
jne 0x140145a4b
lea rdx, [r14 + 4]
mov rcx, rsi
call fcn.140145190
mov r13, rax
test rax, rax
je 0x140145c38
mov rcx, r14
call fcn.140115f50
mov r9, r13
lea r8, [0x1402143e7]
mov rcx, rsi
mov rdx, rax
call fcn.140145330
mov rcx, qword [rbx]
mov rdx, r14
mov rbp, qword [rsi]
call fcn.140115f00
mov r9, rsi
mov r8, rdi
mov edx, 2
mov rcx, rax
call rbp
mov ebp, eax
mov ebx, eax
test eax, eax
js 0x140145a50
mov r15, qword [r14 + 0x30]
test r15, r15
je 0x140145a50
mov rcx, r13
call sub.msvcrt.dll_strlen
mov dword [rsp + 0x40], 0
mov r14d, eax
test eax, eax
jne 0x140145cd8
mov byte [rsp + 0x38], 1
lea eax, [r14 + 1]
mov dword [rsp + 0x4c], eax
jmp 0x140145bec
test r14d, r14d
jle 0x140145c20
mov eax, dword [rsp + 0x4c]
mov qword [rsp + 0x20], r13
mov rcx, rsi
lea r8, str._.s_d
mov r9d, dword [rsp + 0x40]
mov dword [rsp + 0x28], eax
call fcn.140145330
mov r12d, 1
mov rcx, qword [r15]
mov r9, rsi
mov r8, rdi
mov edx, 1
call qword [rsi]
mov ebx, eax
test eax, eax
js 0x140145a50
mov r15, qword [r15 + 8]
test ebp, ebp
cmove ebp, eax
test r15, r15
je 0x140145c88
cmp byte [rsp + 0x38], 0
je 0x140145bc0
mov rax, qword [r15]
lea rdx, [rax + 4]
test r12d, r12d
je 0x140145b90
add r12d, 1
mov r9, r13
lea r8, str._s_d
mov rcx, rsi
mov dword [rsp + 0x20], r12d
call fcn.140145330
jmp 0x140145bc0
mov r9, r13
lea r8, [0x1402143f9]
mov rcx, rsi
call fcn.140145330
jmp 0x140145bba
mov rcx, qword [rbx]
mov rdx, r14
mov rbp, qword [rsi]
call fcn.140115f00
mov r9, rsi
mov r8, rdi
mov edx, 2
mov rcx, rax
call rbp
mov ebx, eax
mov ebp, eax
test eax, eax
js 0x140145a50
mov r15, qword [r14 + 0x30]
mov dword [rsp + 0x40], 0
xor r14d, r14d
mov byte [rsp + 0x38], 0
test r15, r15
jne 0x140145b84
jmp 0x140145a50
mov ebx, ebp
jmp 0x140145a50
mov ebx, eax
jmp 0x140145a50
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x78]
mov rcx, rsi
mov dword [rsp + 0x38], r9d
call fcn.140145720
mov r9d, dword [rsp + 0x38]
mov r8, rbx
lea rcx, str.in_tree__s:_entry__s_has_bad_mode__.6o
mov rdx, rax
call fcn.1400b6bf0
jmp 0x140145a4b
movsxd rcx, eax
cmp byte [r13 + rcx - 1], 0x5e
je 0x140145d47
mov r8, qword [str._________AA__A__________________]
xor r14d, r14d
mov edx, 1
jmp 0x140145d1a
sub eax, 0x30
sub rcx, 1
imul eax, edx
lea edx, [rdx + rdx*4]
mov dword [rsp + 0x40], ecx
add edx, edx
add r14d, eax
test ecx, ecx
je 0x140145d3f
movsx eax, byte [r13 + rcx - 1]
movzx r9d, al
test byte [r8 + r9], 2
jne 0x140145d00
mov dword [rsp + 0x40], ecx
cmp edx, 1
jle 0x140145d3f
movsxd rax, ecx
cmp byte [r13 + rax - 1], 0x7e
je 0x140145d59
xor r14d, r14d
jmp 0x140145b7f
sub eax, 1
mov r14d, 1
mov dword [rsp + 0x40], eax
jmp 0x140145b7f
lea eax, [rcx - 1]
mov dword [rsp + 0x40], eax
jmp 0x140145b7f
call fcn.1401d96b0
nop
nop dword [rax + rax]