Function at 0x1401c2330
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov eax, 0x8354b22e
mov r8d, dword [0x140513dbc]
add r8d, eax
cmp ecx, r8d
jne 0x1401c23a2
add eax, dword [0x140513dbc]
cmp edx, eax
jne 0x1401c23bc
nop
mov ecx, dword [0x1405646e8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140513dbc]
lea r8d, [rcx - 0x7cab4dd0]
xor edx, edx
div r8d
add ecx, 0x8354b22e
cmp edx, ecx
jne 0x1401c238e
movzx eax, byte [0x140513d7f]
mov ecx, dword [0x1405646ec]
cmp ecx, 0x34
jle 0x1401c241d
movzx eax, byte [0x140513d7f]
mov eax, dword [0x1405646ec]
cmp eax, 0x5c
jge 0x1401c2350
jmp 0x1401c2378
mov eax, dword [0x1405646e8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401c26b0
jmp 0x1401c268a
movzx eax, byte [0x140513c6d]
movzx ecx, byte [0x140513db8]
add cl, 0x61
cmp al, cl
je 0x1401c2415
mov cl, 0x36
xor edx, edx
mov r8d, 0x8354b22f
lea rax, [fcn.1401c2330]
lea r9d, [rax + rax]
add r9d, 0xac0
nop dword [rax]
mov al, 0x9d
lock cmpxchg byte [0x140513c6d], cl
je 0x1401c248f
test dl, dl
mov r10d, dword [0x140513dbc]
add r10d, r8d
test r9d, r10d
jne 0x1401c2402
cmp al, 0xeb
jne 0x1401c23f0
lea rax, [0x140513c60]
ret
cmp al, 0xb
je 0x1401c25b5
xor ecx, ecx
mov edx, 0x8354b252
jmp 0x1401c243d
add r8b, 0x81
cmp al, r8b
je 0x1401c25b5
movzx r8d, byte [0x140513db8]
lea eax, [r8 - 0x7a]
add r8b, 0xc3
lock cmpxchg byte [0x140513d7f], r8b
je 0x1401c24c8
test cl, cl
jne 0x1401c2480
nop dword [rax]
movzx r8d, byte [0x140513db8]
mov r9d, dword [0x1405646ec]
mov r10d, dword [0x140513dbc]
add r10d, edx
cmp r9d, r10d
jl 0x1401c2430
nop
mov r8d, dword [0x1405646ec]
cmp r8d, 0x26
jge 0x1401c2480
jmp 0x1401c2460
xor eax, eax
lea rcx, [0x140513c60]
lea rdx, [0x14042da30]
nop
movzx r8d, byte [rax + rdx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rax + rcx]
xor r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x1401c24ec
inc rax
jmp 0x1401c24a0
xor eax, eax
nop word [rax + rax]
test al, al
jne 0x1401c24df
mov ecx, dword [0x1405646ec]
cmp ecx, 0x24
jle 0x1401c2513
mov ecx, dword [0x1405646ec]
cmp ecx, 0x46
jge 0x1401c24d0
jmp 0x1401c24d4
mov eax, dword [0x1405646e8]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
mov eax, 0x8354b22e
add eax, dword [0x140513dbc]
cmp ecx, eax
je 0x1401c263a
jmp 0x1401c2652
xor edx, edx
lea rax, [0x140513d70]
lea rcx, [0x14042db30]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0xf
jl 0x1401c2530
mov eax, dword [0x1405646ec]
cmp eax, 0xb
jg 0x1401c2582
mov ecx, dword [0x1405646e8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x140513dbc]
lea r8d, [rcx - 0x7cab4dd0]
xor edx, edx
div r8d
add ecx, 0x8354b22e
cmp edx, ecx
je 0x1401c25ad
mov eax, 0x8354b22e
nop word [rax + rax]
mov ecx, dword [0x1405646e8]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140513dbc]
add ecx, eax
cmp edx, ecx
jne 0x1401c2590
jmp 0x1401c255a
mov al, 0xb
xchg byte [0x140513d7f], al
mov eax, dword [0x1405646e8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401c25d7
mov eax, dword [0x1405646e8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1401c25e6
mov al, 1
nop dword [rax]
test al, al
je 0x1401c25e0
jmp 0x1401c25c6
lea rax, [0x140513d70]
ret
mov eax, dword [0x1405646ec]
mov ecx, 0x8354b26b
add ecx, dword [0x140513dbc]
cmp eax, ecx
jl 0x1401c2623
nop word cs:[rax + rax]
mov eax, dword [0x1405646e8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401c2610
jmp 0x1401c25ee
movzx eax, byte [0x140513db8]
add al, 0x61
xchg byte [0x140513c6d], al
lea rax, [0x140513c60]
ret
mov eax, dword [0x1405646e8]
mov ecx, dword [0x140513dbc]
not ecx
add ecx, eax
imul ecx, eax
test cl, 1
je 0x1401c2666
mov al, 1
nop word cs:[rax + rax]
test al, al
je 0x1401c2660
jmp 0x1401c263a
mov ecx, dword [0x1405646e8]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0x8354b230
add ecx, dword [0x140513dbc]
xor edx, edx
div ecx
test edx, edx
jne 0x1401c2610
jmp 0x1401c25ee
mov eax, dword [0x1405646e8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0x8354b22e
add eax, dword [0x140513dbc]
cmp ecx, eax
je 0x1401c26bd
nop dword [rax + rax]
mov eax, dword [0x1405646ec]
cmp eax, 0x5f
jge 0x1401c26b0
jmp 0x1401c268a
test edx, edx
je 0x1401c271f
movzx eax, byte [0x140513d63]
cmp al, 0x18
je 0x1401c2883
mov cl, 0xdf
xor edx, edx
mov r8b, 1
jmp 0x1401c26e8
cmp al, 0x18
je 0x1401c2883
mov al, 0x78
lock cmpxchg byte [0x140513d63], cl
je 0x1401c27d8
test dl, dl
jne 0x1401c2710
nop dword [rax]
test r8b, r8b
jne 0x1401c26e0
nop word cs:[rax + rax]
mov r9d, dword [0x1405646ec]
cmp r9d, 0x44
jge 0x1401c2710
jmp 0x1401c2700
movzx eax, byte [0x140513d33]
cmp al, 0xd6
je 0x1401c2969
mov cl, 0x7c
lea rdx, [fcn.1401c2330]
lea r8d, [rdx + rdx]
add r8d, 0x32a0
jmp 0x1401c275d
add r9b, 0x4c
cmp al, r9b
je 0x1401c2969
mov al, 0x95
lock cmpxchg byte [0x140513d33], cl
je 0x1401c288b
mov r9d, dword [0x140513dbc]
mov r10d, r9d
xor r10d, 0x8354b22f
and r9d, 0x354b22f
lea r9d, [r10 + r9*2]
xor r9d, r8d
not r9d
test r9d, r8d
jne 0x1401c27c0
nop word cs:[rax + rax]
movzx r9d, byte [0x140513db8]
mov r10d, dword [0x1405646e8]
lea r11d, [r10 - 1]
imul r11d, r10d
test r11b, 1
je 0x1401c2750
nop dword [rax]
lea r9d, [rdx + rdx]
add r9d, 0x29a0
mov r10d, r9d
not r10d
test r10d, r9d
jne 0x1401c27c0
jmp 0x1401c27a0
xor eax, eax
lea rcx, [0x140513d40]
lea rdx, [0x14042db00]
nop dword [rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x22
jg 0x1401c2808
inc rax
jmp 0x1401c27f0
xor ecx, ecx
mov r8d, 0x8354b22f
lea rax, [fcn.1401c2330]
lea r9d, [rax + rax]
add r9d, 0x2a00
nop word cs:[rax + rax]
mov edx, dword [0x1405646e8]
lea eax, [rdx - 1]
imul eax, edx
mov r10d, dword [0x140513dbc]
lea r11d, [r10 - 0x7cab4dd0]
xor edx, edx
div r11d
add r10d, 0x8354b22e
cmp edx, r10d
je 0x1401c2877
mov al, 0x18
xchg byte [0x140513d63], al
mov eax, dword [0x140513dbc]
add eax, r8d
mov edx, r9d
xor edx, eax
not edx
test edx, eax
jne 0x1401c2830
mov al, 0x18
xchg byte [0x140513d63], al
test cl, cl
jne 0x1401c285b
lea rax, [0x140513d40]
ret
mov ecx, 0x8354b22f
lea rax, [fcn.1401c2330]
lea r8d, [rax + rax]
add r8d, 0x3780
mov r9d, r8d
not r9d
nop dword [rax + rax]
mov eax, dword [0x1405646ec]
cmp eax, 0x4d
jg 0x1401c28d4
mov eax, dword [0x140513dbc]
add eax, ecx
mov edx, r8d
xor edx, eax
not eax
and eax, r9d
or eax, edx
cmp eax, 0xffffffff
je 0x1401c2900
mov edx, dword [0x1405646e8]
mov r10d, dword [0x140513dbc]
mov eax, edx
sub eax, r10d
add eax, 0x7cab4dd1
imul eax, edx
add r10d, 0x8354b230
xor edx, edx
div r10d
test edx, edx
jne 0x1401c28b0
jmp 0x1401c28bb
xor edx, edx
lea rax, [0x140513d30]
lea rcx, [0x14042daf0]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r8d
xor r10b, r9b
and r8b, r9b
add r8b, r8b
add r8b, r10b
mov byte [rdx + rax], r8b
mov r8d, dword [0x140513dbc]
add edx, r8d
add edx, 0x8354b22f
cmp edx, 3
jl 0x1401c2910
mov eax, dword [0x1405646ec]
nop dword [rax + rax]
mov eax, dword [0x1405646e8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401c2950
mov al, 0xd6
xchg byte [0x140513d33], al
lea rax, [0x140513d30]
ret