Function at 0x140012323
Capabilities:
Authenticate hmac

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0xa0
mov qword [rbp + 0x10], rcx
mov eax, edx
mov byte [rbp + 0x18], al
lea rax, str.normalizePathEnd
mov qword [rbp - 0x38], rax
lea rax, str._home_ebahie_.choosenim_toolchains_nim_2.0.0_lib_std_private_ospaths2.nim
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x30], 0
mov word [rbp - 0x20], 0
lea rax, [rbp - 0x40]
mov rcx, rax
call fcn.14001226c
mov qword [rbp - 0x30], 0x35
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
test rax, rax
je 0x140012704
nop
mov qword [rbp - 0x30], 0x36
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
mov qword [rbp - 8], rax
mov qword [rbp - 0x30], 0x37
cmp qword [rbp - 8], 0
jle 0x140012610
mov qword [rbp - 0x30], 0x38
mov edx, 0
mov rax, qword [rbp - 8]
sub rax, 1
jno 0x1400123c2
mov edx, 1
mov rcx, rax
lea rax, [rbp - 0x48]
mov qword [rax], rcx
mov rax, rdx
and eax, 1
test al, al
je 0x1400123db
call sym.raiseOverflow__
mov rax, qword [rbp - 0x48]
test rax, rax
js 0x1400123f4
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax]
mov rax, qword [rbp - 0x48]
cmp rdx, rax
jg 0x14001240b
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
lea rdx, [rax - 1]
mov rax, qword [rbp - 0x48]
mov rcx, rax
call sym.raiseIndexError2_long_long__long_long_
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x48]
movzx eax, byte [rdx + rax + 8]
cmp al, 0x5c
je 0x140012435
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x48]
movzx eax, byte [rdx + rax + 8]
cmp al, 0x2f
jne 0x14001246f
mov edx, 0
mov rax, qword [rbp - 8]
sub rax, 1
jno 0x140012449
mov edx, 1
mov rcx, rax
lea rax, [rbp - 0x50]
mov qword [rax], rcx
mov rax, rdx
and eax, 1
test al, al
je 0x140012462
call sym.raiseOverflow__
mov rax, qword [rbp - 0x50]
mov qword [rbp - 8], rax
jmp 0x14001260b
nop
mov qword [rbp - 0x30], 0x39
mov byte [rbp - 9], 0
mov byte [rbp - 0xa], 0
mov edx, 0
mov rax, qword [rbp - 8]
sub rax, 1
jno 0x140012494
mov edx, 1
mov rcx, rax
lea rax, [rbp - 0x58]
mov qword [rax], rcx
mov rax, rdx
and eax, 1
test al, al
je 0x1400124ad
call sym.raiseOverflow__
mov rax, qword [rbp - 0x58]
test rax, rax
js 0x1400124c6
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax]
mov rax, qword [rbp - 0x58]
cmp rdx, rax
jg 0x1400124dd
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
lea rdx, [rax - 1]
mov rax, qword [rbp - 0x58]
mov rcx, rax
call sym.raiseIndexError2_long_long__long_long_
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x58]
movzx eax, byte [rdx + rax + 8]
cmp al, 0x2e
sete al
mov byte [rbp - 0xa], al
movzx eax, byte [rbp - 0xa]
xor eax, 1
test al, al
jne 0x14001250e
cmp qword [rbp - 8], 1
setg al
mov byte [rbp - 0xa], al
jmp 0x14001250f
nop
movzx eax, byte [rbp - 0xa]
mov byte [rbp - 9], al
movzx eax, byte [rbp - 9]
xor eax, 1
test al, al
jne 0x1400125bd
mov edx, 0
mov rax, qword [rbp - 8]
sub rax, 2
jno 0x140012539
mov edx, 1
mov rcx, rax
lea rax, [rbp - 0x60]
mov qword [rax], rcx
mov rax, rdx
and eax, 1
test al, al
je 0x140012552
call sym.raiseOverflow__
mov rax, qword [rbp - 0x60]
test rax, rax
js 0x14001256b
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax]
mov rax, qword [rbp - 0x60]
cmp rdx, rax
jg 0x140012582
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
lea rdx, [rax - 1]
mov rax, qword [rbp - 0x60]
mov rcx, rax
call sym.raiseIndexError2_long_long__long_long_
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x60]
movzx eax, byte [rdx + rax + 8]
cmp al, 0x5c
je 0x1400125ac
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x60]
movzx eax, byte [rdx + rax + 8]
cmp al, 0x2f
jne 0x1400125b3
mov eax, 1
jmp 0x1400125b8
mov eax, 0
mov byte [rbp - 9], al
jmp 0x1400125be
nop
movzx eax, byte [rbp - 9]
xor eax, 1
test al, al
jne 0x140012600
mov edx, 0
mov rax, qword [rbp - 8]
sub rax, 1
jno 0x1400125dd
mov edx, 1
mov rcx, rax
lea rax, [rbp - 0x68]
mov qword [rax], rcx
mov rax, rdx
and eax, 1
test al, al
je 0x1400125f6
call sym.raiseOverflow__
mov rax, qword [rbp - 0x68]
mov qword [rbp - 8], rax
jmp 0x14001260b
nop
mov qword [rbp - 0x30], 0x3a
jmp 0x140012611
jmp 0x14001239b
nop
mov qword [rbp - 0x30], 0x3b
movzx eax, byte [rbp + 0x18]
xor eax, 1
test al, al
jne 0x14001267c
mov qword [rbp - 0x30], 0x3d
cmp qword [rbp - 8], 0
jns 0x14001264e
mov rax, qword [rbp - 8]
movabs r8, 0x7fffffffffffffff
mov edx, 0
mov rcx, rax
call sym.raiseRangeErrorI_long_long__long_long__long_long_
mov rdx, qword [rbp - 8]
mov rax, qword [rbp + 0x10]
mov rcx, rax
call sym.setLengthStrV2_NimStringV2__long_long_
mov qword [rbp - 0x30], 0x3f
mov rax, qword [rbp + 0x10]
mov edx, 0x5c
mov rcx, rax
call sym.nimAddCharV1_NimStringV2__char_
jmp 0x140012705
nop
mov qword [rbp - 0x30], 0x40
cmp qword [rbp - 8], 0
jle 0x1400126c8
mov qword [rbp - 0x30], 0x42
cmp qword [rbp - 8], 0
jns 0x1400126b6
mov rax, qword [rbp - 8]
movabs r8, 0x7fffffffffffffff
mov edx, 0
mov rcx, rax
call sym.raiseRangeErrorI_long_long__long_long__long_long_
mov rdx, qword [rbp - 8]
mov rax, qword [rbp + 0x10]
mov rcx, rax
call sym.setLengthStrV2_NimStringV2__long_long_
jmp 0x140012705
nop
mov qword [rbp - 0x30], 0x19
lea rax, [0x14001caf8]
mov qword [rbp - 0x28], rax
mov rax, qword [0x14001ca80]
mov rdx, qword [0x14001ca88]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rdx
lea rdx, [rbp - 0x80]
mov rax, qword [rbp + 0x10]
mov rcx, rax
call sym.eqsink___stdZassertions_u36_NimStringV2__NimStringV2_
jmp 0x140012705
nop
call fcn.1400122fc
nop
add rsp, 0xa0
pop rbp
ret