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

Disassembly:
push rsi
mov r8d, edx
test ecx, ecx
je 0x14017355b
mov ecx, dword [0x14055bf80]
mov r9d, dword [0x140506090]
mov eax, ecx
sub eax, r9d
add eax, 0xa82a561a
imul eax, ecx
add r9d, 0x57d5a9e7
xor edx, edx
div r9d
test edx, edx
jne 0x140173760
jmp 0x140173754
mov eax, dword [0x14055bf80]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
nop word [rax + rax]
cmp dword [0x14055bf90], 0
jne 0x140173570
mov eax, 0x57d5a9e5
add eax, dword [0x140506090]
cmp r8d, eax
jne 0x1401735dd
movzx eax, byte [0x140505fe9]
cmp al, 0x94
je 0x140173620
xor ecx, ecx
jmp 0x1401735a4
cmp al, 0x94
je 0x140173620
movzx edx, byte [0x140506094]
lea eax, [rdx + 0x53]
add dl, 0x63
lock cmpxchg byte [0x140505fe9], dl
je 0x1401735ea
test cl, cl
jne 0x1401735d0
nop
mov edx, dword [0x14055bf84]
cmp edx, 0x36
jl 0x1401735a0
nop dword [rax + rax]
mov edx, dword [0x14055bf84]
cmp edx, 0x29
jge 0x1401735d0
jmp 0x1401735c0
mov eax, dword [0x14055bf84]
cmp eax, 0x58
jg 0x140173640
jmp 0x140173629
xor eax, eax
lea rcx, [0x140505fe0]
lea rdx, [0x14042c6a0]
nop word [rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 8
jg 0x140173618
inc rax
jmp 0x140173600
mov al, 0x94
xchg byte [0x140505fe9], al
lea rax, [0x140505fe0]
pop rsi
ret
movzx eax, byte [0x140505ee0]
mov ecx, dword [0x14055bf84]
cmp ecx, 0x2f
jl 0x140173654
nop dword [rax + rax]
movzx eax, byte [0x140505ee0]
mov eax, dword [0x14055bf84]
cmp eax, 0x37
jge 0x140173640
jmp 0x140173629
cmp al, 0x17
je 0x140173717
mov cl, 0x7f
nop
mov al, 0xd8
lock cmpxchg byte [0x140505ee0], cl
je 0x140173675
cmp al, 0x17
jne 0x140173660
jmp 0x140173717
xor edx, edx
lea rax, [0x140505ed0]
lea rcx, [0x14042c5a0]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 0x10
jl 0x140173690
xor eax, eax
test al, al
je 0x140173720
jmp 0x14017372b
mov edx, dword [0x14055bf80]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x140506090]
lea r9d, [r8 + 0x57d5a9e7]
xor edx, edx
div r9d
add r8d, 0x57d5a9e5
cmp edx, r8d
je 0x140173703
nop dword [rax + rax]
movzx eax, byte [0x140506094]
add al, 0x96
xchg byte [0x140505ee0], al
test cl, cl
je 0x1401736c0
mov al, 0x17
xchg byte [0x140505ee0], al
cmp dword [0x140506090], 0xa82a561b
jne 0x1401736f0
lea rax, [0x140505ed0]
pop rsi
ret
mov eax, dword [0x14055bf84]
cmp eax, 0x3e
jl 0x14017374d
mov eax, 0x57d5a9e5
mov ecx, dword [0x14055bf80]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140506090]
add ecx, eax
cmp edx, ecx
jne 0x140173730
jmp 0x140173720
mov cl, 1
jmp 0x1401736c0
mov al, 1
test al, al
jne 0x14017376d
nop word [rax + rax]
mov eax, dword [0x14055bf84]
cmp eax, 0x33
jge 0x140173760
jmp 0x140173754
test r8d, r8d
je 0x1401737e8
movzx eax, byte [0x140505e9d]
cmp al, 0x55
je 0x1401738c0
mov cl, 0x87
mov dl, 1
mov r8d, 0x57d5aa3c
jmp 0x140173798
cmp al, 0x55
je 0x1401738c0
mov al, 0x41
lock cmpxchg byte [0x140505e9d], cl
je 0x140173883
mov r9d, dword [0x14055bf84]
cmp r9d, 0x5c
jg 0x1401737d0
nop word cs:[rax + rax]
test dl, dl
jne 0x140173790
nop word cs:[rax + rax]
mov r9d, dword [0x14055bf84]
mov r10d, dword [0x140506090]
add r10d, r8d
cmp r9d, r10d
jge 0x1401737d0
jmp 0x1401737c0
movzx eax, byte [0x140505fdf]
cmp al, 0xb
je 0x140173900
mov cl, 0xfb
mov edx, 0x57d5a9e6
lea r8, [fcn.140173520]
lea r9d, [r8 + r8]
add r9d, 0x1ee0
mov r10d, r9d
not r10d
jmp 0x140173828
cmp al, 0xb
je 0x140173900
mov al, 0x25
lock cmpxchg byte [0x140505fdf], cl
je 0x1401738c9
nop dword [rax + rax]
mov r11d, dword [0x140506090]
add r11d, edx
mov esi, r9d
xor esi, r11d
not r11d
and r11d, r10d
or r11d, esi
cmp r11d, 0xffffffff
jne 0x140173874
lea r11d, [r8 + r8]
add r11d, 0x3dc0
mov esi, r11d
not esi
test esi, r11d
je 0x140173820
mov r11d, dword [0x14055bf84]
cmp r11d, 0x25
jge 0x140173840
jmp 0x14017385f
xor eax, eax
lea rcx, [0x140505e90]
lea rdx, [0x14042c560]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xc
jg 0x1401738b8
inc rax
jmp 0x1401738a0
mov al, 0x55
xchg byte [0x140505e9d], al
lea rax, [0x140505e90]
pop rsi
ret
xor eax, eax
lea rcx, [0x140505fd0]
lea rdx, [0x14042c690]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x1401738f8
inc rax
jmp 0x1401738e0
mov al, 0xb
xchg byte [0x140505fdf], al
lea rax, [0x140505fd0]
pop rsi
ret