Function at 0x140163ae0
Capabilities:
Authenticate hmac
Create thread

Disassembly:
push rbp
push rbx
nop
push 0x3ef174ad
mov qword [rsp], rsi
nop
mov qword [rsp - 8], rdi
sub rsp, 8
nop
sub rsp, 8
mov qword [rsp], r14
lea rbp, [rsp - 0x37]
sub rsp, 0x90
mov r14, rcx
mov rcx, qword [0x140217038]
mov rcx, qword [rcx + 0x50]
call fcn.1401c36e0
movzx esi, al
mov rbx, qword [0x140217038]
mov r8d, dword [rbx + 0x134]
movabs rdi, 0x2aaaaaaa0968bec1
xor rdi, 0x6dc463c6
sub rdi, 0x54431d4a
sub rdi, 0xbbddc37
sub rdi, 0x9c046c
xor rdi, 0x1c0f36b2
add rdi, 0x129f066f
xor rdi, 0x2375a6bd
add rdi, 0x7fffffff
xor rdi, 0x2340fc02
sub r8d, 1
je 0x140164fd2
sub r8d, 1
je 0x140164a67
sub r8d, 1
je 0x140164551
sub r8d, 1
je 0x140163ff6
cmp r8d, 1
jne 0x140164a07
test al, al
jne 0x1401649f5
mov ecx, dword [rbx + 0x48]
mov qword [rbp + 0x6f], rbx
xchg rbx, r14
mov qword [rbp + 0x7f], r14
xchg r14, rbx
xchg rdi, rbx
mov qword [rbp + 0x77], rdi
xchg rdi, rbx
test ecx, ecx
je 0x140163ce5
sub ecx, r8d
je 0x140163c61
cmp ecx, r8d
jne 0x140163ce5
xchg r15, rax
mov r15, qword [rbx + 0x30]
xchg r15, rax
cmp rax, qword [rbx + 0x38]
jne 0x140163c58
mov rcx, qword [rbx + 0x40]
sub rcx, rax
xchg r8, rdi
mov rax, r8
xchg rdi, r8
imul rcx
sar rdx, 1
sar rdx, 1
mov rax, rdx
shr rax, 0x16
shr rax, 1
shr rax, 0x12
shr rax, 0xf
shr rax, 1
shr rax, 3
shr rax, 1
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140163c4f
lea edx, [r8 + 0x53]
lea rcx, [rbx + 0x30]
call fcn.140174ac0
lea rcx, [rbp + 0x6f]
call fcn.14009c470
mov rdx, qword [rbx + 0x30]
jmp 0x140163d76
mov rax, qword [rbx + 0x18]
cmp rax, qword [rbx + 0x20]
jne 0x140163cdc
mov rcx, qword [rbx + 0x28]
sub rcx, rax
mov rax, rdi
imul rcx
sar rdx, 1
sar rdx, 1
xchg rdx, rax
mov rdx, rax
xchg rdx, rax
shr rax, 0x28
shr rax, 0x16
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140163cd3
mov edx, 0x30af667d
sub edx, 0x3069a0ce
add edx, 0x5d002368
add edx, 0x21a65c7e
xor edx, 0xfe32d44
sub edx, 0x2869f24d
sub edx, 0x48a57630
lea rcx, [rbx + 0x18]
call fcn.140174ac0
lea rcx, [rbp + 0x77]
call fcn.140136450
mov rdx, qword [rbx + 0x18]
jmp 0x140163d76
mov rax, qword [rbx]
cmp rax, qword [rbx + 8]
jne 0x140163d73
xchg rcx, rdi
mov rdi, qword [rbx + 0x10]
xchg rcx, rdi
sub rcx, rax
xchg rdi, rcx
mov rax, rcx
xchg rcx, rdi
imul rcx
sar rdx, 1
sar rdx, 1
xchg rdx, rax
mov rdx, rax
xchg rdx, rax
shr rax, 0x37
shr rax, 4
shr rax, 1
shr rax, 1
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140163d6a
mov edx, 0x6536c72e
sub edx, 0x41f93b31
add edx, 0x1ffd9a3f
xor edx, 0x32c07b4f
xor edx, 0x57bbbce4
xor edx, 0x2640e1c3
xchg rbx, r15
mov rcx, r15
xchg rbx, r15
call fcn.140174ac0
lea rcx, [rbp + 0x7f]
call fcn.1400f3190
mov rdx, qword [rbx]
add rdx, 0x348
lea rcx, [rbp + 7]
call fcn.14007a9f0
nop
mov rbx, qword [0x140217038]
mov ecx, dword [rbx + 0x48]
mov qword [rbp - 0x29], rbx
xchg r12, rbx
mov qword [rbp - 9], r12
xchg rbx, r12
xchg r9, rbx
mov qword [rbp - 0x19], r9
xchg rbx, r9
test ecx, ecx
je 0x140163ee5
sub ecx, 1
je 0x140163e48
cmp ecx, 1
jne 0x140163ee5
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x38]
jne 0x140163e3f
mov rcx, qword [rbx + 0x40]
sub rcx, rax
mov rax, rdi
imul rcx
sar rdx, 2
xchg rcx, rax
mov rcx, rdx
xchg rcx, rax
shr rax, 0x37
shr rax, 6
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140163e36
mov edx, 0x6e4289f8
xor edx, 0x15da370
sub edx, 0x374037a0
sub edx, 0x2c0f69f6
add edx, 0x3c6911da
xor edx, 0x51f167fa
sub edx, 0x19c9fce2
lea rcx, [rbx + 0x30]
call fcn.140174ac0
lea rcx, [rbp - 0x29]
call fcn.14009c470
mov rdx, qword [rbx + 0x30]
jmp 0x140163f7b
xchg r12, rax
mov r12, qword [rbx + 0x18]
xchg r12, rax
cmp rax, qword [rbx + 0x20]
jne 0x140163ed6
xchg rcx, r10
mov r10, qword [rbx + 0x28]
xchg r10, rcx
sub rcx, rax
xchg r9, rax
mov r9, rdi
xchg r9, rax
imul rcx
sar rdx, 2
xchg rbx, rdx
mov rax, rbx
xchg rdx, rbx
shr rax, 0x2a
shr rax, 0xc
shr rax, 3
shr rax, 1
shr rax, 4
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140163ecd
mov edx, 0x516984ca
xor edx, 0x337ea639
sub edx, 0x2f038fb
sub edx, 0x339a2b13
xor edx, 0x5fcd50a
sub edx, 0x2e706b9b
lea rcx, [rbx + 0x18]
call fcn.140174ac0
lea rcx, [rbp - 0x19]
call fcn.140136450
xchg r10, rdx
mov r10, qword [rbx + 0x18]
xchg r10, rdx
jmp 0x140163f7b
mov rax, qword [rbx]
cmp rax, qword [rbx + 8]
jne 0x140163f78
mov rcx, qword [rbx + 0x10]
sub rcx, rax
mov rax, rdi
imul rcx
sar rdx, 1
sar rdx, 1
mov rax, rdx
shr rax, 0x11
shr rax, 0x10
shr rax, 0x15
shr rax, 5
shr rax, 3
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140163f6f
mov edx, 0x294cb769
xor edx, 0x1bb8a9e9
add edx, 0x2e5bc5f1
xor edx, 0x7abd3010
xor edx, 0x7330e588
sub edx, 0x11fb5ec1
xor edx, 0x77c7136f
add edx, 0x1099f102
sub edx, 0x319bb0f5
xchg rcx, r15
mov r15, rbx
xchg rcx, r15
call fcn.140174ac0
lea rcx, [rbp - 9]
call fcn.1400f3190
mov rdx, qword [rbx]
neg rdx
add rdx, 0xfffffffffffffca0
neg rdx
lea rcx, [rbp + 0x1f]
call fcn.14007a9f0
nop
lea rcx, [rbp + 7]
call fcn.14007b220
mov rbx, rax
lea rcx, [rbp + 0x1f]
call fcn.14007b220
xchg rbx, r10
mov r9, r10
xchg rbx, r10
xchg r8, rax
mov rax, r8
xchg r8, rax
mov edx, 0x43c13380
add edx, 0x39223571
sub edx, 0x4608860
sub edx, 0x3a3cd00c
xor edx, 0x22ace533
sub edx, 0x1ceae5a6
mov rcx, qword [0x140217038]
call fcn.14016ddc0
nop
lea rcx, [rbp + 0x1f]
call fcn.14007aef0
nop
jmp 0x1401649ec
test sil, sil
jne 0x140164fd2
mov ecx, dword [rbx + 0x48]
xchg rbx, r10
mov qword [rbp + 0x6f], r10
xchg r10, rbx
xchg rbx, r8
mov qword [rbp + 0x7f], r8
xchg rbx, r8
mov qword [rbp + 0x77], rbx
test ecx, ecx
je 0x140164178
sub ecx, 1
je 0x1401640e5
cmp ecx, 1
jne 0x140164178
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x38]
jne 0x1401640d6
xchg r11, rcx
mov r11, qword [rbx + 0x40]
xchg rcx, r11
sub rcx, rax
xchg r10, rax
mov r10, rdi
xchg r10, rax
imul rcx
sar rdx, 2
xchg rdx, rax
mov rdx, rax
xchg rdx, rax
shr rax, 0xb
shr rax, 8
shr rax, 0x1c
shr rax, 7
shr rax, 5
shr rax, 2
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x1401640cd
mov edx, 0x30866823
sub edx, 0x2af7d58
xor edx, 0x51f3d899
sub edx, 0x51628e62
add edx, 0x379da472
sub edx, 0x54310e79
xor edx, 0x243eef6
sub edx, 0x4fb2c0f
sub edx, 0x771aabc
lea rcx, [rbx + 0x30]
call fcn.140174ac0
lea rcx, [rbp + 0x6f]
call fcn.14009c470
xchg r9, rdx
mov r9, qword [rbx + 0x30]
xchg rdx, r9
jmp 0x14016421c
mov rax, qword [rbx + 0x18]
cmp rax, qword [rbx + 0x20]
jne 0x14016416f
mov rcx, qword [rbx + 0x28]
sub rcx, rax
xchg rbx, rdi
mov rax, rbx
xchg rdi, rbx
imul rcx
sar rdx, 2
xchg rdx, rax
mov rdx, rax
xchg rdx, rax
shr rax, 7
shr rax, 0x24
shr rax, 0x10
shr rax, 4
add rdx, rax
cmp rdx, 0x54
jae 0x140164166
mov edx, 0x6bfbe0ff
sub edx, 0x5e304fae
add edx, 0x44f5ba69
xor edx, 0x78d571d0
add edx, 0x4806edc0
sub edx, 0x3dbc4b6
sub edx, 0x4e4cb9e
sub edx, 0x695a9782
lea rcx, [rbx + 0x18]
call fcn.140174ac0
lea rcx, [rbp + 0x77]
call fcn.140136450
mov rdx, qword [rbx + 0x18]
jmp 0x14016421c
mov rax, qword [rbx]
cmp rax, qword [rbx + 8]
jne 0x140164219
mov rcx, qword [rbx + 0x10]
sub rcx, rax
xchg rdi, rax
mov rdi, rax
xchg rdi, rax
imul rcx
sar rdx, 1
sar rdx, 1
xchg rdx, rax
mov rdx, rax
xchg rdx, rax
shr rax, 1
shr rax, 0x19
shr rax, 0x16
shr rax, 5
shr rax, 6
shr rax, 2
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164210
mov edx, 0x76ebd6
xor edx, 0x3557cb40
xor edx, 0x39a3fe49
xor edx, 0x59047af8
sub edx, 0xee37378
sub edx, 0x162314a9
sub edx, 0x160cf8fe
add edx, 0x4f11910b
sub edx, 0x6984b3bf
xchg rdi, rbx
mov rcx, rdi
xchg rdi, rbx
call fcn.140174ac0
lea rcx, [rbp + 0x7f]
call fcn.1400f3190
mov rdx, qword [rbx]
sub rdx, 0x66bd685f
add rdx, 0x66bd6c07
lea rcx, [rbp + 0x1f]
call fcn.14007a9f0
nop
mov rbx, qword [0x140217038]
mov ecx, dword [rbx + 0x48]
xchg rbx, r15
mov qword [rbp - 9], r15
xchg r15, rbx
xchg rcx, rbx
mov qword [rbp - 0x29], rcx
xchg rbx, rcx
mov qword [rbp - 0x19], rbx
test ecx, ecx
je 0x1401643a7
sub ecx, 1
je 0x14016430e
cmp ecx, 1
jne 0x1401643a7
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x38]
jne 0x1401642ff
mov rcx, qword [rbx + 0x40]
sub rcx, rax
xchg rbp, rdi
mov rax, rbp
xchg rdi, rbp
imul rcx
sar rdx, 1
sar rdx, 1
xchg rbp, rax
mov rbp, rdx
xchg rbp, rax
shr rax, 0x17
shr rax, 0x13
shr rax, 0xf
shr rax, 5
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x1401642f6
mov edx, 0xf66a6fe
add edx, 0x20433d3f
xor edx, 0x5d35c1ce
xor edx, 0xeb75efe
sub edx, 0x6ff4004c
add edx, 0x2fe0dcf6
xor edx, 0x46840aa1
sub edx, 0x7a9c5cc2
lea rcx, [rbx + 0x30]
call fcn.140174ac0
lea rcx, [rbp - 9]
call fcn.14009c470
xchg rdx, r10
mov r10, qword [rbx + 0x30]
xchg rdx, r10
jmp 0x140164446
xchg rdx, rax
mov rdx, qword [rbx + 0x18]
xchg rdx, rax
cmp rax, qword [rbx + 0x20]
jne 0x14016439e
xchg rcx, r12
mov r12, qword [rbx + 0x28]
xchg r12, rcx
sub rcx, rax
mov rax, rdi
imul rcx
sar rdx, 1
sar rdx, 1
xchg rdx, r14
mov rax, r14
xchg r14, rdx
shr rax, 0x3b
shr rax, 2
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164395
mov edx, 0x12ffdb4e
xor edx, 0x2d0b20ab
xor edx, 0x4414594e
add edx, 0x21df91f
sub edx, 0x49ad478c
xor edx, 0x6ffd9921
xor edx, 0x103fe26b
xor edx, 0x4b932f20
lea rcx, [rbx + 0x18]
call fcn.140174ac0
lea rcx, [rbp - 0x19]
call fcn.140136450
mov rdx, qword [rbx + 0x18]
jmp 0x140164446
xchg r8, rax
mov r8, qword [rbx]
xchg r8, rax
cmp rax, qword [rbx + 8]
jne 0x14016443d
mov rcx, qword [rbx + 0x10]
sub rcx, rax
xchg rdi, rax
mov rdi, rax
xchg rdi, rax
imul rcx
sar rdx, 1
sar rdx, 1
xchg rdx, rax
mov rdx, rax
xchg rdx, rax
shr rax, 0x28
shr rax, 0x13
shr rax, 1
shr rax, 1
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164434
mov edx, 0x4599b774
add edx, 0x262a9d74
xor edx, 0x49720741
xor edx, 0x70ff4224
sub edx, 0x10864df9
sub edx, 0x2e15ac5f
add edx, 0x19641b28
sub edx, 0x2d113209
xchg rbp, rcx
mov rbp, rbx
xchg rcx, rbp
call fcn.140174ac0
lea rcx, [rbp - 0x29]
call fcn.1400f3190
xchg r15, rdx
mov r15, qword [rbx]
xchg r15, rdx
lea rcx, [rbp + 7]
call fcn.14007a9f0
nop
lea rcx, [rbp + 0x1f]
call fcn.14007b220
xchg rbx, rax
mov rax, rbx
xchg rbx, rax
lea rcx, [rbp + 7]
call fcn.14007b220
mov r9, rbx
mov r8, rax
mov edx, 0x23df1a8
add edx, 0x6978d875
xor edx, 0x6cb2d449
xor edx, 0x28ca82d3
sub edx, 0x1602b9be
add edx, 0x1c393ecf
add edx, 0x3adf9a6
sub edx, 0x11bfb76b
sub edx, 0x27f3539f
mov rcx, qword [0x140217038]
call fcn.14016ddc0
cmp eax, 6
je 0x14016453e
mov rcx, qword [0x140217038]
mov rcx, qword [rcx + 0x50]
call fcn.1401c36e0
movzx edx, al
xchg rcx, r14
mov r14, rcx
xchg rcx, r14
call fcn.14017ad70
nop
lea rcx, [rbp + 7]
call fcn.14007aef0
nop
lea rcx, [rbp + 0x1f]
call fcn.14007aef0
mov al, 0x2d
sub al, 3
xor al, 0x1f
xor al, 4
sub al, 0x20
add al, 0x3f
add al, 0x26
xor al, 0x4f
sub al, 0x38
add rsp, 0x90
push rbx
push rax
push rdx
push rbx
push rdx
push rbx
push rdx
xchg qword [rsp + 0x38], r14
add rsp, 0x40
push rbx
xchg qword [rsp + 8], rdi
pop rbx
add rsp, 8
nop
mov rsi, qword [rsp]
add rsp, 8
nop
xchg qword [rsp], rbx
add rsp, 8
nop
mov rbp, qword [rsp]
add rsp, 8
ret
lea rcx, [rbp + 7]
call fcn.14007aef0
nop
lea rcx, [rbp + 0x1f]
jmp 0x140164fcd
test sil, sil
jne 0x1401649f5
mov ecx, dword [rbx + 0x48]
mov qword [rbp + 0x6f], rbx
xchg rbx, r15
mov qword [rbp + 0x7f], r15
xchg r15, rbx
mov qword [rbp + 0x77], rbx
test ecx, ecx
je 0x1401646bc
sub ecx, 1
je 0x140164616
cmp ecx, 1
jne 0x1401646bc
xchg r11, rax
mov r11, qword [rbx + 0x30]
xchg r11, rax
cmp rax, qword [rbx + 0x38]
jne 0x14016460d
xchg r11, rcx
mov r11, qword [rbx + 0x40]
xchg r11, rcx
sub rcx, rax
xchg rdi, rdx
mov rax, rdx
xchg rdi, rdx
imul rcx
sar rdx, 2
xchg rdx, rsi
mov rax, rsi
xchg rdx, rsi
shr rax, 0x3f
add rdx, rax
cmp rdx, 0x54
jae 0x140164604
mov edx, 0x70421cc4
add edx, 0xdc00bad
sub edx, 0x2e36fb01
add edx, 0x9f126d3
add edx, 0x23d918b
sub edx, 0x54b23f1e
sub edx, 0x747a65c
lea rcx, [rbx + 0x30]
call fcn.140174ac0
lea rcx, [rbp + 0x6f]
call fcn.14009c470
mov rdx, qword [rbx + 0x30]
jmp 0x140164748
mov rax, qword [rbx + 0x18]
cmp rax, qword [rbx + 0x20]
jne 0x1401646b3
mov rcx, qword [rbx + 0x28]
sub rcx, rax
xchg rdi, r8
mov rax, r8
xchg r8, rdi
imul rcx
sar rdx, 1
sar rdx, 1
mov rax, rdx
shr rax, 4
shr rax, 0x13
shr rax, 0xd
shr rax, 2
shr rax, 7
shr rax, 0xc
shr rax, 1
shr rax, 5
add rdx, rax
cmp rdx, 0x54
jae 0x1401646aa
mov edx, 0x6ff7c35f
xor edx, 0x50cd9e64
sub edx, 0x22479c5f
sub edx, 0x131c4bcc
xor edx, 0x8812e
add edx, 0x4eab37ed
sub edx, 0x3cd5d1be
add edx, 0x4e6594d2
sub edx, 0x6a19eeeb
lea rcx, [rbx + 0x18]
call fcn.140174ac0
lea rcx, [rbp + 0x77]
call fcn.140136450
mov rdx, qword [rbx + 0x18]
jmp 0x140164748
mov rax, qword [rbx]
cmp rax, qword [rbx + 8]
jne 0x14016473f
mov rcx, qword [rbx + 0x10]
sub rcx, rax
mov rax, rdi
imul rcx
sar rdx, 1
sar rdx, 1
mov rax, rdx
shr rax, 0x1f
shr rax, 8
shr rax, 0xd
shr rax, 8
shr rax, 1
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164736
mov edx, 0x566fb316
sub edx, 0x479cee98
add edx, 0x4cb35dc2
sub edx, 0x46988fbf
add edx, 0x501c40ef
sub edx, 0x6509d31c
xchg rbx, rcx
mov rbx, rcx
xchg rcx, rbx
call fcn.140174ac0
lea rcx, [rbp + 0x7f]
call fcn.1400f3190
xchg rdx, r13
mov r13, qword [rbx]
xchg rdx, r13
sub rdx, 0x29bfd5ad
add rdx, 0x29bfd925
lea rcx, [rbp + 7]
call fcn.14007a9f0
nop
mov rbx, qword [0x140217038]
mov ecx, dword [rbx + 0x48]
xchg rbx, r14
mov qword [rbp - 9], r14
xchg r14, rbx
mov qword [rbp - 0x29], rbx
mov qword [rbp - 0x19], rbx
test ecx, ecx
je 0x1401648d7
sub ecx, 1
je 0x140164833
cmp ecx, 1
jne 0x1401648d7
xchg r12, rax
mov r12, qword [rbx + 0x30]
xchg r12, rax
cmp rax, qword [rbx + 0x38]
jne 0x14016482a
mov rcx, qword [rbx + 0x40]
sub rcx, rax
xchg rsi, rax
mov rsi, rdi
xchg rsi, rax
imul rcx
sar rdx, 1
sar rdx, 1
xchg rdx, rax
mov rdx, rax
xchg rdx, rax
shr rax, 0x11
shr rax, 0xe
shr rax, 0x1a
shr rax, 1
shr rax, 4
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164821
mov edx, 0xc7065f6
xor edx, 0x3b56d1b9
xor edx, 0x74ce4b5d
add edx, 0x1646a7e
add edx, 0x2913f2c0
sub edx, 0x62a57f68
add edx, 0x3bb2b3fb
xor edx, 0x476e90b7
lea rcx, [rbx + 0x30]
call fcn.140174ac0
lea rcx, [rbp - 9]
call fcn.14009c470
mov rdx, qword [rbx + 0x30]
jmp 0x140164969
xchg r15, rax
mov r15, qword [rbx + 0x18]
xchg r15, rax
cmp rax, qword [rbx + 0x20]
jne 0x1401648ce
xchg rcx, rdi
mov rdi, qword [rbx + 0x28]
xchg rcx, rdi
sub rcx, rax
xchg rdi, r8
mov rax, r8
xchg rdi, r8
imul rcx
sar rdx, 1
sar rdx, 1
mov rax, rdx
shr rax, 0x27
shr rax, 2
shr rax, 0xd
shr rax, 6
shr rax, 1
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x1401648c5
mov edx, 0x271a28fd
add edx, 0x2e0465f5
sub edx, 0x18c140e6
sub edx, 0x44937a3
add edx, 0x1957f1fb
xor edx, 0x2a347c32
xor edx, 0x457a99aa
sub edx, 0x3e22eda8
lea rcx, [rbx + 0x18]
call fcn.140174ac0
lea rcx, [rbp - 0x19]
call fcn.140136450
mov rdx, qword [rbx + 0x18]
jmp 0x140164969
xchg r15, rax
mov r15, qword [rbx]
xchg r15, rax
cmp rax, qword [rbx + 8]
jne 0x140164966
mov rcx, qword [rbx + 0x10]
sub rcx, rax
mov rax, rdi
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 7
shr rax, 0x24
shr rax, 2
shr rax, 1
shr rax, 0xd
shr rax, 2
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x14016495d
mov edx, 0x765171e8
xor edx, 0x400027eb
add edx, 0x3ba4b5b5
sub edx, 0x36315d8a
xor edx, 0x646426f7
add edx, 0x712d3f8
sub edx, 0x66b35c7d
xchg rcx, r9
mov r9, rbx
xchg rcx, r9
call fcn.140174ac0
lea rcx, [rbp - 0x29]
call fcn.1400f3190
mov rdx, qword [rbx]
add rdx, 0x3b69bc16
sub rdx, 0x3b69b8b6
lea rcx, [rbp + 0x1f]
call fcn.14007a9f0
nop
lea rcx, [rbp + 7]
call fcn.14007b220
mov rbx, rax
lea rcx, [rbp + 0x1f]
call fcn.14007b220
xchg rbx, r8
mov r9, r8
xchg r8, rbx
xchg rdx, rax
mov r8, rdx
xchg rdx, rax
mov edx, 0x79ceaa96
sub edx, 0x341c99c5
sub edx, 0x9b60db7
xor edx, 0x5a7645f0
xor edx, 0x7b0c3eab
sub edx, 0x167b937e
add edx, 0x4a34db8a
xor edx, 0x4e3fd05d
mov rcx, qword [0x140217038]
call fcn.14016ddc0
nop
lea rcx, [rbp + 0x1f]
call fcn.14007aef0
nop
lea rcx, [rbp + 7]
call fcn.14007aef0
movzx edx, sil
xchg r14, rbx
mov rcx, rbx
xchg rbx, r14
call fcn.14017ad70
mov al, 0x50
add al, 9
add al, 0x14
add al, 2
xor al, 0x5c
xor al, 0
sub al, 2
sub al, 0x1d
sub al, 0x13
add rsp, 0x90
nop
add rsp, 8
xchg qword [rsp - 8], r14
push rbx
push rcx
xchg qword [rsp + 0x10], rdi
add rsp, 0x18
push rbx
push rcx
push rdx
push rax
push rcx
push rax
push rax
xchg qword [rsp + 0x38], rsi
add rsp, 0x40
push rdx
push rax
push rax
xchg qword [rsp + 0x18], rbx
pop rax
pop rax
pop rdx
add rsp, 8
nop
add rsp, 8
mov rbp, qword [rsp - 8]
nop
add rsp, 8
jmp qword [rsp - 8]
test sil, sil
jne 0x140164fd2
mov ecx, dword [rbx + 0x48]
mov qword [rbp + 0x6f], rbx
mov qword [rbp + 0x7f], rbx
mov qword [rbp + 0x77], rbx
test ecx, ecx
je 0x140164be2
sub ecx, 1
je 0x140164b39
cmp ecx, 1
jne 0x140164be2
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x38]
jne 0x140164b2a
xchg rcx, r13
mov r13, qword [rbx + 0x40]
xchg r13, rcx
sub rcx, rax
xchg r13, rdi
mov rax, r13
xchg r13, rdi
imul rcx
sar rdx, 1
sar rdx, 1
xchg rdx, rax
mov rdx, rax
xchg rdx, rax
shr rax, 0x11
shr rax, 2
shr rax, 0x21
shr rax, 2
shr rax, 3
shr rax, 5
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164b21
mov edx, 0x6093bf83
add edx, 0x10ec09b9
xor edx, 0x6c918914
xor edx, 0x65d062a1
sub edx, 0x62da2fc5
sub edx, 0x1563f270
lea rcx, [rbx + 0x30]
call fcn.140174ac0
lea rcx, [rbp + 0x6f]
call fcn.14009c470
xchg r11, rdx
mov r11, qword [rbx + 0x30]
xchg r11, rdx
jmp 0x140164c80
xchg rdx, rax
mov rdx, qword [rbx + 0x18]
xchg rdx, rax
cmp rax, qword [rbx + 0x20]
jne 0x140164bd3
mov rcx, qword [rbx + 0x28]
sub rcx, rax
xchg r15, rax
mov r15, rdi
xchg r15, rax
imul rcx
sar rdx, 2
xchg rdx, rbp
mov rax, rbp
xchg rbp, rdx
shr rax, 0x32
shr rax, 7
shr rax, 2
shr rax, 1
shr rax, 2
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164bca
mov edx, 0x57083896
xor edx, 0x13e5e9d2
xor edx, 0x1ced01c9
add edx, 0x244d8243
sub edx, 0x3a163cdb
add edx, 0x355a3ca
xor edx, 0xd2c6fca
sub edx, 0x4307a0e8
xor edx, 0x59a35d9
lea rcx, [rbx + 0x18]
call fcn.140174ac0
lea rcx, [rbp + 0x77]
call fcn.140136450
xchg rdx, rsi
mov rsi, qword [rbx + 0x18]
xchg rsi, rdx
jmp 0x140164c80
mov rax, qword [rbx]
cmp rax, qword [rbx + 8]
jne 0x140164c7d
mov rcx, qword [rbx + 0x10]
sub rcx, rax
xchg rdi, rax
mov rdi, rax
xchg rdi, rax
imul rcx
sar rdx, 2
xchg rcx, rax
mov rcx, rdx
xchg rcx, rax
shr rax, 0x2a
shr rax, 6
shr rax, 5
shr rax, 7
shr rax, 1
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164c74
mov edx, 0x6fcc0a40
sub edx, 0x51e4e8ca
xor edx, 0x67235054
sub edx, 0x475d4d65
xor edx, 0x54c56a37
xor edx, 0x2fe45b3
xor edx, 0x559a8f6a
xor edx, 0x2732c4a5
sub edx, 0x17f447a2
xchg r13, rcx
mov r13, rbx
xchg rcx, r13
call fcn.140174ac0
lea rcx, [rbp + 0x7f]
call fcn.1400f3190
mov rdx, qword [rbx]
add rdx, 0x760a5451
sub rdx, 0x760a50c1
lea rcx, [rbp + 7]
call fcn.14007a9f0
nop
mov rbx, qword [0x140217038]
mov ecx, dword [rbx + 0x48]
xchg r10, rbx
mov qword [rbp - 9], r10
xchg r10, rbx
mov qword [rbp - 0x29], rbx
xchg r14, rbx
mov qword [rbp - 0x19], r14
xchg r14, rbx
test ecx, ecx
je 0x140164e16
sub ecx, 1
je 0x140164d7e
cmp ecx, 1
jne 0x140164e16
xchg r9, rax
mov r9, qword [rbx + 0x30]
xchg r9, rax
cmp rax, qword [rbx + 0x38]
jne 0x140164d75
xchg rbp, rcx
mov rbp, qword [rbx + 0x40]
xchg rcx, rbp
sub rcx, rax
xchg r13, rax
mov r13, rdi
xchg r13, rax
imul rcx
sar rdx, 1
sar rdx, 1
xchg r13, rax
mov r13, rdx
xchg r13, rax
shr rax, 5
shr rax, 0x13
shr rax, 7
shr rax, 0x1d
shr rax, 2
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164d6c
mov edx, 0x292eae3e
add edx, 0x250b1788
add edx, 0xb66fe77
add edx, 0x1e9f1dee
xor edx, 0x7b0c94af
xor edx, 0x227cddb6
sub edx, 0x1b4206ef
add edx, 0x1682bde0
sub edx, 0x1c9061cf
lea rcx, [rbx + 0x30]
call fcn.140174ac0
lea rcx, [rbp - 9]
call fcn.14009c470
mov rdx, qword [rbx + 0x30]
jmp 0x140164eb7
xchg r13, rax
mov r13, qword [rbx + 0x18]
xchg r13, rax
cmp rax, qword [rbx + 0x20]
jne 0x140164e0d
xchg r9, rcx
mov r9, qword [rbx + 0x28]
xchg r9, rcx
sub rcx, rax
mov rax, rdi
imul rcx
sar rdx, 2
xchg rdx, r11
mov rax, r11
xchg rdx, r11
shr rax, 0x36
shr rax, 6
shr rax, 2
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164e04
mov edx, 0x284cec6
add edx, 0x7d3b4063
sub edx, 0x122ce39a
sub edx, 0x4e6ea929
sub edx, 0x168a9f28
add edx, 0x13631cb5
sub edx, 0x107b0ef5
sub edx, 0xb81f0aa
lea rcx, [rbx + 0x18]
call fcn.140174ac0
lea rcx, [rbp - 0x19]
call fcn.140136450
mov rdx, qword [rbx + 0x18]
jmp 0x140164eb7
mov rax, qword [rbx]
cmp rax, qword [rbx + 8]
jne 0x140164eb4
xchg r12, rcx
mov r12, qword [rbx + 0x10]
xchg rcx, r12
sub rcx, rax
xchg rcx, rax
mov rcx, rdi
xchg rcx, rax
imul rcx
sar rdx, 1
sar rdx, 1
xchg rbp, rax
mov rbp, rdx
xchg rbp, rax
shr rax, 9
shr rax, 0x16
shr rax, 0x11
shr rax, 9
shr rax, 4
shr rax, 1
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140164eab
mov edx, 0x211c2896
add edx, 0x40facdb8
sub edx, 0x215523d7
add edx, 0x3be0d358
sub edx, 0x36c20e1c
add edx, 0x1416271a
sub edx, 0x4dd97092
sub edx, 0xc1d4de7
xchg rdx, rbx
mov rcx, rdx
xchg rdx, rbx
call fcn.140174ac0
lea rcx, [rbp - 0x29]
call fcn.1400f3190
mov rdx, qword [rbx]
lea rcx, [rbp + 0x1f]
call fcn.14007a9f0
nop
lea rcx, [rbp + 7]
call fcn.14007b220
xchg rbx, rax
mov rax, rbx
xchg rbx, rax
lea rcx, [rbp + 0x1f]
call fcn.14007b220
xchg r9, rbp
mov rbp, rbx
xchg r9, rbp
xchg r8, rax
mov rax, r8
xchg r8, rax
mov edx, 0x72613554
add edx, 0xdb586a
sub edx, 0x28768847
xor edx, 0x612f7797
add edx, 0x33391df1
xor edx, 0xb24f4ca
sub edx, 0x1488a4ec
xor edx, 0x3f7daf1b
mov rcx, qword [0x140217038]
call fcn.14016ddc0
cmp eax, 6
je 0x140164fbf
mov rcx, qword [0x140217038]
mov rcx, qword [rcx + 0x50]
call fcn.1401c36e0
movzx edx, al
xchg r14, r13
mov rcx, r13
xchg r13, r14
call fcn.14017ad70
nop
lea rcx, [rbp + 0x1f]
call fcn.14007aef0
nop
lea rcx, [rbp + 7]
call fcn.14007aef0
mov al, 0x30
add al, 0x3c
add al, 6
sub al, 0x37
add al, 0x17
add al, 0
xor al, 0x53
add rsp, 0x90
nop
xchg qword [rsp], r14
add rsp, 8
push rbx
push rax
push rbx
push rbx
push rbx
push rdx
push rdx
push rcx
xchg qword [rsp + 0x40], rdi
add rsp, 0x48
nop
mov rsi, qword [rsp]
add rsp, 8
nop
add rsp, 8
xchg qword [rsp - 8], rbx
push rdx
push rdx
push rax
push rdx
push rbx
push rdx
push rcx
push rbx
xchg qword [rsp + 0x40], rbp
add rsp, 0x48
nop
add rsp, 8
jmp qword [rsp - 8]
lea rcx, [rbp + 0x1f]
call fcn.14007aef0
nop
lea rcx, [rbp + 7]
call fcn.14007aef0
mov eax, dword [0x140217060]
test al, 1
jne 0x140165001
or eax, 1
mov dword [0x140217060], eax
call fcn.1401797d0
add rax, 0x7e4ad069
sub rax, 0x7e4ad25d
mov qword [0x140217058], rax
call fcn.1401797d0
xchg rcx, rax
mov rax, rcx
xchg rcx, rax
sub rcx, qword [0x140217058]
cmp rcx, 0x1f4
mov rcx, qword [0x140217038]
jae 0x140165039
mov rcx, qword [rcx + 0x50]
call fcn.1401c36e0
movzx edx, al
jmp 0x1401649f9
mov qword [0x140217058], rax
xor edx, edx
call fcn.14016ffd0
mov rbx, qword [0x140217038]
mov ecx, dword [rbx + 0x48]
xchg rbx, r9
mov qword [rbp + 0x6f], r9
xchg r9, rbx
mov qword [rbp + 0x7f], rbx
xchg rbx, r14
mov qword [rbp + 0x77], r14
xchg r14, rbx
test ecx, ecx
je 0x1401651cd
sub ecx, 1
je 0x140165129
cmp ecx, 1
jne 0x1401651cd
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x38]
jne 0x14016511a
xchg rcx, r13
mov r13, qword [rbx + 0x40]
xchg rcx, r13
sub rcx, rax
xchg rsi, rax
mov rsi, rdi
xchg rsi, rax
imul rcx
sar rdx, 1
sar rdx, 1
xchg rcx, rdx
mov rax, rcx
xchg rdx, rcx
shr rax, 0x23
shr rax, 0x19
shr rax, 2
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140165111
mov edx, 0x6b818835
sub edx, 0x1996cc75
sub edx, 0x2a19c7f9
add edx, 0x3861abb
add edx, 0x48add5ea
xor edx, 0x75b6d31e
add edx, 0x29828ae
add edx, 0x3883a8e9
sub edx, 0x3cce08b5
lea rcx, [rbx + 0x30]
call fcn.140174ac0
lea rcx, [rbp + 0x6f]
call fcn.14009c470
xchg rsi, rdx
mov rsi, qword [rbx + 0x30]
xchg rsi, rdx
jmp 0x14016525f
xchg r10, rax
mov r10, qword [rbx + 0x18]
xchg r10, rax
cmp rax, qword [rbx + 0x20]
jne 0x1401651be
mov rcx, qword [rbx + 0x28]
sub rcx, rax
xchg r14, rax
mov r14, rdi
xchg r14, rax
imul rcx
sar rdx, 1
sar rdx, 1
xchg r13, rax
mov r13, rdx
xchg r13, rax
shr rax, 0x26
shr rax, 0xa
shr rax, 7
shr rax, 4
shr rax, 3
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x1401651b5
mov edx, 0x5b2ded32
sub edx, 0x247e8dcc
xor edx, 0x571fbec7
xor edx, 0x72d1781f
add edx, 0x3362232b
xor edx, 0x38f7a7f
sub edx, 0x3225e3a5
sub edx, 0x1326e29d
lea rcx, [rbx + 0x18]
call fcn.140174ac0
lea rcx, [rbp + 0x77]
call fcn.140136450
xchg rdx, rbp
mov rbp, qword [rbx + 0x18]
xchg rdx, rbp
jmp 0x14016525f
xchg r10, rax
mov r10, qword [rbx]
xchg r10, rax
cmp rax, qword [rbx + 8]
jne 0x14016525c
xchg rcx, r11
mov r11, qword [rbx + 0x10]
xchg rcx, r11
sub rcx, rax
xchg rdi, rax
mov rdi, rax
xchg rdi, rax
imul rcx
sar rdx, 1
sar rdx, 1
xchg r9, rdx
mov rax, r9
xchg r9, rdx
shr rax, 0x26
shr rax, 0x18
shr rax, 1
add rdx, rax
cmp rdx, 0x54
jae 0x140165253
mov edx, 0x608d4165
add edx, 0x8b871ae
add edx, 0x2da9f90
sub edx, 0x27916d3d
add edx, 0x228cd6a9
add edx, 0x1727ed30
sub edx, 0x48f2adba
sub edx, 0x3550fb31
mov rcx, rbx
call fcn.140174ac0
lea rcx, [rbp + 0x7f]
call fcn.1400f3190
mov rdx, qword [rbx]
sub rdx, 0xfffffffffffffa48
lea rcx, [rbp + 0x1f]
call fcn.14007a9f0
nop
lea rcx, [rbp + 0x1f]
call fcn.14007b220
mov rcx, qword [0x140217038]
neg rcx
add rcx, 0xfffffffffffffe88
neg rcx
nop
movabs r8, 0xffffffff2130ebcc
add r8, 0x19065d7f
sub r8, 0x140b6ea5
xor r8, 0x76bc2a14
sub r8, 0x1ae918d3
xor r8, 0x16f948c1
add r8, 0x7fffffff
add r8, 0x5ca860e2
inc r8
cmp word [rax + r8*2], 0
jne 0x1401652c9
mov rdx, rax
call fcn.140175700
nop
lea rcx, [rbp + 0x1f]
call fcn.14007aef0
mov rax, qword [0x140217038]
lea rdx, [rax + 0x178]
cmp qword [rdx + 0x18], 8
jb 0x140165306
mov rdx, qword [rdx]
mov rcx, qword [rax + 0x198]
call fcn.14017d1e0
mov rcx, qword [0x140217038]
call fcn.14016dcd0
mov ecx, 0x690fd3fb
sub ecx, 0x6322a6de
add ecx, 0x4c3cc605
add ecx, 0x4aa5f7c
sub ecx, 0x264af8dc
sub ecx, 0x7746b0f
add ecx, 0x4cecd21a
sub ecx, 0x7601c0c5
call fcn.1401fc7c8
test rax, rax
je 0x140165364
xchg r14, rsi
mov qword [rax], rsi
xchg r14, rsi
xchg r12, rax
mov qword [rbp + 0x6f], r12
xchg r12, rax
lea rcx, [rbp - 1]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x36383be2
add dword [rsp + 0x20], 0x334cd23a
sub dword [rsp + 0x20], 0x206d5cbf
add dword [rsp + 0x20], 0xef8b2af
xor dword [rsp + 0x20], 0x6a73e6c
add dword [rsp + 0x20], 0x1109e247
sub dword [rsp + 0x20], 0x39b2158f
xor dword [rsp + 0x20], 0x7f0bf426
sub dword [rsp + 0x20], 0x4904d33e
xchg rcx, rax
mov r9, rcx
xchg rcx, rax
lea r8, [0x140081f50]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
xchg rbx, rax
mov qword [rbp - 9], rbx
xchg rbx, rax
test rax, rax
je 0x140165467
cmp dword [rbp - 1], 0
je 0x1401654c6
xchg r10, rbp
movaps xmm0, xmmword [r10 - 9]
xchg r10, rbp
xchg rbp, r11
movdqa xmmword [r11 - 0x19], xmm0
xchg rbp, r11
lea rcx, [rbp - 0x19]
call sub.MSVCP140.dll__Thrd_detach
test eax, eax
jne 0x14016545f
mov al, 3
add al, 0x4b
add al, 0x30
xor al, 0x1d
xor al, 0x71
xor al, 0xb
add al, 0x17
sub al, 0x2f
add rsp, 0x90
nop
add rsp, 8
mov r14, qword [rsp - 8]
nop
add rsp, 8
xchg qword [rsp - 8], rdi
nop
xchg qword [rsp], rsi
add rsp, 8
nop
mov rbx, qword [rsp]
add rsp, 8
nop
mov rbp, qword [rsp]
add rsp, 8
ret
mov ecx, eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
nop
mov dword [rbp - 1], 0x5cdbb09d
add dword [rbp - 1], 0x13938b18
sub dword [rbp - 1], 0x36228ab1
add dword [rbp - 1], 0x12f39a6d
xor dword [rbp - 1], 0x6f4bd3f1
xor dword [rbp - 1], 0x220b9880
mov ecx, 0x246a1721
add ecx, 0x514f06b0
sub ecx, 0x48ee707e
xor ecx, 0x77aebd3
xor ecx, 0x1f71a2de
xor ecx, 0x50c608b7
add ecx, 0x2c894f7
sub ecx, 0x66d081da
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
nop
mov ecx, 0x59e1fe33
sub ecx, 0x57de8a73
add ecx, 0x7ddb5971
sub ecx, 0x756435a9
xor ecx, 0x2be3d7e8
add ecx, 0x13353d8
xor ecx, 0x22cc9439
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
int3