Function at 0x203a1920
Capabilities:
Authenticate hmac

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r8, rcx
mov rax, qword [0x205a38a0]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x38], 0xaac90f97
mov dword [rsp + 0x30], 0x2361860c
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor ecx, ecx
xor edx, edx
xor r9d, r9d
call fcn.203a8410
mov qword [rsp + 0x48], rax
test rax, rax
je 0x203a1c2c
movabs rax, 0x57005d005a0064
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x68], 0x41005a
mov word [rsp + 0x6c], 0x33
movzx eax, word [0x2059be10]
mov ecx, eax
xor ecx, 0x3baa
mov edx, eax
and edx, 0x3baa
lea ecx, [rcx + rdx*2]
xor ecx, 0x64
mov word [rsp + 0x60], cx
add eax, 0x3b77
cmp cx, ax
je 0x203a1b79
movzx eax, word [rsp + 0x62]
movzx ecx, word [0x2059be10]
mov edx, ecx
xor edx, 0x3baa
and ecx, 0x3baa
lea ecx, [rdx + rcx*2]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
or cx, dx
mov word [rsp + 0x62], cx
je 0x203a1b79
mov eax, dword [rsp + 0x64]
mov ecx, eax
mov edx, 0x3baa
add edx, dword [0x2059be10]
not ecx
and edx, ecx
xor eax, 0xffffffcc
and ecx, 0x33
or ecx, eax
not ecx
or cx, dx
mov word [rsp + 0x64], cx
je 0x203a1b79
xor word [rsp + 0x66], 0x33
je 0x203a1b79
movzx eax, word [rsp + 0x68]
mov ecx, eax
not ecx
and ecx, 0x33
and eax, 0xffffffcc
or ax, cx
mov word [rsp + 0x68], ax
je 0x203a1b79
movzx eax, word [rsp + 0x6a]
mov ecx, eax
not ecx
mov edx, 0x3baa
add edx, dword [0x2059be10]
and edx, ecx
and eax, 0xffffffcc
or ax, dx
mov word [rsp + 0x6a], ax
je 0x203a1b79
movzx eax, word [rsp + 0x6c]
mov ecx, eax
not ecx
and ecx, 0x33
and eax, 0xffffffcc
or ax, cx
mov word [rsp + 0x6c], ax
je 0x203a1b79
movzx eax, word [rsp + 0x6e]
mov ecx, eax
not ecx
and ecx, 0x33
and eax, 0xffffffcc
or ax, cx
mov word [rsp + 0x6e], ax
je 0x203a1b79
mov eax, dword [rsp + 0x70]
xor eax, 0x33
mov word [rsp + 0x70], ax
mov ecx, 0x3b77
add ecx, dword [0x2059be10]
cmp ax, cx
je 0x203a1b79
xor word [rsp + 0x72], 0x33
je 0x203a1b79
mov eax, dword [rsp + 0x74]
mov ecx, eax
not ecx
xor eax, 0x33
or ecx, 0xffcc
and cx, ax
mov word [rsp + 0x74], cx
je 0x203a1b79
xor word [rsp + 0x76], 0x33
je 0x203a1b79
mov eax, dword [rsp + 0x78]
xor eax, 0x33
mov word [rsp + 0x78], ax
mov ecx, 0x3b77
add ecx, dword [0x2059be10]
cmp ax, cx
je 0x203a1b79
movzx eax, word [rsp + 0x7a]
mov ecx, eax
not ecx
and ecx, 0x33
and eax, 0xffffffcc
or ax, cx
mov word [rsp + 0x7a], ax
je 0x203a1b79
movzx eax, word [rsp + 0x7c]
mov ecx, eax
not ecx
and ecx, 0x33
and eax, 0xffffffcc
or ax, cx
mov word [rsp + 0x7c], ax
je 0x203a1b79
movzx eax, word [rsp + 0x7e]
movzx ecx, word [0x2059be10]
mov edx, ecx
xor edx, 0x36
and ecx, 0x16
lea ecx, [rdx + rcx*2]
xor ecx, eax
and ecx, 0x33
and eax, 0xffffffcc
or eax, ecx
mov word [rsp + 0x7e], ax
mov eax, dword [0x2059be04]
lea ecx, [rax - 0x88605c]
lea edx, [rax + 0x410532fc]
add eax, 0xcc365ab5
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edx
xor eax, eax
mov qword [rsp + 0x50], rax
lea r8, [rsp + 0x60]
mov edx, ecx
xor r9d, r9d
call fcn.203a83d0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x58], rax
test rax, rax
je 0x203a1c33
mov rax, qword [rsp + 0x48]
cmp word [rax], 0x5c
jne 0x203a1beb
mov eax, 0x3bd3
add eax, dword [0x2059be10]
xor edx, edx
mov rcx, qword [rsp + 0x48]
cmp word [rcx + 2], ax
sete dl
add edx, edx
mov qword [rsp + 0x50], rdx
mov eax, dword [0x205b6d70]
mov ecx, 0xff779fa5
nop word cs:[rax + rax]
mov edx, dword [0x205b6d70]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x2059be04]
add r8d, ecx
xor edx, edx
div r8d
test edx, edx
jne 0x203a1c00
mov eax, dword [0x205b6d74]
cmp eax, 0x3f
jg 0x203a1c90
jmp 0x203a1c5f
mov esi, 0xffffffff
jmp 0x203a1c3f
mov dword [rsp + 0x40], 0xfffffffe
mov esi, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.204278f0
mov eax, esi
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movsxd rax, dword [0x20491f18]
mov ecx, dword [0x205b6d70]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, 0xff779fa3
add ecx, dword [0x2059be04]
cmp edx, ecx
je 0x203a1ca9
nop word cs:[rax + rax]
mov eax, dword [0x20491f18]
mov eax, dword [0x205b6d70]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x203a1c90
jmp 0x203a1c5f
lea rcx, [0x20491f18]
xor rax, rcx
mov rdx, rax
not rdx
and rdx, rcx
movabs rcx, 0xe1802ee4749ade8b
sub rax, rcx
lea rax, [rax + rdx*2]
add rax, rcx
mov edx, dword [0x205b4cec]
add edx, dword [0x20491f10]
xor r8d, r8d
mov dword [rsp + 0x40], 1
mov ebp, 0xff779fa4
lea r14, [fcn.203a1920]
mov dword [rsp + 0x44], 0
xor r12d, r12d
jmp 0x203a1e33
lea r9d, [rbx - 0x61]
mov edi, dword [0x2059be10]
mov r11d, 0x3b91
add edi, r11d
lea r11d, [rbx - 0x20]
cmp r9w, di
cmovae r11d, ebx
lea r9d, [rcx - 0x61]
lea edi, [rcx - 0x20]
cmp r9w, 0x1a
cmovae edi, ecx
mov ecx, dword [0x2059be04]
mov r9d, ecx
xor r9d, 0xff779fa5
and ecx, 0x7f779fa5
movzx ebx, byte [0x2059be00]
add bl, 0xa0
cmp r11w, di
lea ecx, [r9 + rcx*2]
mov r9d, dword [rsp + 0x40]
cmovne r9d, ecx
mov dword [rsp + 0x40], r9d
movzx ecx, byte [rsp + 0x44]
movzx r9d, bl
cmove r9d, ecx
mov ecx, r12d
xor ecx, 1
and r12d, 1
lea r12d, [rcx + r12*2]
add r12d, dword [0x205b3b80]
mov ecx, r9d
not cl
mov dword [rsp + 0x44], r9d
xor r9b, 1
and cl, 0xfe
or cl, r9b
not cl
movzx r9d, byte [0x205b4ce8]
and r13d, r10d
movzx ebx, word [0x20491ed4]
cmp r13d, 1
mov r10d, 0
sbb r10d, r10d
movzx r11d, word [0x205b5a50]
mov edi, r11d
xor edi, r10d
and r10d, r11d
lea r10d, [rdi + r10*2]
sub ebx, esi
xor ebx, r10d
not ebx
and ebx, r10d
movzx esi, bh
or esi, ebx
add cl, r9b
xor r9b, sil
mov r10d, r9d
not r10b
and r10b, sil
add r10b, byte [0x205b6d58]
add r10b, r10b
mov r11d, r9d
xor r11b, r10b
and r10b, r9b
add r10b, r10b
add r10b, r11b
mov byte [0x205b4ce8], r10b
movzx r9d, byte [0x2059be00]
add r9b, 0x9f
cmp cl, r9b
jne 0x203a1c3b
mov ecx, r12d
mov r9, qword [0x205b3990]
movabs r10, 0x8c957ed328102e50
sub r9, r10
add rcx, qword [0x205b4c08]
add r9, r10
add r9, rcx
mov rcx, qword [rsp + 0x58]
movzx ebx, word [rcx + r9*2]
test bx, bx
je 0x203a1c3b
mov rcx, qword [rsp + 0x50]
add ecx, r12d
mov r9, qword [rsp + 0x48]
movzx ecx, word [r9 + rcx*2]
mov r9d, dword [0x2059a228]
mov r10d, dword [0x205b3d5c]
lea r13d, [r10 + r9]
add r10d, r9d
inc r10d
mov dword [0x2059a228], r10d
test r13d, r10d
je 0x203a1eb0
xor esi, esi
jmp 0x203a1ec0
xor r9d, r9d
mov esi, 0
test edx, edx
jg 0x203a1ed8
nop dword [rax]
test r8b, r8b
jne 0x203a1ec0
cmp bx, cx
jne 0x203a1d10
mov r9d, dword [rsp + 0x44]
jmp 0x203a1d81
xor esi, esi
jmp 0x203a1eee
mov r11d, 0xfffffffe
sub r9d, r11d
cmp r9d, edx
jge 0x203a1ec0
mov r11d, dword [0x205b6d74]
nop word cs:[rax + rax]
test r8b, r8b
jne 0x203a1f00
movsxd r11, r9d
add r11, rax
movzx edi, word [r11]
mov r11d, dword [0x205b6d74]
cmp r11d, 0x62
jge 0x203a1f50
nop dword [rax]
mov r11d, dword [0x205b6d70]
mov r15d, dword [0x2059be04]
neg r15d
add r15d, r11d
add r15d, 0x88605c
imul r15d, r11d
test r15b, 1
je 0x203a1f60
nop word cs:[rax + rax]
mov r11d, dword [0x205b6d74]
cmp r11d, 0x15
jge 0x203a1f50
jmp 0x203a1f20
mov r11d, edi
xor r11d, edi
not r11d
and r11d, esi
xor r11d, edi
mov esi, r11d
mov r11d, dword [0x205b6d70]
lea edi, [r11 - 1]
imul edi, r11d
test dil, 1
jne 0x203a1fc0
nop word [rax + rax]
mov r11d, dword [0x2059be04]
add r11d, ebp
lea edi, [r14 + r14]
add edi, 0x3020
xor r11d, edi
not r11d
test r11d, edi
je 0x203a1ee0
nop word cs:[rax + rax]
mov r11d, dword [0x205b6d74]
cmp r11d, 0x4b
jge 0x203a1fc0
jmp 0x203a1f90