Function at 0x140127140
Capabilities:
Authenticate hmac
Check for software breakpoints
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test ecx, ecx
je 0x140127199
test edx, edx
je 0x1401271e9
test r8d, r8d
je 0x140127229
test r9d, r9d
je 0x1401272a9
movzx eax, byte [0x140469f12]
cmp al, 0x7e
je 0x140127459
mov cl, 0x37
nop word cs:[rax + rax]
mov al, 0xd9
lock cmpxchg byte [0x140469f12], cl
je 0x140127429
cmp al, 0x7e
jne 0x140127180
jmp 0x140127459
test edx, edx
je 0x140127269
test r8d, r8d
je 0x1401272d9
test r9d, r9d
je 0x140127359
movzx eax, byte [0x140469d70]
cmp al, 0xcc
je 0x140127529
mov cl, 9
nop word cs:[rax + rax]
mov al, 0x32
lock cmpxchg byte [0x140469d70], cl
je 0x1401274f9
cmp al, 0xcc
jne 0x1401271d0
jmp 0x140127529
test r8d, r8d
je 0x140127319
test r9d, r9d
je 0x140127389
movzx eax, byte [0x140469e5c]
cmp al, 0x3c
je 0x140127569
mov cl, 0xcf
nop dword [rax]
mov al, 0x6b
lock cmpxchg byte [0x140469e5c], cl
je 0x140127535
cmp al, 0x3c
jne 0x140127210
jmp 0x140127569
test r9d, r9d
je 0x1401273b9
movzx eax, byte [0x140469f6d]
cmp al, 0xd3
je 0x1401275a9
mov cl, 0x96
nop word cs:[rax + rax]
mov al, 0x76
lock cmpxchg byte [0x140469f6d], cl
je 0x140127575
cmp al, 0xd3
jne 0x140127250
jmp 0x1401275a9
test r8d, r8d
je 0x1401273e9
test r9d, r9d
je 0x140127465
movzx eax, byte [0x140469f47]
cmp al, 0xf5
je 0x140127649
mov cl, 0x51
nop dword [rax]
mov al, 0x82
lock cmpxchg byte [0x140469f47], cl
je 0x14012761f
cmp al, 0xf5
jne 0x140127290
jmp 0x140127649
movzx eax, byte [0x140469ce5]
cmp al, 0x31
je 0x1401275e9
mov cl, 0x5e
nop word [rax + rax]
mov al, 0x15
lock cmpxchg byte [0x140469ce5], cl
je 0x1401275b5
cmp al, 0x31
jne 0x1401272c0
jmp 0x1401275e9
test r9d, r9d
je 0x140127499
movzx eax, byte [0x140469d83]
cmp al, 0xcd
je 0x140127689
mov cl, 0x23
nop word cs:[rax + rax]
mov al, 0x1d
lock cmpxchg byte [0x140469d83], cl
je 0x140127655
cmp al, 0xcd
jne 0x140127300
jmp 0x140127689
test r9d, r9d
je 0x1401274c9
movzx eax, byte [0x140469f02]
cmp al, 0xfd
je 0x1401276c9
mov cl, 0x18
nop word cs:[rax + rax]
mov al, 0x96
lock cmpxchg byte [0x140469f02], cl
je 0x140127695
cmp al, 0xfd
jne 0x140127340
jmp 0x1401276c9
movzx eax, byte [0x140469ecf]
cmp al, 0x54
je 0x140127709
mov cl, 0x6d
nop word [rax + rax]
mov al, 0xf5
lock cmpxchg byte [0x140469ecf], cl
je 0x1401276d5
cmp al, 0x54
jne 0x140127370
jmp 0x140127709
movzx eax, byte [0x140469f2b]
cmp al, 0xb8
je 0x140127749
mov cl, 0x2b
nop word [rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x140469f2b], cl
je 0x140127715
cmp al, 0xb8
jne 0x1401273a0
jmp 0x140127749
movzx eax, byte [0x140469df9]
cmp al, 0x5a
je 0x1401277e9
mov esi, dword [rsp + 0x60]
mov cl, 0x97
nop
mov al, 0xb6
lock cmpxchg byte [0x140469df9], cl
je 0x140127755
cmp al, 0x5a
jne 0x1401273d0
jmp 0x1401277e9
test r9d, r9d
je 0x1401275f5
movzx eax, byte [0x140469ca2]
cmp al, 0x14
je 0x140127829
mov cl, 0x20
nop word cs:[rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x140469ca2], cl
je 0x1401277f5
cmp al, 0x14
jne 0x140127410
jmp 0x140127829
xor eax, eax
lea rcx, [0x140469f10]
lea rdx, [0x14038ec80]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x140127440
mov al, 0x7e
xchg byte [0x140469f12], al
lea rax, [0x140469f10]
jmp 0x140127922
movzx eax, byte [0x140469ea3]
cmp al, 0x36
je 0x140127869
mov cl, 0xa2
nop word cs:[rax + rax]
mov al, 0xdf
lock cmpxchg byte [0x140469ea3], cl
je 0x140127835
cmp al, 0x36
jne 0x140127480
jmp 0x140127869
movzx eax, byte [0x140469f95]
cmp al, 0x6f
je 0x1401278a9
mov cl, 0xac
nop word [rax + rax]
mov al, 0x10
lock cmpxchg byte [0x140469f95], cl
je 0x140127875
cmp al, 0x6f
jne 0x1401274b0
jmp 0x1401278a9
movzx eax, byte [0x140469ebb]
cmp al, 0x47
je 0x1401278e9
mov cl, 0x63
nop word [rax + rax]
mov al, 0x2b
lock cmpxchg byte [0x140469ebb], cl
je 0x1401278b2
cmp al, 0x47
jne 0x1401274e0
jmp 0x1401278e9
xor eax, eax
lea rcx, [0x140469d60]
lea rdx, [0x14038eac0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x140127510
mov al, 0xcc
xchg byte [0x140469d70], al
lea rax, [0x140469d60]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469e40]
lea rdx, [0x14038ebb0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x1c
jl 0x140127550
mov al, 0x3c
xchg byte [0x140469e5c], al
lea rax, [0x140469e40]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469f60]
lea rdx, [0x14038ecd0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x140127590
mov al, 0xd3
xchg byte [0x140469f6d], al
lea rax, [0x140469f60]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469cd0]
lea rdx, [0x14038ea30]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x1401275d0
mov al, 0x31
xchg byte [0x140469ce5], al
lea rax, [0x140469cd0]
jmp 0x140127922
movzx eax, byte [0x140469fad]
cmp al, 7
je 0x14012791b
mov cl, 0x5c
mov al, 0xc
lock cmpxchg byte [0x140469fad], cl
je 0x1401278f2
cmp al, 7
jne 0x140127606
jmp 0x14012791b
xor eax, eax
lea rcx, [0x140469f40]
lea rdx, [0x14038ecb0]
nop
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 7
jl 0x140127630
mov al, 0xf5
xchg byte [0x140469f47], al
lea rax, [0x140469f40]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469d80]
lea rdx, [0x14038ead0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x140127670
mov al, 0xcd
xchg byte [0x140469d83], al
lea rax, [0x140469d80]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469f00]
lea rdx, [0x14038ec70]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x1401276b0
mov al, 0xfd
xchg byte [0x140469f02], al
lea rax, [0x140469f00]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469ec0]
lea rdx, [0x14038ec30]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x1401276f0
mov al, 0x54
xchg byte [0x140469ecf], al
lea rax, [0x140469ec0]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469f20]
lea rdx, [0x14038ec90]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x140127730
mov al, 0xb8
xchg byte [0x140469f2b], al
lea rax, [0x140469f20]
jmp 0x140127922
cmp qword [0x1404bde40], 0
jne 0x1401277b4
mov r9d, esi
xor r9d, 0xb5ab6a3d
mov ecx, 1
mov edx, 1
mov r8d, 4
call fcn.140125cb0
mov rdi, rax
mov qword [0x1404bde40], rax
xor esi, 0x199920d0
lea rcx, [0x140125b70]
mov edx, esi
call fcn.140107920
xor eax, eax
lea rcx, [0x14038eb40]
movzx edx, byte [rax + rcx]
mov byte [rdi + rax], dl
inc rax
cmp eax, 2
jle 0x1401277a5
mov rax, qword [0x1404bde40]
xor ecx, ecx
lea rdx, [0x14038eb50]
nop word cs:[rax + rax]
movzx r8d, byte [rcx + rdx]
add byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x1401277d0
mov al, 0x5a
xchg byte [0x140469df9], al
mov rax, qword [0x1404bde40]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469c90]
lea rdx, [0x14038e9f0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x12
jl 0x140127810
mov al, 0x14
xchg byte [0x140469ca2], al
lea rax, [0x140469c90]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469e80]
lea rdx, [0x14038ebf0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x23
jl 0x140127850
mov al, 0x36
xchg byte [0x140469ea3], al
lea rax, [0x140469e80]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469f80]
lea rdx, [0x14038ecf0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x140127890
mov al, 0x6f
xchg byte [0x140469f95], al
lea rax, [0x140469f80]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469eb0]
lea rdx, [0x14038ec20]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x1401278d0
mov al, 0x47
xchg byte [0x140469ebb], al
lea rax, [0x140469eb0]
jmp 0x140127922
xor eax, eax
lea rcx, [0x140469fa0]
lea rdx, [0x14038ed10]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x140127902
mov al, 7
xchg byte [0x140469fad], al
lea rax, [0x140469fa0]
add rsp, 0x28
pop rdi
pop rsi
ret