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

Disassembly:
push rsi
push rdi
sub rsp, 0x28
test ecx, ecx
je 0x1401189e9
test edx, edx
je 0x140118a39
test r8d, r8d
je 0x140118a79
test r9d, r9d
je 0x140118af9
movzx eax, byte [0x140428e02]
cmp al, 0x7e
je 0x140118ca9
mov cl, 0x37
nop word cs:[rax + rax]
mov al, 0xd9
lock cmpxchg byte [0x140428e02], cl
je 0x140118c79
cmp al, 0x7e
jne 0x1401189d0
jmp 0x140118ca9
test edx, edx
je 0x140118ab9
test r8d, r8d
je 0x140118b29
test r9d, r9d
je 0x140118ba9
movzx eax, byte [0x140428c60]
cmp al, 0xcc
je 0x140118d79
mov cl, 9
nop word cs:[rax + rax]
mov al, 0x32
lock cmpxchg byte [0x140428c60], cl
je 0x140118d49
cmp al, 0xcc
jne 0x140118a20
jmp 0x140118d79
test r8d, r8d
je 0x140118b69
test r9d, r9d
je 0x140118bd9
movzx eax, byte [0x140428d4c]
cmp al, 0x3c
je 0x140118db9
mov cl, 0xcf
nop dword [rax]
mov al, 0x6b
lock cmpxchg byte [0x140428d4c], cl
je 0x140118d85
cmp al, 0x3c
jne 0x140118a60
jmp 0x140118db9
test r9d, r9d
je 0x140118c09
movzx eax, byte [0x140428e5d]
cmp al, 0xd3
je 0x140118df9
mov cl, 0x96
nop word cs:[rax + rax]
mov al, 0x76
lock cmpxchg byte [0x140428e5d], cl
je 0x140118dc5
cmp al, 0xd3
jne 0x140118aa0
jmp 0x140118df9
test r8d, r8d
je 0x140118c39
test r9d, r9d
je 0x140118cb5
movzx eax, byte [0x140428e37]
cmp al, 0xf5
je 0x140118e99
mov cl, 0x51
nop dword [rax]
mov al, 0x82
lock cmpxchg byte [0x140428e37], cl
je 0x140118e6f
cmp al, 0xf5
jne 0x140118ae0
jmp 0x140118e99
movzx eax, byte [0x140428bd5]
cmp al, 0x31
je 0x140118e39
mov cl, 0x5e
nop word [rax + rax]
mov al, 0x15
lock cmpxchg byte [0x140428bd5], cl
je 0x140118e05
cmp al, 0x31
jne 0x140118b10
jmp 0x140118e39
test r9d, r9d
je 0x140118ce9
movzx eax, byte [0x140428c73]
cmp al, 0xcd
je 0x140118ed9
mov cl, 0x23
nop word cs:[rax + rax]
mov al, 0x1d
lock cmpxchg byte [0x140428c73], cl
je 0x140118ea5
cmp al, 0xcd
jne 0x140118b50
jmp 0x140118ed9
test r9d, r9d
je 0x140118d19
movzx eax, byte [0x140428df2]
cmp al, 0xfd
je 0x140118f19
mov cl, 0x18
nop word cs:[rax + rax]
mov al, 0x96
lock cmpxchg byte [0x140428df2], cl
je 0x140118ee5
cmp al, 0xfd
jne 0x140118b90
jmp 0x140118f19
movzx eax, byte [0x140428dbf]
cmp al, 0x54
je 0x140118f59
mov cl, 0x6d
nop word [rax + rax]
mov al, 0xf5
lock cmpxchg byte [0x140428dbf], cl
je 0x140118f25
cmp al, 0x54
jne 0x140118bc0
jmp 0x140118f59
movzx eax, byte [0x140428e1b]
cmp al, 0xb8
je 0x140118f99
mov cl, 0x2b
nop word [rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x140428e1b], cl
je 0x140118f65
cmp al, 0xb8
jne 0x140118bf0
jmp 0x140118f99
movzx eax, byte [0x140428ce9]
cmp al, 0x5a
je 0x140119039
mov esi, dword [rsp + 0x60]
mov cl, 0x97
nop
mov al, 0xb6
lock cmpxchg byte [0x140428ce9], cl
je 0x140118fa5
cmp al, 0x5a
jne 0x140118c20
jmp 0x140119039
test r9d, r9d
je 0x140118e45
movzx eax, byte [0x140428b92]
cmp al, 0x14
je 0x140119079
mov cl, 0x20
nop word cs:[rax + rax]
mov al, 0xd6
lock cmpxchg byte [0x140428b92], cl
je 0x140119045
cmp al, 0x14
jne 0x140118c60
jmp 0x140119079
xor eax, eax
lea rcx, [0x140428e00]
lea rdx, [0x140354670]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x140118c90
mov al, 0x7e
xchg byte [0x140428e02], al
lea rax, [0x140428e00]
jmp 0x140119172
movzx eax, byte [0x140428d93]
cmp al, 0x36
je 0x1401190b9
mov cl, 0xa2
nop word cs:[rax + rax]
mov al, 0xdf
lock cmpxchg byte [0x140428d93], cl
je 0x140119085
cmp al, 0x36
jne 0x140118cd0
jmp 0x1401190b9
movzx eax, byte [0x140428e85]
cmp al, 0x6f
je 0x1401190f9
mov cl, 0xac
nop word [rax + rax]
mov al, 0x10
lock cmpxchg byte [0x140428e85], cl
je 0x1401190c5
cmp al, 0x6f
jne 0x140118d00
jmp 0x1401190f9
movzx eax, byte [0x140428dab]
cmp al, 0x47
je 0x140119139
mov cl, 0x63
nop word [rax + rax]
mov al, 0x2b
lock cmpxchg byte [0x140428dab], cl
je 0x140119102
cmp al, 0x47
jne 0x140118d30
jmp 0x140119139
xor eax, eax
lea rcx, [0x140428c50]
lea rdx, [0x1403544b0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x10
jl 0x140118d60
mov al, 0xcc
xchg byte [0x140428c60], al
lea rax, [0x140428c50]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428d30]
lea rdx, [0x1403545a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0x1c
jl 0x140118da0
mov al, 0x3c
xchg byte [0x140428d4c], al
lea rax, [0x140428d30]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428e50]
lea rdx, [0x1403546c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x140118de0
mov al, 0xd3
xchg byte [0x140428e5d], al
lea rax, [0x140428e50]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428bc0]
lea rdx, [0x140354420]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x140118e20
mov al, 0x31
xchg byte [0x140428bd5], al
lea rax, [0x140428bc0]
jmp 0x140119172
movzx eax, byte [0x140428e9d]
cmp al, 7
je 0x14011916b
mov cl, 0x5c
mov al, 0xc
lock cmpxchg byte [0x140428e9d], cl
je 0x140119142
cmp al, 7
jne 0x140118e56
jmp 0x14011916b
xor eax, eax
lea rcx, [0x140428e30]
lea rdx, [0x1403546a0]
nop
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 7
jl 0x140118e80
mov al, 0xf5
xchg byte [0x140428e37], al
lea rax, [0x140428e30]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428c70]
lea rdx, [0x1403544c0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 3
jl 0x140118ec0
mov al, 0xcd
xchg byte [0x140428c73], al
lea rax, [0x140428c70]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428df0]
lea rdx, [0x140354660]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 2
jl 0x140118f00
mov al, 0xfd
xchg byte [0x140428df2], al
lea rax, [0x140428df0]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428db0]
lea rdx, [0x140354620]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xf
jl 0x140118f40
mov al, 0x54
xchg byte [0x140428dbf], al
lea rax, [0x140428db0]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428e10]
lea rdx, [0x140354680]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x140118f80
mov al, 0xb8
xchg byte [0x140428e1b], al
lea rax, [0x140428e10]
jmp 0x140119172
cmp qword [0x140477838], 0
jne 0x140119004
mov r9d, esi
xor r9d, 0xb5ab6a3d
mov ecx, 1
mov edx, 1
mov r8d, 4
call fcn.140117500
mov rdi, rax
mov qword [0x140477838], rax
xor esi, 0x199920d0
lea rcx, [0x1401173c0]
mov edx, esi
call fcn.1400f8f30
xor eax, eax
lea rcx, [0x140354530]
movzx edx, byte [rax + rcx]
mov byte [rdi + rax], dl
inc rax
cmp eax, 2
jle 0x140118ff5
mov rax, qword [0x140477838]
xor ecx, ecx
lea rdx, [0x140354540]
nop word cs:[rax + rax]
movzx r8d, byte [rcx + rdx]
add byte [rax + rcx], r8b
inc rcx
cmp ecx, 3
jl 0x140119020
mov al, 0x5a
xchg byte [0x140428ce9], al
mov rax, qword [0x140477838]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428b80]
lea rdx, [0x1403543e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x12
jl 0x140119060
mov al, 0x14
xchg byte [0x140428b92], al
lea rax, [0x140428b80]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428d70]
lea rdx, [0x1403545e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x23
jl 0x1401190a0
mov al, 0x36
xchg byte [0x140428d93], al
lea rax, [0x140428d70]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428e70]
lea rdx, [0x1403546e0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0x15
jl 0x1401190e0
mov al, 0x6f
xchg byte [0x140428e85], al
lea rax, [0x140428e70]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428da0]
lea rdx, [0x140354610]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
inc rax
cmp eax, 0xb
jl 0x140119120
mov al, 0x47
xchg byte [0x140428dab], al
lea rax, [0x140428da0]
jmp 0x140119172
xor eax, eax
lea rcx, [0x140428e90]
lea rdx, [0x140354700]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
inc rax
cmp eax, 0xd
jl 0x140119152
mov al, 7
xchg byte [0x140428e9d], al
lea rax, [0x140428e90]
add rsp, 0x28
pop rdi
pop rsi
ret