Function at 0x1403a7f09
Capabilities:
Authenticate hmac

Disassembly:
push r15
and edx, r15d
and edx, 0x2a30362a
push r14
mov r8b, r8b
sub r14w, sp
dec r8w
push r13
xadd r13b, r8b
push r12
bt edx, r9d
rcr r13b, 0x7c
push rsi
push rdi
sbb r13b, 0x95
and sil, bl
movsx r13, bx
push rbp
shr dh, cl
push rbx
xor r14w, 0x50a2
or dx, 0x61ae
rcl r12w, 0x52
sub rsp, 0x88
btc r8, 0x5f
mov r14, rcx
xor dl, r9b
mov eax, dword [rcx + 0x24]
movzx r8, r10w
bt si, r10w
mov ebx, dword [rcx + 0x28]
movsx si, al
bt si, r8w
mov esi, dword [rcx + 0x2c]
setne r13b
mov r8w, 0x56e5
and r13b, 0xa6
mov ebp, dword [rcx + 0x54]
movsxd rdx, ebp
bsr r12, r8
or dx, 0x6965
mov r8d, dword [rcx + 0x50]
bts r13w, r13w
mov r12, qword [rcx + 0x30]
adc rdx, r11
movzx r13, di
mov rdx, qword [rcx + 0x38]
rcl r13, cl
adc r13, rsi
mov dword [rsp + 0x24], eax
movsxd r13, ebp
mov r13d, eax
bt ax, 0xfc
and r13d, 0x7fff
xor rax, rsi
sbb eax, edi
movzx rax, sp
lea rax, [rcx + 0xc8]
mov qword [rsp + 0x48], rax
shr rax, 0x72
bt ax, 0x76
lea rax, [rcx + 0x80c8]
stc
test r10, 0x7ac05dcd
clc
mov qword [rsp + 0x78], rax
clc
mov eax, 0x1d782636
lea rax, [rcx + 0x192a2]
test r13w, 0x3fe9
mov qword [rsp + 0x58], rax
rcr eax, cl
sar ax, 0x5c
sbb ax, bx
lea rax, [rcx + 0x1c8]
cmp rcx, r13
stc
mov qword [rsp + 0x50], rax
lahf
lea rax, [rcx + 0xd0]
mov qword [rsp + 0x60], rax
shr rax, 0
mov rax, qword [r14 + 0xb8]
test rax, rax
jne 0x1403a8074
cmp dword [r14 + 0xa8], 0
jmp 0x1403a8061
je 0x1403a8b59
test ebx, ebx
jmp 0x1403a806e
je 0x1403a8b59
mov qword [rsp + 0x30], rdx
bt r15d, edx
mov dword [rsp + 0x28], ebp
cmc
mov dword [rsp + 0x2c], r8d
movzx ebp, ax
btc r15d, r8d
adc r15w, si
mov r15d, 0x1000
rcl bp, cl
movzx bp, r15b
sub r15d, ebx
clc
cmp rax, r15
mov ebp, esp
movsx rbp, sp
movzx rbp, bp
cmovb r15, rax
shl bp, cl
movsxd rbp, r9d
rcl bp, 0xda
sub rax, r15
ror bpl, 0xbc
xadd bpl, bpl
mov qword [r14 + 0xb8], rax
clc
lea ebp, [rbx + r15]
cmp r14w, bx
test r15, r15
jmp 0x1403a80e2
je 0x1403a81da
add ebx, dword [rsp + 0x24]
movzx edx, r10w
movsxd rdx, ebx
mov rdx, qword [r14 + 0xb0]
jmp 0x1403a80ff
jmp 0x1403a8140
mov rdx, rdi
jmp 0x1403a8112
add rdx, qword [r14 + 0xb0]
cmp bp, r11w
test bx, 0x2da8
mov qword [r14 + 0xb0], rdx
test r9b, 0x28
cmp ah, 0x80
add ebx, edi
sub r15d, edi
jmp 0x1403a813a
je 0x1403a81da
and ebx, 0x7fff
inc dil
mov edi, 0x8000
bswap ecx
movsx r8, r8w
sub edi, ebx
cmp edi, r15d
mov eax, 0x6dc83139
cmovae edi, r15d
cwde
bswap cx
cmovno rax, rbp
mov rax, qword [rsp + 0x48]
jmp 0x1403a8174
lea rcx, [rax + rbx]
movzx r8, bp
movzx r8w, r12b
mov r8, rdi
call fcn.1404a4fce
cmp ebx, 0x100
jmp 0x1403a8194
ja 0x1403a8104
mov rax, qword [rsp + 0x78]
lea rcx, [rax + rbx]
rcl dx, 0x17
xor r8b, 0xe7
mov rdx, qword [r14 + 0xb0]
mov r8d, 0x101
jmp 0x1403a81c1
sub r8d, ebx
cmp edi, r8d
cmovb r8d, edi
jmp 0x1403a81d0
call fcn.1404a4fce
jmp 0x1403a8104
mov r15d, 0x8000
jmp 0x1403a81e9
mov edi, ebp
test r8, rsp
sub r15d, ebp
cmp sp, r8w
cmp r15d, esi
jmp 0x1403a81fd
cmovae r15d, esi
cmp dword [r14 + 0xa8], 0
jmp 0x1403a820e
jne 0x1403a8225
cmp edi, 0x1000
jmp 0x1403a821f
jb 0x1403a8b32
cmp edi, 4
movsxd r8, edi
mov bx, 0x1793
movsx bp, spl
mov r8d, dword [rsp + 0x2c]
movsx ebx, si
movzx rbp, ax
mov ebp, dword [rsp + 0x28]
movsxd rbx, esp
cqo
movzx dx, r11b
mov rdx, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x24]
jmp 0x1403a825c
jae 0x1403a8416
mov dword [rsp + 0x24], ebx
shrd rsi, rdx, 0x94
or sil, 0x1e
xor ebx, ebx
xadd si, si
adc esi, edx
mov esi, r15d
test r11b, 0xed
cmc
test edi, edi
jmp 0x1403a8286
je 0x1403a8044
dec edi
jmp 0x1403a8293
jmp 0x1403a82b8
inc r13d
and r13d, 0x7fff
cmc
test r8d, 0x76e8385f
add edi, 0xffffffff
jmp 0x1403a82b2
jae 0x1403a8ac0
mov eax, r13d
movzx eax, byte [r14 + rax + 0xc8]
mov byte [r12], al
bsf rcx, rbp
shr cl, cl
shr byte [rdx], 1
movzx ecx, r11w
inc ebp
mov cx, dx
inc cx
lea rcx, [r12 + 1]
jmp 0x1403a82e6
dec r8d
add r12, 2
test r8d, r8d
jmp 0x1403a82f5
cmove rdx, rcx
jmp 0x1403a82fe
cmovne r12, rcx
mov ecx, 8
cmove r8d, ecx
setge ch
mov cx, 0x1484
movzx cx, spl
inc word [r14 + rax*2 + 0x81ca]
mov ecx, dword [rsp + 0x24]
movsx rax, si
bswap rax
inc ecx
movsxd rax, esi
bswap eax
setb al
inc r15d
btr ax, sp
cmp r15d, 0x8000
jmp 0x1403a834c
mov eax, 0x8000
cmovae r15d, eax
cmp r12, qword [rsp + 0x58]
jmp 0x1403a835f
mov dword [rsp + 0x24], ecx
jmp 0x1403a8368
jbe 0x1403a8298
mov dword [r14 + 0x24], ecx
bts ecx, r8d
movsx cx, spl
seta cl
mov dword [r14 + 0x28], edi
rcl cl, 0x3e
sal rcx, 0x88
rol ch, 0
mov dword [r14 + 0x2c], r15d
mov dword [r14 + 0x54], ebp
sbb cl, 0x9f
or ch, 0x68
mov qword [r14 + 0x30], r12
mov qword [r14 + 0x38], rdx
sub cl, 0x1a
jmp 0x1403a83ad
mov dword [r14 + 0x50], r8d
mov rcx, r14
stc
cmp bp, dx
sub edx, edx
jmp 0x1403a83bf
call fcn.1403a9f81
test eax, eax
jne 0x1403a8acd
mov ebp, dword [r14 + 0x54]
mov r12, qword [r14 + 0x30]
mov rdx, qword [r14 + 0x38]
xchg r8b, r8b
movsx r8d, sp
not r8b
mov r8d, dword [r14 + 0x50]
jmp 0x1403a83eb
jmp 0x1403a8298
add r13d, dword [rsp + 0x80]
cmp r9w, cx
test r8w, dx
and r13d, 0x7fff
cmc
cmp edi, 3
jmp 0x1403a8410
jbe 0x1403a8262
mov dword [rsp + 0x28], ebp
sar al, 0x38
sbb r9, 0x3bb63d25
cbw
mov r9d, edi
shl di, 0x7f
mov qword [rsp + 0x30], rdx
btr cx, dx
movsx r11w, r9b
bswap bp
mov ebp, r13d
and edi, eax
mov r11d, dword [r14 + rbp + 0xc8]
mov ecx, r11d
movsx rax, r10w
ror sil, cl
cwd
and ecx, 0xffffff
mov dl, r13b
not eax
cwde
mov eax, ecx
movsxd rdi, r14d
shr eax, 0x11
jmp 0x1403a8473
mov edx, r11d
shrd si, bp, 0x6f
ror di, cl
and edx, 0xfff
rcr r10, 0x4d
sal esi, 0xf4
xor edx, eax
shrd esi, ebx, 0x1e
cmc
movzx edi, word [r14 + rdx*2 + 0x292aa]
btr si, di
btc r10w, di
mov word [r14 + rdx*2 + 0x292aa], bx
mov r10d, ebx
bts rsi, rbx
sub r10d, edi
movzx esi, r10w
cmp r15d, esi
jmp 0x1403a84c3
mov qword [rsp + 0x80], rbp
jmp 0x1403a84d0
jb 0x1403a86f6
mov eax, edi
sbb r13d, 0x3051185e
rol r13w, 0xa2
and eax, 0x7fff
dec dh
clc
shl dh, cl
mov rdx, qword [rsp + 0x48]
movzx r13d, r8w
shr r13, 2
mov edx, dword [rdx + rax]
shr r13w, 0x31
movsxd r13, r8d
and r13b, 0x11
mov dword [rsp + 0x44], r9d
bsr r9, r15
xor r13b, dil
xor r9, 0x61fa0e94
mov r13d, ebx
btc bx, 0x6b
or bx, 0x4d85
cmovno r9, rbx
mov ebx, 0xffffff
and edx, ebx
mov ebx, r13d
cmc
bswap r9
mov r9d, dword [rsp + 0x44]
test r8b, dil
cmp edx, ecx
jmp 0x1403a854b
jne 0x1403a86f6
mov qword [rsp + 0x70], rsi
test r9b, 0x4c
movzx si, dil
sal dl, 0xd9
mov dword [rsp + 0x2c], r8d
cmovae r8w, di
mov dword [rsp + 0x24], ebx
cmovbe r8w, si
mov rcx, qword [rsp + 0x48]
rol esi, cl
sar ebx, 0xdd
add rcx, rbp
cmp r13b, 7
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0x50]
mov esi, r14d
xor r8w, 0x3d23
lea r8, [rcx + rbp]
xadd dx, si
sbb rcx, rsp
mov rsi, rdi
or ecx, r14d
bsf ecx, ebp
btc rdx, 0xe2
and edi, 0x7fff
test dl, 0xd6
rcl dl, cl
sal bh, 0xb3
mov qword [rsp + 0x68], rdi
movsxd rbx, esi
add dx, cx
movsx bx, r12b
lea rdx, [r14 + rbp]
jmp 0x1403a85e1
add rax, qword [rsp + 0x60]
shrd rbp, rcx, 0xcb
mov ecx, 0x20
sar di, cl
setp bpl
clc
xor r13d, r13d
mov edi, r9d
rol rbp, cl
shl bx, cl
nop dword [rax]
movzx ebp, word [rdx + r13 + 0xca]
movzx ebx, word [rax + r13 - 6]
test r8, r9
stc
cmc
cmp bp, bx
jmp 0x1403a8627
jne 0x1403a873b
movzx ebp, word [rdx + r13 + 0xcc]
sub bl, r8b
movsx bx, dl
shl bx, cl
movzx ebx, word [rax + r13 - 4]
cmp bp, bx
jmp 0x1403a864e
jne 0x1403a8751
movzx ebp, word [rdx + r13 + 0xce]
shr rbx, cl
bt bx, r11w
movzx ebx, word [rax + r13 - 2]
test r13b, 0x32
cmc
jmp 0x1403a8675
cmp bp, bx
jmp 0x1403a867d
jne 0x1403a8766
movzx ebp, word [rdx + r13 + 0xd0]
movzx bx, spl
dec bh
movzx ebx, word [rax + r13]
cmc
cmp bp, bx
jmp 0x1403a86a1
jne 0x1403a8783
dec ecx
cmp r11b, 0x36
cmc
add r13, 8
clc
test r11b, cl
cmp r13d, 0x100
jmp 0x1403a86c2
jne 0x1403a860b
movzx ebp, byte [r8]
rcl bx, cl
or bx, 0x6633
mov rax, qword [rsp + 0x50]
bsf rcx, rsp
mov rcx, qword [rsp + 0x68]
movzx rbx, sp
movzx ebx, byte [rax + rcx]
xor ecx, ecx
jmp 0x1403a86f1
jmp 0x1403a87a3
mov byte [r12], r11b
mov rdx, qword [rsp + 0x30]
shr byte [rdx], 1
inc r12
bswap r13w
movzx rax, r8w
cdqe
movzx eax, r11b
movzx r13, dx
setg dil
mov r13d, 1
mov rdi, r13
movzx di, sil
bswap rcx
mov rcx, r12
mov edi, r9d
jmp 0x1403a8736
jmp 0x1403a8995
lea r8, [rdx + r13]
stc
add r8, 0xca
jmp 0x1403a874c
jmp 0x1403a87a3
lea r8, [rdx + r13]
add r8, 0xcc
jmp 0x1403a8761
jmp 0x1403a87a3
lea r8, [rdx + r13]
test r13b, spl
jmp 0x1403a8772
add r8, 0xce
jmp 0x1403a877e
jmp 0x1403a87a3
lea r8, [rdx + r13]
add r8, 0xd0
nop word cs:[rax + rax]
xadd ax, ax
bswap r13
or al, r12b
mov rax, qword [rsp + 0x38]
shr rdx, 0x57
xadd dx, dx
sal dx, cl
sub r8d, eax
rcr r13b, cl
inc r13w
and r8d, 0xfffffffe
xor eax, eax
bswap r13w
sub r13d, 0x17a66da4
ror al, 0x1a
cmp bpl, bl
sete al
or eax, r8d
mov ebx, dword [rsp + 0x24]
cmp si, bx
cdq
mov r13b, r9b
movzx edx, dx
mov r13d, 0x102
mov edx, 0
jmp 0x1403a87f8
cmove r13d, edx
clc
cmc
test ecx, ecx
jmp 0x1403a8805
cmovne r13d, eax
test r10b, 0x75
cmp r13d, 3
jmp 0x1403a8816
jb 0x1403a883c
jne 0x1403a8877
movzx eax, r10w
cmp r11b, 0x4b
test ch, bh
cmp eax, 0x2000
jmp 0x1403a8836
jb 0x1403a8877
mov byte [r12], r11b
mov rdx, qword [rsp + 0x30]
shr byte [rdx], 1
movsx ax, r9b
lahf
not r13b
inc r12
movsx ax, spl
movzx eax, r11b
movsx r13d, sp
sete r13b
movsxd r13, r10d
mov r13d, 1
jmp 0x1403a8872
jmp 0x1403a8981
cmp r13d, edi
cmovae r13d, edi
setbe cl
mov rax, qword [rsp + 0x70]
cmovl rbp, rsp
movsx bp, r10b
jmp 0x1403a8894
dec eax
adc rbp, 0x70324e7a
cmovl ecx, r10d
sal di, 0xb6
lea esi, [r13 - 3]
bts bp, r8w
mov byte [r12], sil
cmc
ror dh, cl
clc
mov dword [r12 + 1], eax
xadd r8w, cx
movsx dx, r13b
add r12, 3
mov rdx, qword [rsp + 0x30]
dec ch
movzx ecx, byte [rdx]
movsx ebp, r9w
neg edi
shr cl, 1
inc r8b
or cl, 0x80
sub bp, 0x72ff
mov byte [rdx], cl
mov ecx, eax
add r8b, 0xe4
xadd r8b, dil
and ecx, 0x1ff
sar r8b, 0xc8
btr rbp, 0xae
lea rbp, [0x1400bcab0]
cmc
lea rcx, [rcx + rbp]
btc r8, 0xa2
rol r8w, 0xed
mov rbp, rax
shr rbp, 8
add edi, 0x42ef4818
sub r8b, 0xb0
mov edi, ebx
sar ebx, 0x90
lea rbx, [0x1400bccb0]
add rbp, rbx
mov ebx, edi
movsx di, dil
mov edi, dword [rsp + 0x44]
test r12b, bl
cmp eax, 0x200
movsxd rax, esp
movsx r8w, al
cdqe
cmovb rbp, rcx
movzx ecx, byte [rbp]
cwde
xchg r8b, r8b
inc word [r14 + rcx*2 + 0x840a]
lea rcx, [0x1400bcd30]
movzx eax, word [rcx + rsi*2]
movsx rcx, ax
setge bpl
cmovno cx, r13w
mov rcx, r12
mov r8d, dword [rsp + 0x2c]
not bpl
jmp 0x1403a8995
mov ebp, dword [rsp + 0x28]
jmp 0x1403a899e
inc word [r14 + rax*2 + 0x81ca]
sal ax, 0x4b
lahf
rcl ah, cl
sub r12d, r12d
dec r12b
movsxd rax, r15d
dec r8d
not r12b
cmove rdx, rcx
cbw
sete r12b
cdqe
lahf
movsx rax, r14w
mov eax, 8
jmp 0x1403a89d8
cmove r8d, eax
movsx ax, r8b
and ah, 0xa0
lea r12, [r12 + rcx]
add ebp, r13d
add ebx, r13d
sbb rax, 0x7cb50790
not al
neg ah
add r15d, r13d
bt ax, 0x97
shl al, cl
cmp r15d, 0x8000
bswap ax
mov eax, 0x8000
cmovae r15d, eax
clc
sub edi, r13d
clc
cmp r12, qword [rsp + 0x58]
jmp 0x1403a8a25
jbe 0x1403a83f0
mov dword [r14 + 0x24], ebx
inc ch
cmovge ecx, r10d
movzx ecx, bx
mov dword [r14 + 0x28], edi
cmc
bsr ecx, ecx
shrd ecx, r8d, 0x40
mov dword [r14 + 0x2c], r15d
rcl rcx, 0x47
sbb cl, ch
mov dword [r14 + 0x54], ebp
test r13b, 0xfb
or ecx, ebp
btr ecx, 0x9c
mov qword [r14 + 0x30], r12
sub ch, 0x73
mov qword [r14 + 0x38], rdx
movzx cx, r12b
rol rcx, 0xac
mov dword [r14 + 0x50], r8d
shr ecx, cl
bts ecx, esi
mov rcx, r14
sub edx, edx
jmp 0x1403a8a84
call fcn.1403a9f81
test eax, eax
jmp 0x1403a8a90
jne 0x1403a8acd
mov ebp, dword [r14 + 0x54]
mov r12, qword [r14 + 0x30]
cmove dx, r8w
movsxd rdx, ebx
mov rdx, qword [r14 + 0x38]
movsx r8, cx
movzx r8d, di
mov r8d, dword [r14 + 0x50]
jmp 0x1403a8abb
jmp 0x1403a83f0
mov esi, r15d
jmp 0x1403a8ac8
jmp 0x1403a8044
setns al
adc r13, rax
movsxd rsi, r10d
rcl r15b, 8
movzx eax, al
add rsp, 0x88
movsx rsi, si
setp r15b
bswap r12w
pop rbx
pop rbp
mov r15, 0x36665823
not di
pop rdi
mov r14b, dl
not r13w
mov si, 0x34dd
pop rsi
movzx r12w, dil
mov r12w, 0x1cf4
movsx r14, bp
pop r12
mov r13b, 0xc0
cmovs r13, rsi
pop r13
movsx r14, ax
pop r14
bswap r15d
setl r15b
pop r15
ret
mov esi, r15d
lahf
mov rbx, 0x52836751
cmovo rax, r13
mov ebx, edi
mov r8d, dword [rsp + 0x2c]
cqo
mov ebp, dword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
movzx ax, dh
cdqe
mov eax, dword [rsp + 0x24]
mov dword [r14 + 0x24], eax
mov dword [r14 + 0x28], ebx
seta al
mov dword [r14 + 0x2c], esi
sets al
mov dword [r14 + 0x54], ebp
sets al
not al
mov qword [r14 + 0x30], r12
mov qword [r14 + 0x38], rdx
setg al
mov dword [r14 + 0x50], r8d
mov al, 1
jmp 0x1403a8ada