Function at 0x140062fc0
Capabilities:
Authenticate hmac

Disassembly:
push rdi
sub rsp, 0x20
mov r10, rcx
lea rdi, [0x140000000]
movzx ecx, byte [rcx]
mov r9, rdx
movzx eax, byte [rcx + rdi + 0x16f0d0]
cmp eax, 0x1a
ja case.default.0x140062ff2
mov r8d, dword [rdi + rax*4 + 0x636e0]
add r8, rdi
jmp r8
movzx eax, byte [r10 + 1]
inc r10
mov edx, 1
test byte [rax + rdi + 0x16c7b0], dl
je 0x140063025
nop dword [rax + rax]
movzx eax, byte [r10 + 1]
lea r10, [r10 + 1]
inc edx
test byte [rax + rdi + 0x16c7b0], 1
jne 0x140063010
mov dword [r9], 0xa2
mov eax, edx
add rsp, 0x20
pop rdi
ret
cmp byte [r10 + 1], 0x2d
jne 0x140063072
mov edx, 2
add r10, rdx
movzx eax, byte [r10]
test eax, eax
je 0x140063025
nop dword [rax + rax]
cmp eax, 0xa
je 0x140063025
movzx eax, byte [r10 + 1]
inc r10
inc edx
test eax, eax
jne 0x140063050
mov dword [r9], 0xa2
mov eax, edx
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5a
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x16
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x17
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov edx, 1
mov dword [r9], edx
mov eax, edx
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x59
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5b
mov eax, 1
add rsp, 0x20
pop rdi
ret
cmp byte [r10 + 1], 0x2a
jne 0x14006311d
movzx eax, byte [r10 + 2]
test al, al
je 0x14006311d
mov edx, 3
movzx eax, al
add r10, rdx
cmp eax, 0x2a
jne 0x1400630fd
cmp byte [r10], 0x2f
je 0x14006310c
movzx eax, byte [r10]
test eax, eax
je 0x14006310e
inc edx
inc r10
jmp 0x1400630f2
inc edx
mov dword [r9], 0xa2
mov eax, edx
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5c
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5d
mov eax, 1
add rsp, 0x20
pop rdi
ret
xor r8d, r8d
mov dword [rdx], 0x35
cmp byte [r10 + 1], 0x3d
sete r8b
lea eax, [r8 + 1]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
cmp eax, 0x3d
jne 0x140063176
mov dword [rdx], 0x37
mov eax, 2
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
je 0x1400631ef
cmp eax, 0x3c
jne 0x140063191
mov dword [rdx], 0x57
mov eax, 2
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x38
mov eax, 1
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
cmp eax, 0x3d
jne 0x1400631bd
mov dword [rdx], 0x39
mov eax, 2
add rsp, 0x20
pop rdi
ret
cmp eax, 0x3e
jne 0x1400631d3
mov dword [rdx], 0x58
mov eax, 2
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x36
mov eax, 1
add rsp, 0x20
pop rdi
ret
cmp byte [r10 + 1], 0x3d
jne case.default.0x140062ff2
mov dword [rdx], 0x34
mov eax, 2
add rsp, 0x20
pop rdi
ret
cmp byte [r10 + 1], 0x7c
je 0x140063218
mov dword [rdx], 0x56
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x5e
mov eax, 2
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x1a
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x55
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x60
mov eax, 1
add rsp, 0x20
pop rdi
ret
movzx r8d, byte [r10 + 1]
mov r11d, ecx
lea rcx, [r10 + 1]
mov edx, 1
test r8d, r8d
je 0x14006329e
add r10, 2
cmp r8d, r11d
jne 0x14006328c
movzx eax, byte [r10]
cmp eax, r11d
jne 0x14006329e
inc edx
inc r10
inc rcx
movzx r8d, byte [rcx + 1]
inc rcx
inc edx
inc r10
test r8d, r8d
jne 0x140063276
cmp r8d, 0x27
jne 0x1400632b4
mov dword [r9], 0x63
lea eax, [rdx + 1]
add rsp, 0x20
pop rdi
ret
test r8d, r8d
je 0x1400632ca
mov ecx, 0x3b
lea eax, [rdx + 1]
mov dword [r9], ecx
add rsp, 0x20
pop rdi
ret
mov r11d, 0xa3
mov eax, edx
mov dword [r9], r11d
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
test byte [rax + rdi + 0x16c7b0], 4
jne case.0x140062ff2.3
mov dword [rdx], 0x7b
mov eax, 1
add rsp, 0x20
pop rdi
ret
mov dword [rdx], 0x88
movzx ecx, byte [r10]
cmp cl, 0x30
jne 0x14006335d
movzx eax, byte [r10 + 1]
sub al, 0x58
test al, 0xdf
jne 0x14006335d
movzx eax, byte [r10 + 2]
test byte [rax + rdi + 0x16c7b0], 8
je 0x14006335d
mov edx, 3
add r10, rdx
movzx eax, byte [r10]
test byte [rax + rdi + 0x16c7b0], 8
je 0x140063355
nop word [rax + rax]
movzx ecx, byte [r10 + 1]
lea r10, [r10 + 1]
inc edx
test byte [rcx + rdi + 0x16c7b0], 8
jne 0x140063340
mov eax, edx
add rsp, 0x20
pop rdi
ret
movzx eax, cl
xor r8d, r8d
test byte [rax + rdi + 0x16c7b0], 4
je 0x140063385
mov rcx, r10
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc r8d
test byte [rax + rdi + 0x16c7b0], 4
jne 0x140063370
movsxd rax, r8d
cmp byte [rax + r10], 0x2e
jne 0x1400633c0
inc r8d
movsxd rcx, r8d
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + rdi + 0x16c7b0], 4
je 0x1400633ba
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc r8d
test byte [rax + rdi + 0x16c7b0], 4
jne 0x1400633a5
mov dword [rdx], 0x86
movsxd rax, r8d
movzx ecx, byte [rax + r10]
sub cl, 0x45
test cl, 0xdf
jne 0x14006343b
lea eax, [r8 + 1]
movsxd rcx, eax
movzx eax, byte [rcx + r10]
test byte [rax + rdi + 0x16c7b0], 4
jne 0x140063402
sub al, 0x2b
test al, 0xfd
jne 0x14006343b
lea eax, [r8 + 2]
movsxd rcx, eax
movzx eax, byte [rcx + r10]
test byte [rax + rdi + 0x16c7b0], 4
je 0x14006343b
add r8d, 2
movsxd rcx, r8d
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + rdi + 0x16c7b0], 4
je 0x140063435
nop dword [rax]
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc r8d
test byte [rax + rdi + 0x16c7b0], 4
jne 0x140063420
mov dword [rdx], 0x86
movsxd rdx, r8d
add rdx, r10
movzx eax, byte [rdx]
test byte [rax + rdi + 0x16c7b0], 0x46
je 0x140063477
mov r11d, 0xa3
nop dword [rax]
nop dword [rax + rax]
lea rdx, [rdx + 1]
mov dword [r9], r11d
movzx ecx, byte [rdx]
inc r8d
test byte [rcx + rdi + 0x16c7b0], 0x46
jne 0x140063460
mov eax, r8d
add rsp, 0x20
pop rdi
ret
mov edx, 1
mov eax, ecx
cmp ecx, 0x5d
je 0x1400634a2
inc r10
nop
movzx eax, byte [r10]
test eax, eax
je 0x1400634a2
inc edx
inc r10
cmp eax, 0x5d
jne 0x140063490
cmp eax, 0x5d
mov ecx, 0x3b
mov r11d, 0xa3
mov eax, edx
cmove r11d, ecx
mov dword [r9], r11d
add rsp, 0x20
pop rdi
ret
inc r10
mov dword [rdx], 0x89
mov edx, 1
movzx eax, byte [r10]
test byte [rax + rdi + 0x16c7b0], 4
je 0x140063355
nop
movzx eax, byte [r10 + 1]
lea r10, [r10 + 1]
inc edx
test byte [rax + rdi + 0x16c7b0], 4
jne 0x1400634e0
mov eax, edx
add rsp, 0x20
pop rdi
ret
xor r8d, r8d
mov dword [rdx], 0x89
mov qword [rsp + 0x30], rbx
mov r11d, 0xa3
movzx ebx, byte [r10 + 1]
lea edx, [r8 + 1]
test ebx, ebx
je 0x140063594
mov ecx, edx
movzx eax, bl
test byte [rax + rdi + 0x16c7b0], 0x46
je 0x140063532
inc r8d
jmp 0x140063548
cmp ebx, 0x28
je 0x140063559
cmp ebx, 0x3a
jne 0x14006358f
cmp byte [r10 + rcx + 1], bl
jne 0x14006358f
inc edx
inc rcx
movzx ebx, byte [rcx + r10 + 1]
inc rcx
inc edx
test ebx, ebx
jne 0x140063520
jmp 0x14006358f
test r8d, r8d
jle 0x140063592
add r10, rcx
movzx ecx, byte [r10 + 1]
lea r10, [r10 + 1]
inc edx
test ecx, ecx
je 0x140063583
test byte [rcx + rdi + 0x16c7b0], 1
jne 0x140063583
cmp ecx, 0x29
jne 0x140063561
inc edx
jmp 0x14006358f
cmp ecx, 0x29
jne 0x14006358c
inc edx
jmp 0x14006358f
mov dword [r9], r11d
test r8d, r8d
jne 0x140063597
mov dword [r9], r11d
mov eax, edx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
mov edx, 1
cmp byte [rax + rdi + 0x16f0d0], dl
ja 0x1400635d4
nop dword [rax + rax]
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc edx
cmp byte [rax + rdi + 0x16f0d0], 1
jbe 0x1400635c0
movsxd rax, edx
movzx ecx, byte [rax + r10]
test byte [rcx + rdi + 0x16c7b0], 0x46
je 0x1400635ed
inc edx
jmp 0x140063693
mov ecx, 0x3b
mov r8, r9
mov dword [r9], ecx
mov rcx, r10
add rsp, 0x20
pop rdi
jmp fcn.14003a170
cmp byte [r10 + 1], 0x27
jne case.0x140062ff2.2
mov dword [rdx], 0x87
lea rcx, [r10 + 2]
movzx eax, byte [rcx]
mov edx, 2
test byte [rax + rdi + 0x16c7b0], 8
je 0x140063644
nop dword [rax]
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc edx
test byte [rax + rdi + 0x16c7b0], 8
jne 0x140063630
movsxd rax, edx
cmp byte [rax + r10], 0x27
lea rcx, [rax + r10]
jne 0x140063657
test dl, 1
je 0x140063678
mov r11d, 0xa3
mov dword [r9], r11d
movzx eax, byte [rcx]
test al, al
je 0x140063678
cmp al, 0x27
je 0x140063678
movzx eax, byte [rcx + 1]
inc rcx
inc edx
test al, al
jne 0x140063667
movsxd rax, edx
lea ecx, [rdx + 1]
cmp byte [rax + r10], 0
cmove ecx, edx
mov eax, ecx
add rsp, 0x20
pop rdi
ret
mov edx, 1
movsxd rcx, edx
add rcx, r10
movzx eax, byte [rcx]
test byte [rax + rdi + 0x16c7b0], 0x46
je 0x1400636ba
movzx eax, byte [rcx + 1]
lea rcx, [rcx + 1]
inc edx
test byte [rax + rdi + 0x16c7b0], 0x46
jne 0x1400636a6
mov ecx, 0x3b
mov eax, edx
mov dword [r9], ecx
add rsp, 0x20
pop rdi
ret
mov r11d, 0xa3
mov eax, 1
mov dword [rdx], r11d
add rsp, 0x20
pop rdi
ret