Function at 0x14002e970
Capabilities:
Encrypt data using speck

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x628]
sub rsp, 0x700
mov qword [rbp - 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1401bee90]
xor rax, rsp
mov qword [rbp + 0x5f0], rax
mov rsi, rcx
mov ebx, 1
call fcn.14002ca10
xor r14d, r14d
test al, al
cmovne ebx, r14d
mov edx, ebx
lea rcx, [0x14014baa4]
call fcn.14002df70
mov rdi, rax
test rax, rax
je 0x14002f170
mov eax, dword [rsp + 0x68]
and eax, 0xffffff00
mov dword [rsp + 0x68], eax
btr eax, 8
mov dword [rsp + 0x68], eax
mov qword [rsp + 0x70], r14
mov eax, dword [rbp - 0x50]
and eax, 0xffffff04
or eax, 4
mov dword [rbp - 0x50], eax
bts eax, 8
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], r14
mov eax, dword [0x1401c8048]
lea r15, vtable.Json::ValueAllocator.0
lea r12, vtable.Json::DefaultValueAllocator.0
test al, 1
jne 0x14002ea49
or eax, 1
mov dword [0x1401c8048], eax
mov qword [0x1401c7f50], r15
mov qword [0x1401c7f50], r12
lea rcx, [0x140118bf0]
call fcn.1400ccfc0
nop
mov rcx, qword [0x1401c2040]
mov rax, qword [rcx]
or r8d, 0xffffffff
lea rdx, [0x14014bb14]
call qword [rax + 0x18]
mov qword [rbp - 0x58], rax
lea rdx, [0x14014bac4]
lea rcx, [rsp + 0x60]
call fcn.14003adf0
mov rbx, rax
lea rdx, [rbp - 0x58]
lea rcx, [rsp + 0x30]
call fcn.14003a250
nop
movsx edx, byte [rbx + 8]
movzx ecx, byte [rsp + 0x38]
mov byte [rbx + 8], cl
mov r9d, dword [rsp + 0x38]
mov ecx, r9d
xor ecx, edx
movzx ecx, cl
xor r9d, ecx
mov dword [rsp + 0x38], r9d
mov rax, qword [rbx]
mov rcx, qword [rsp + 0x30]
mov qword [rbx], rcx
mov qword [rsp + 0x30], rax
mov ecx, dword [rbx + 8]
mov r8d, ecx
shl r8d, 0x17
sar r8d, 0x1f
mov eax, r9d
xor eax, ecx
and eax, 0x100
xor eax, ecx
mov dword [rbx + 8], eax
shl r8d, 8
xor r8d, r9d
and r8d, 0x100
xor r9d, r8d
mov dword [rsp + 0x38], r9d
lea rcx, [rsp + 0x30]
call fcn.14003a3b0
nop
lea rcx, [rbp - 0x58]
call fcn.14003a3b0
mov rdx, rsi
lea rcx, [rbp - 0x58]
call fcn.140022650
mov rbx, rax
mov ecx, dword [rsp + 0x50]
and ecx, 0xffffff04
or ecx, 4
mov dword [rsp + 0x50], ecx
bts ecx, 8
mov dword [rsp + 0x50], ecx
mov qword [rsp + 0x58], r14
mov eax, dword [0x1401c8048]
test al, 1
jne 0x14002eb5b
or eax, 1
mov dword [0x1401c8048], eax
mov qword [0x1401c7f50], r15
mov qword [0x1401c7f50], r12
lea rcx, [0x140118bf0]
call fcn.1400ccfc0
nop
mov rdx, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0x10
jb 0x14002eb69
mov rbx, qword [rbx]
mov rcx, qword [0x1401c2040]
mov rax, qword [rcx]
mov r8d, edx
mov rdx, rbx
call qword [rax + 0x18]
mov qword [rsp + 0x48], rax
lea rdx, [0x14014bb3c]
lea rcx, [rsp + 0x60]
call fcn.14003adf0
mov rbx, rax
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.14003a250
nop
movsx edx, byte [rbx + 8]
movzx ecx, byte [rsp + 0x38]
mov byte [rbx + 8], cl
mov r8d, dword [rsp + 0x38]
mov ecx, r8d
xor ecx, edx
movzx ecx, cl
xor r8d, ecx
mov dword [rsp + 0x38], r8d
mov rax, qword [rbx]
mov rcx, qword [rsp + 0x30]
mov qword [rbx], rcx
mov qword [rsp + 0x30], rax
mov ecx, dword [rbx + 8]
mov edx, ecx
shl edx, 0x17
sar edx, 0x1f
mov eax, r8d
xor eax, ecx
and eax, 0x100
xor eax, ecx
mov dword [rbx + 8], eax
shl edx, 8
xor edx, r8d
and edx, 0x100
xor r8d, edx
mov dword [rsp + 0x38], r8d
lea rcx, [rsp + 0x30]
call fcn.14003a3b0
nop
lea rcx, [rsp + 0x48]
call fcn.14003a3b0
nop
cmp qword [rbp - 0x40], 0x10
jb 0x14002ec2a
mov rcx, qword [rbp - 0x58]
call fcn.1400cc890
mov qword [rbp - 0x40], 0xf
mov qword [rbp - 0x48], r14
mov byte [rbp - 0x58], 0
mov eax, dword [rsp + 0x50]
and eax, 0xffffff04
or eax, 4
mov dword [rsp + 0x50], eax
bts eax, 8
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x58], r14
mov eax, dword [0x1401c8048]
test al, 1
jne 0x14002ec85
or eax, 1
mov dword [0x1401c8048], eax
mov qword [0x1401c7f50], r15
mov qword [0x1401c7f50], r12
lea rcx, [0x140118bf0]
call fcn.1400ccfc0
nop
mov rcx, qword [0x1401c2040]
mov rax, qword [rcx]
or r8d, 0xffffffff
lea rdx, [0x14014bacc]
call qword [rax + 0x18]
mov qword [rsp + 0x48], rax
lea rdx, [0x14014c910]
lea rcx, [rsp + 0x60]
call fcn.14003adf0
mov r8, rax
mov rcx, rax
call fcn.14003aa20
mov edx, eax
mov rcx, r8
call fcn.14003aad0
mov rbx, rax
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.14003a250
nop
movsx edx, byte [rbx + 8]
movzx ecx, byte [rsp + 0x38]
mov byte [rbx + 8], cl
mov r8d, dword [rsp + 0x38]
mov ecx, r8d
xor ecx, edx
movzx ecx, cl
xor r8d, ecx
mov dword [rsp + 0x38], r8d
mov rax, qword [rbx]
mov rcx, qword [rsp + 0x30]
mov qword [rbx], rcx
mov qword [rsp + 0x30], rax
mov ecx, dword [rbx + 8]
mov edx, ecx
shl edx, 0x17
sar edx, 0x1f
mov eax, r8d
xor eax, ecx
and eax, 0x100
xor eax, ecx
mov dword [rbx + 8], eax
shl edx, 8
xor edx, r8d
and edx, 0x100
xor r8d, edx
mov dword [rsp + 0x38], r8d
lea rcx, [rsp + 0x30]
call fcn.14003a3b0
nop
lea rcx, [rsp + 0x48]
call fcn.14003a3b0
mov eax, dword [rbp - 0x50]
and eax, 0xffffff04
or eax, 4
mov dword [rbp - 0x50], eax
bts eax, 8
mov dword [rbp - 0x50], eax
mov qword [rbp - 0x48], r14
mov eax, dword [0x1401c8048]
test al, 1
jne 0x14002ed96
or eax, 1
mov dword [0x1401c8048], eax
mov qword [0x1401c7f50], r15
mov qword [0x1401c7f50], r12
lea rcx, [0x140118bf0]
call fcn.1400ccfc0
nop
mov rcx, qword [0x1401c2040]
mov rax, qword [rcx]
or r8d, 0xffffffff
lea rdx, [0x14014bb9c]
call qword [rax + 0x18]
mov qword [rbp - 0x58], rax
lea rdx, [0x14014c938]
lea rcx, [rsp + 0x60]
call fcn.14003adf0
mov rbx, rax
lea rdx, [rbp - 0x58]
lea rcx, [rsp + 0x30]
call fcn.14003a250
nop
movsx edx, byte [rbx + 8]
movzx ecx, byte [rsp + 0x38]
mov byte [rbx + 8], cl
mov r8d, dword [rsp + 0x38]
mov ecx, r8d
xor ecx, edx
movzx ecx, cl
xor r8d, ecx
mov dword [rsp + 0x38], r8d
mov rax, qword [rbx]
mov rcx, qword [rsp + 0x30]
mov qword [rbx], rcx
mov qword [rsp + 0x30], rax
mov ecx, dword [rbx + 8]
mov edx, ecx
shl edx, 0x17
sar edx, 0x1f
mov eax, r8d
xor eax, ecx
and eax, 0x100
xor eax, ecx
mov dword [rbx + 8], eax
shl edx, 8
xor edx, r8d
and edx, 0x100
xor r8d, edx
mov dword [rsp + 0x38], r8d
lea rcx, [rsp + 0x30]
call fcn.14003a3b0
nop
lea rcx, [rbp - 0x58]
call fcn.14003a3b0
mov eax, dword [rsp + 0x50]
and eax, 0xffffff05
or eax, 5
mov dword [rsp + 0x50], eax
mov qword [rsp + 0x58], r14
mov byte [rsp + 0x48], 1
lea rdx, str.noResponse
lea rcx, [rsp + 0x60]
call fcn.14003adf0
mov rbx, rax
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.14003a250
nop
movsx edx, byte [rbx + 8]
movzx ecx, byte [rsp + 0x38]
mov byte [rbx + 8], cl
mov r8d, dword [rsp + 0x38]
mov ecx, r8d
xor ecx, edx
movzx ecx, cl
xor r8d, ecx
mov dword [rsp + 0x38], r8d
mov rax, qword [rbx]
mov rcx, qword [rsp + 0x30]
mov qword [rbx], rcx
mov qword [rsp + 0x30], rax
mov ecx, dword [rbx + 8]
mov edx, ecx
shl edx, 0x17
sar edx, 0x1f
mov eax, r8d
xor eax, ecx
and eax, 0x100
xor eax, ecx
mov dword [rbx + 8], eax
shl edx, 8
xor edx, r8d
and edx, 0x100
xor r8d, edx
mov dword [rsp + 0x38], r8d
lea rcx, [rsp + 0x30]
call fcn.14003a3b0
nop
lea rcx, [rsp + 0x48]
call fcn.14003a3b0
mov qword [rsp + 0x78], r14
lea r9, [rsp + 0x60]
lea r8, [rsp + 0x78]
mov rdx, rdi
lea rcx, [rbp - 0x80]
call fcn.1400300d0
nop
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov r9d, dword [0x1401c6d80]
mov ecx, r9d
imul ecx, r9d
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x17
sub ecx, edx
cmp ecx, 0x15
jne 0x14002efb9
mov esi, r14d
lea rdi, [rbp - 0x30]
mov r10d, r14d
nop word [rax + rax]
lea ebx, [r10 + 1]
lea ecx, [rsi + 1]
mov eax, r9d
cdq
idiv ecx
mov r8d, edx
mov ecx, r9d
sub ecx, esi
imul r8d, ecx
mov eax, r9d
cdq
idiv ebx
add r8d, eax
sub r8d, r10d
mov edx, r8d
lea rcx, [0x14014bb84]
call fcn.1400cd1bc
mov r10d, ebx
add rdi, 4
cmp ebx, 0x1a
jge 0x14002efa9
mov r9d, dword [0x1401c6d80]
jmp 0x14002ef60
inc esi
cmp esi, 0xf
jge 0x14002efb9
mov r9d, dword [0x1401c6d80]
jmp 0x14002ef51
lea rdx, [0x14014bc9c]
lea rcx, [rbp - 0x80]
call fcn.14003adf0
cmp byte [rax + 8], 5
jne 0x14002eff0
lea rdx, [0x14014bd54]
lea rcx, [rbp - 0x80]
call fcn.14003adf0
mov rcx, rax
call fcn.14003a9a0
test al, al
je 0x14002eff0
mov dil, 1
jmp 0x14002eff3
xor dil, dil
mov eax, dword [rbp - 0x78]
movsx ecx, al
cmp ecx, 4
je 0x14002f03c
lea eax, [rcx - 6]
cmp eax, 1
ja 0x14002f081
mov rbx, qword [rbp - 0x80]
mov qword [rsp + 0x78], rbx
test rbx, rbx
je 0x14002f081
mov r8, qword [rbx]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp - 0x68]
mov rcx, rbx
call fcn.14003bac0
nop
mov rcx, qword [rbx]
call fcn.1400cc890
mov rcx, rbx
call fcn.1400cc890
jmp 0x14002f081
bt eax, 8
jae 0x14002f081
mov eax, dword [0x1401c8048]
test al, 1
jne 0x14002f070
or eax, 1
mov dword [0x1401c8048], eax
mov qword [0x1401c7f50], r15
mov qword [0x1401c7f50], r12
lea rcx, [0x140118bf0]
call fcn.1400ccfc0
nop
mov rcx, qword [0x1401c2040]
mov rax, qword [rcx]
mov rdx, qword [rbp - 0x80]
call qword [rax + 0x20]
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x14002f0ab
lea rbx, [rcx - 8]
lea r9, [0x140039e50]
mov r8d, dword [rbx]
mov edx, 8
call fcn.1400ccdc4
mov rcx, rbx
call fcn.1400cd9ec
nop
movsx eax, byte [rsp + 0x68]
cmp eax, 4
je 0x14002f0f8
add eax, 0xfffffffa
cmp eax, 1
ja 0x14002f142
mov rbx, qword [rsp + 0x60]
mov qword [rbp - 0x68], rbx
test rbx, rbx
je 0x14002f142
mov r8, qword [rbx]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rsp + 0x78]
mov rcx, rbx
call fcn.14003bac0
nop
mov rcx, qword [rbx]
call fcn.1400cc890
mov rcx, rbx
call fcn.1400cc890
jmp 0x14002f142
test dword [rsp + 0x68], 0x100
je 0x14002f142
mov eax, dword [0x1401c8048]
test al, 1
jne 0x14002f130
or eax, 1
mov dword [0x1401c8048], eax
mov qword [0x1401c7f50], r15
mov qword [0x1401c7f50], r12
lea rcx, [0x140118bf0]
call fcn.1400ccfc0
nop
mov rcx, qword [0x1401c2040]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x60]
call qword [rax + 0x20]
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14002f16c
lea rbx, [rcx - 8]
lea r9, [0x140039e50]
mov r8d, dword [rbx]
mov edx, 8
call fcn.1400ccdc4
mov rcx, rbx
call fcn.1400cd9ec
movzx eax, dil
mov rcx, qword [rbp + 0x5f0]
xor rcx, rsp
call fcn.1400cc8b0
lea r11, [rsp + 0x700]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret