Function at 0x2024e2b0
Capabilities:
Authenticate hmac

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x50], 0xfffffffffffffffe
mov r15d, r9d
mov qword [rbp + 0x28], rdx
mov r14, qword [rcx + 0x18]
test r14, r14
je 0x2024e424
mov rbx, rcx
mov qword [rbp - 8], r8
lea rdi, [r14 + 3]
mov qword [rbp - 0x10], 0
mov rcx, rdi
call fcn.20427894
mov r13, rax
lea rsi, [rbx + 8]
mov rcx, rax
xor edx, edx
mov qword [rbp - 0x40], rdi
mov r8, rdi
call fcn.2044feb0
cmp qword [rbx + 0x20], 0x10
mov rdi, qword [rbx + 8]
mov r8, qword [rbx + 0x18]
mov r12, rsi
cmovae r12, rdi
mov rcx, r13
mov rdx, r12
call fcn.2044f800
test r15b, 2
jne 0x2024e380
mov rcx, r12
mov edx, 0x20
mov r8, r14
mov r9d, 0x750a0b22
call fcn.20258ec0
test rax, rax
je 0x2024e380
sub rax, r12
cmp qword [rbx + 0x20], 0x10
cmovae rsi, rdi
cmp rax, 0xffffffffffffffff
je 0x2024e389
lea rax, [r13 + 1]
mov qword [rbp + 0x48], rax
mov byte [r13], 0x22
mov al, 1
mov dword [rbp + 0x40], eax
jmp 0x2024e394
cmp qword [rbx + 0x20], 0x10
cmovae rsi, rdi
mov dword [rbp + 0x40], 0
mov qword [rbp + 0x48], r13
movzx eax, byte [rsi]
movsx ecx, al
nop word [rax + rax]
mov edx, dword [0x205b4af8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x2024e3cd
nop word cs:[rax + rax]
mov edx, dword [0x205b4afc]
cmp edx, 0x21
jge 0x2024e3c0
jmp 0x2024e3a0
mov qword [rbp + 0x30], r13
mov r12, qword [0x20566548]
movsxd rdi, dword [r12]
mov r14d, dword [0x20479244]
movzx edx, byte [rsi + 1]
mov r8d, eax
xor r8b, 0x5c
mov r9d, edx
xor r9b, 0x5c
or r9b, r8b
sete r8b
cmp al, 0x2f
sete bl
or bl, r8b
cmp dl, 0x3a
jne 0x2024e486
mov edx, 0xf62ad42d
mov r8d, 0xa8944f41
mov r9d, 0xf1cd3cff
call fcn.2025b1f0
mov r13d, eax
jmp 0x2024e489
mov eax, r15d
not eax
xor r15d, 1
and eax, 0xfffffffe
or eax, r15d
cmp eax, 0xffffffff
je 0x2024e64b
mov rsi, qword [rbp + 0x28]
mov qword [rsi + 0x20], 0xf
mov qword [rsi + 0x18], 6
mov dword [rsp + 0x20], 0xf62ad42d
xor ecx, ecx
mov edx, 1
mov r8d, 0xae0c1ddd
mov r9d, 0x86230967
call fcn.2025a530
mov ecx, dword [rax]
mov dword [rsi + 8], ecx
movzx eax, word [rax + 4]
mov word [rsi + 0xc], ax
mov byte [rsi + 0xe], 0
jmp 0x2024e785
xor r13d, r13d
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x20], 0xf
mov byte [rbp + 8], 0
lea rax, [0x2046e288]
mov qword [rbp], rax
test r15b, 1
sete al
or bl, al
jne 0x2024e503
mov rcx, rbp
call fcn.2024ed70
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x20]
lea rdx, [rax + 1]
cmp rcx, 0x10
lea r8, [rbp + 9]
cmovae r8, rdx
cmp byte [r8], 0x3a
jne 0x2024e503
cmp rcx, 0x10
lea rcx, [rbp + 8]
cmovb rax, rcx
movsx ecx, byte [rax]
mov edx, 0xf62ad42d
mov r8d, 0xa8944f41
mov r9d, 0xf1cd3cff
call fcn.2025b1f0
mov dword [rbp + 0x44], eax
jmp 0x2024e50a
mov dword [rbp + 0x44], 0
mov rbx, rdi
xor rbx, r12
and rdi, r12
test r13b, r13b
je 0x2024e56e
mov eax, r15d
xor eax, 0xfffffffe
test eax, r15d
je 0x2024e529
cmp r13b, byte [rbp + 0x44]
je 0x2024e56e
movzx eax, byte [0x205b4b09]
add al, byte [rsi]
movzx ecx, byte [0x205b4b08]
mov edx, ecx
xor dl, al
and al, cl
add al, al
add al, dl
movsx ecx, al
mov edx, 0xf62ad42d
mov r8d, 0xa8944f41
mov r9d, 0xf1cd3cff
call fcn.2025b1f0
mov rcx, qword [rbp + 0x48]
mov byte [rcx], al
mov byte [rcx + 1], 0x3a
add rcx, 2
mov qword [rbp + 0x48], rcx
lea rax, [rbx + rdi*2]
and r15d, 1
mov r8d, dword [0x2056653c]
mov ecx, dword [0x205b4afc]
cmp ecx, 0x24
nop word cs:[rax + rax]
mov ecx, dword [0x205b4af8]
lea edx, [rcx + 1]
imul edx, ecx
test dl, 1
jne 0x2024e590
mov edx, r8d
xor edx, 1
mov dword [rbp + 0x3c], r8d
mov ecx, r8d
and ecx, 1
add ecx, ecx
xor r8d, r8d
mov r9d, edx
xor r9d, ecx
mov r10d, edx
and r10d, ecx
lea edi, [r9 + r10*2]
sub edx, ecx
imul edx, ecx
nop dword [rax + rax]
test r8b, r8b
jne 0x2024e5e0
mov dword [0x2056653c], edi
test r8b, r8b
je 0x2024e622
mov r9d, edx
shl r9d, cl
mov r10d, r9d
neg r10d
mov r11d, ecx
sub r11d, r9d
mov ebx, r9d
sub ebx, r11d
imul ebx, r11d
imul r10d, ebx
sub ebx, r9d
sub ebx, r10d
imul ebx, r10d
add ebx, r10d
mov dword [0x2056653c], ebx
mov r9d, dword [0x205b4afc]
cmp r9d, 0x2d
jge 0x2024e5d0
jmp 0x2024e5d5
xor r12d, r12d
mov ebx, dword [rbp + 0x3c]
test ebx, edi
jne 0x2024e631
test r14d, r14d
jg 0x2024e67f
mov eax, dword [0x205b4af8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x2024e7b0
jmp 0x2024e794
mov ecx, 0x19dfe25e
mov edx, 0x402900ad
mov r8d, 0x19dfe25e
call fcn.2025a7d0
mov rdi, rax
xorps xmm0, xmm0
mov rax, qword [rbp + 0x28]
movups xmmword [rax + 0x18], xmm0
mov rsi, qword [rdi + 0x18]
cmp qword [rdi + 0x20], 0x10
jb 0x2024e6be
mov rdi, qword [rdi + 8]
jmp 0x2024e6c2
xor r12d, r12d
mov ecx, 4
nop word [rax + rax]
lea edx, [rcx - 4]
movsxd rdx, edx
mov edx, dword [rax + rdx]
mov r8d, dword [0x205b4af8]
mov r8d, dword [0x205b4afc]
cmp r8d, 0x36
jg 0x2024e6a0
xor r12d, edx
cmp ecx, r14d
jge 0x2024e631
add ecx, 4
jmp 0x2024e690
add rdi, 8
lea r14, [rax + 8]
cmp rsi, 0xf
ja 0x2024e6dd
movups xmm0, xmmword [rdi]
movups xmmword [r14], xmm0
mov ebx, 0xf
jmp 0x2024e776
mov rbx, rsi
or rbx, 0xf
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
cmovae rbx, rax
cmp rbx, 0xfff
jb 0x2024e744
lea rcx, [rbx + 0x28]
mov edx, 0x172e7d99
mov r8d, 0x421bd833
call fcn.2008daf0
movabs rcx, 0x8bdc8d53c899436e
add rcx, rax
mov rdx, rcx
xor rdx, 0x27
and ecx, 0x27
lea rdx, [rdx + rcx*2]
movabs rcx, 0x742372ac3766bc92
add rcx, rdx
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x2024e75b
lea rcx, [rbx + 1]
mov edx, 0x172e7d99
mov r8d, 0x421bd833
call fcn.2008daf0
mov rcx, rax
mov qword [r14], rcx
mov rax, rsi
xor rax, 1
mov edx, esi
and edx, 1
lea r8, [rax + rdx*2]
mov rdx, rdi
call fcn.2044f800
mov rax, qword [rbp + 0x28]
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rbx
mov rsi, rax
lea rax, [0x2046c448]
mov qword [rsi], rax
jmp 0x2024ebeb
lea rax, [fcn.2024e2b0]
add eax, eax
add eax, 0x2380
mov ecx, eax
not ecx
test ecx, eax
je 0x2024e7bd
nop word [rax + rax]
mov eax, dword [0x205b4afc]
cmp eax, 0x40
jge 0x2024e7b0
jmp 0x2024e794
xor r14d, r14d
test r15d, r15d
je 0x2024e7ef
mov r15d, dword [rbp + 0x44]
cmp r13b, r15b
je 0x2024e7ef
mov byte [rbp - 0x38], r13b
mov word [rbp - 0x37], 0x3a
lea rcx, [rbp - 0x38]
call fcn.2024ef40
mov rcx, rbp
call fcn.2024ed70
mov r14d, r15d
mov ebx, dword [rbp + 0x3c]
xor eax, eax
test r13b, r13b
setne al
lea r13, [rsi + rax*2]
mov rax, qword [rbp + 0x18]
test rax, rax
mov dword [rbp + 0x44], r14d
je 0x2024e8b9
mov r9, qword [rbp + 8]
lea rdx, [r9 + 1]
cmp qword [rbp + 0x20], 0x10
lea r8, [rbp + 9]
cmovae r8, rdx
cmp byte [r8], 0x3a
jne 0x2024e874
cmp rax, 2
mov edx, 2
cmovb rdx, rax
cmp qword [rbp + 0x20], 0x10
lea rcx, [rbp + 8]
cmovae rcx, r9
sub rax, rdx
mov qword [rbp + 0x18], rax
movabs r9, 0x10bd7c52c88a68f1
mov r8, rax
xor r8, r9
and rax, r9
lea rax, [r8 + rax*2]
movabs r8, 0xef4283ad37759710
add r8, rax
add rdx, rcx
call fcn.2044f800
mov r8, qword [rbp + 0x18]
mov qword [rbp - 0x20], 0
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], 0
lea rax, [0x2046c448]
mov qword [rbp - 0x38], rax
lea rcx, [rbp - 0x38]
mov rdx, r13
call fcn.2025dae0
lea rcx, [rbp - 0x38]
mov rdx, rbp
call fcn.20191830
test eax, eax
je 0x2024e8c2
mov r15, qword [rbp + 0x30]
jmp 0x2024e919
mov r15, qword [rbp + 0x30]
jmp 0x2024e99a
mov rax, qword [rbp + 0x18]
movsx ecx, byte [r13 + rax]
test ecx, ecx
mov r15, qword [rbp + 0x30]
je 0x2024e8e9
cmp ecx, 0x5c
jne 0x2024e904
mov rcx, rax
xor rcx, 1
and eax, 1
lea rax, [rcx + rax*2]
jmp 0x2024e916
mov rax, qword [rbp + 0x48]
mov byte [rax], 0x2e
inc rax
mov qword [rbp + 0x48], rax
mov rax, qword [0x205b4b00]
add rax, qword [rbp + 0x18]
jmp 0x2024e916
cmp rax, 1
sete al
test r14b, r14b
sete cl
and cl, al
movzx eax, cl
add r13, rax
mov rax, qword [rbp - 0x18]
cmp rax, 0x10
jb 0x2024e99a
mov rdx, qword [rbp - 0x30]
movabs rcx, 0x10da26b383dabcfa
add rcx, rax
movabs r8, 0xef25d94c7c254307
xor r8, rcx
movabs r9, 0x6f25d94c7c254307
and r9, rcx
lea r9, [r8 + r9*2]
cmp r9, 0x1000
jb 0x2024e97a
mov rcx, qword [rdx - 8]
sub rdx, rcx
add rdx, 0xfffffffffffffff8
cmp rdx, 0x20
jae 0x2024ec07
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x28], 0x30444f19
mov dword [rsp + 0x20], 0x790a6c13
mov ecx, 1
mov r8d, 1
call fcn.202592e0
mov rax, qword [rbp - 8]
test rax, rax
mov esi, 0x7fffffff
cmovne rsi, rax
mov rcx, r13
mov edx, 0x5c339488
mov r8d, 0x9a777dde
call fcn.2008dcc0
cmp rax, rsi
jle 0x2024ea8b
mov r14, rax
mov rax, qword [rbp - 0x40]
lea r8, [rax + r15]
xor eax, eax
movabs rbx, 0x100000000
cmp r14, rsi
jle 0x2024ea7c
mov rdx, r13
lea r15, [r13 + 1]
mov r13, rbx
movzx ecx, byte [0x205b3d70]
add cl, byte [r15]
cmp cl, 0x5c
je 0x2024ea10
movzx ecx, cl
test ecx, ecx
je 0x2024ea81
inc r15
add r13, rbx
jmp 0x2024e9f0
mov ecx, eax
not cl
mov edx, eax
xor dl, 1
and cl, 0xfe
or cl, dl
cmp cl, 0xff
jne 0x2024ea65
mov qword [rbp - 0x48], r8
sub r8, qword [rbp + 0x48]
mov qword [rbp - 8], r8
mov ecx, 1
mov edx, 1
mov r8d, 0x550f16d
mov r9d, 0xfb1484b4
call fcn.20259540
mov rcx, qword [rbp + 0x48]
mov rdx, qword [rbp - 8]
mov r8, rax
call fcn.2040f134
add qword [rbp + 0x48], 4
mov al, 1
mov r8, qword [rbp - 0x48]
sar r13, 0x20
sub r14, r13
mov r13, r15
mov r15, qword [rbp + 0x30]
cmp r14, rsi
jg 0x2024e9e6
mov ebx, dword [rbp + 0x3c]
jmp 0x2024ea8b
mov r15, qword [rbp + 0x30]
mov ebx, dword [rbp + 0x3c]
mov r13, rdx
mov eax, dword [0x205b4afc]
mov eax, dword [0x205b4afc]
cmp eax, 0x63
jl 0x2024eaa2
mov eax, dword [0x20479240]
and ebx, edi
mov eax, dword [0x20479240]
xor ecx, ecx
cmp ebx, 1
sbb ecx, ecx
sub eax, r12d
and eax, ecx
add qword [0x205b4b00], rax
mov rdx, qword [rbp - 0x40]
add rdx, r15
mov rcx, qword [rbp + 0x48]
sub rdx, rcx
mov r8, r13
call fcn.2040f134
mov rbx, qword [rbp + 0x48]
mov rcx, rbx
mov edx, 0x5c339488
mov r8d, 0x9a777dde
call fcn.2008dcc0
mov rdi, rax
mov eax, dword [rbp + 0x44]
test al, al
je 0x2024eb0a
mov byte [rbp - 0x38], al
mov word [rbp - 0x37], 0x3a
lea rcx, [rbp - 0x38]
call fcn.2024ef40
mov rbx, qword [rbp + 0x48]
add rbx, rdi
cmp byte [rbp + 0x40], 0
je 0x2024eb19
mov byte [rbx], 0x22
inc rbx
mov rsi, qword [rbp + 0x28]
mov r14, qword [rbp + 0x30]
mov byte [rbx], 0
mov rax, qword [rbp + 0x20]
cmp rax, 0x10
jb 0x2024eb7e
mov rdx, qword [rbp + 8]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x2024eb5e
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x2024ec02
add rax, 0x28
mov r9, rax
mov rdx, rcx
mov dword [rsp + 0x28], 0x30444f19
mov dword [rsp + 0x20], 0x790a6c13
mov ecx, 1
mov r8d, 1
call fcn.202592e0
lea rdi, [rsi + 8]
mov qword [rsi + 0x18], 0
mov qword [rsi + 0x20], 0xf
mov byte [rsi + 8], 0
mov rcx, r14
mov edx, 0x5c339488
mov r8d, 0x9a777dde
call fcn.2008dcc0
mov rbx, rax
cmp rax, 0xf
jbe 0x2024ebc2
mov rcx, rdi
mov rdx, rbx
mov r9, r14
call fcn.2006bec0
jmp 0x2024ebd9
mov qword [rsi + 0x18], rbx
mov rcx, rdi
mov rdx, r14
mov r8, rbx
call fcn.2044f800
mov byte [rsi + rbx + 8], 0
lea rax, [0x2046c448]
mov qword [rsi], rax
mov rcx, r14
call fcn.2008bfb0
mov rax, rsi
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.20407a4c
call fcn.20407a4c
int3