Function at 0x1400a2940
Capabilities:
Access peb ldr_data
Encode data using xor
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x280]
sub rsp, 0x380
mov rax, qword [0x1401550c0]
xor rax, rsp
mov qword [rbp + 0x278], rax
mov r14, rdx
mov r15, rcx
xor edx, edx
mov r8d, 0x2cc
lea rcx, [rbp - 0x80]
call fcn.1400fe0d0
mov dword [rbp + 0x250], 0x2cc
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x1400a2a16
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1400a2a16
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov ecx, dword [rcx + r11]
add rcx, r11
mov r8d, 0xb49e7567
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x1400a2a11
nop
movsx edx, dl
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx]
lea rcx, [rcx + 1]
test dl, dl
jne 0x1400a29f0
cmp r8d, 0x30640b9c
je 0x1400a2a1b
test r9d, r9d
jne 0x1400a29d0
mov rax, qword [rax]
jmp 0x1400a29a0
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
lea r9, [rbp + 0x250]
lea r8, [rbp - 0x80]
mov edx, 0x42
mov rcx, r15
call r10
mov eax, dword [rbp - 0x78]
cmp eax, 0x40
ja 0x1400a2df3
je 0x1400a2d75
dec eax
cmp eax, 0x1f
ja case.0x1400a2a7f.3
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0xa3ad4]
mov ecx, dword [rdx + rax*4 + 0xa3ab8]
add rcx, rdx
jmp rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x25
jb 0x1400a2ae5
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x25
mov r8d, 0x25
lea rdx, str.Secure_Sockets_Layer_3.0_client_side.
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x25], 0
jmp 0x1400a2afa
lea r9, str.Secure_Sockets_Layer_3.0_client_side.
mov edx, 0x25
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x25
jb 0x1400a2b63
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x25
mov r8d, 0x25
lea rdx, str.Secure_Sockets_Layer_3.0_server_side.
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x25], 0
jmp 0x1400a2b78
lea r9, str.Secure_Sockets_Layer_3.0_server_side.
mov edx, 0x25
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x48
jb 0x1400a2be1
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x48
mov r8d, 0x48
lea rdx, str.Secure_Sockets_Layer_2.0_client_side._Superseded_by_SP_PROT_TLS1_CLIENT.
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x48], 0
jmp 0x1400a2bf6
lea r9, str.Secure_Sockets_Layer_2.0_client_side._Superseded_by_SP_PROT_TLS1_CLIENT.
mov edx, 0x48
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x49
jb 0x1400a2c5f
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x49
mov r8d, 0x49
lea rdx, str.Secure_Sockets_Layer_2.0_server_side._Superseded_by_SP_PROT_TLS1_SERVER.
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x49], 0
jmp 0x1400a2c74
lea r9, str.Secure_Sockets_Layer_2.0_server_side._Superseded_by_SP_PROT_TLS1_SERVER.
mov edx, 0x49
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x3c
jb 0x1400a2cdd
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x3c
mov r8d, 0x3c
lea rdx, str.Private_Communications_Technology_1.0_client_side._Obsolete.
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x3c], 0
jmp 0x1400a2cf2
lea r9, str.Private_Communications_Technology_1.0_client_side._Obsolete.
mov edx, 0x3c
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x3c
jb 0x1400a2d5b
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x3c
mov r8d, 0x3c
lea rdx, str.Private_Communications_Technology_1.0_server_side._Obsolete.
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x3c], 0
jmp 0x1400a2d70
lea r9, str.Private_Communications_Technology_1.0_server_side._Obsolete.
mov edx, 0x3c
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x28
jb 0x1400a2dd9
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x28
mov r8d, 0x28
lea rdx, str.Transport_Layer_Security_1.0_server_side
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x28], 0
jmp 0x1400a2dee
lea r9, str.Transport_Layer_Security_1.0_server_side
mov edx, 0x28
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
cmp eax, 0x80
je 0x1400a301f
cmp eax, 0x100
je 0x1400a2fa4
cmp eax, 0x200
je 0x1400a2f26
cmp eax, 0x400
je 0x1400a2ea8
cmp eax, 0x800
jne case.0x1400a2a7f.3
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x28
jb 0x1400a2e8e
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x28
mov r8d, 0x28
lea rdx, str.Transport_Layer_Security_1.2_client_side
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x28], 0
jmp 0x1400a2ea3
lea r9, str.Transport_Layer_Security_1.2_client_side
mov edx, 0x28
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x29
jb 0x1400a2f0c
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x29
mov r8d, 0x29
lea rdx, str.Transport_Layer_Security_1.2_server_side.
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x29], 0
jmp 0x1400a2f21
lea r9, str.Transport_Layer_Security_1.2_server_side.
mov edx, 0x29
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x28
jb 0x1400a2f8a
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x28
mov r8d, 0x28
lea rdx, str.Transport_Layer_Security_1.1_client_side
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x28], 0
jmp 0x1400a2f9f
lea r9, str.Transport_Layer_Security_1.1_client_side
mov edx, 0x28
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x29
jb 0x1400a3008
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x29
mov r8d, 0x29
lea rdx, str.Transport_Layer_Security_1.1_server_side.
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x29], 0
jmp 0x1400a301d
lea r9, str.Transport_Layer_Security_1.1_server_side.
mov edx, 0x29
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3098
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.protocol
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x28
jb 0x1400a3083
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x28
mov r8d, 0x28
lea rdx, str.Transport_Layer_Security_1.0_client_side
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x28], 0
jmp 0x1400a3098
lea r9, str.Transport_Layer_Security_1.0_client_side
mov edx, 0x28
mov rcx, rax
call fcn.1400138b0
nop
lea rcx, [rsp + 0x30]
call fcn.140002fe0
mov eax, dword [rbp - 0x74]
cmp eax, 0x6603
ja 0x1400a32d4
je 0x1400a3256
test eax, eax
je 0x1400a31cc
sub eax, 0x6601
je 0x1400a314e
cmp eax, 1
jne 0x1400a346f
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
lea r8d, [rax + 5]
lea rdx, str.cipher
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x1e
jb 0x1400a3134
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x1e
mov r8d, 0x1e
lea rdx, str.RC2_block_encryption_algorithm
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x1e], 0
jmp 0x1400a3149
lea r9, str.RC2_block_encryption_algorithm
mov edx, 0x1e
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3465
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 6
lea rdx, str.cipher
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x18
jb 0x1400a31b2
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x18
mov r8d, 0x18
lea rdx, str.DES_encryption_algorithm
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x18], 0
jmp 0x1400a31c7
lea r9, str.DES_encryption_algorithm
mov edx, 0x18
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3465
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 6
lea rdx, str.cipher
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
mov rcx, qword [rax + 0x18]
cmp rcx, 0xd
jb 0x1400a323c
mov rbx, rax
cmp rcx, 0xf
jbe 0x1400a3219
mov rbx, qword [rax]
mov qword [rax + 0x10], 0xd
mov r8d, 0xd
lea rdx, str.No_encryption
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0xd], 0
jmp 0x1400a3251
lea r9, str.No_encryption
mov edx, 0xd
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3465
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 6
lea rdx, str.cipher
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x1f
jb 0x1400a32ba
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x1f
mov r8d, 0x1f
lea rdx, str.3DES_block_encryption_algorithm
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x1f], 0
jmp 0x1400a32cf
lea r9, str.3DES_block_encryption_algorithm
mov edx, 0x1f
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3465
sub eax, 0x660e
je 0x1400a33ec
sub eax, 2
je 0x1400a3371
cmp eax, 0x1f1
jne 0x1400a346f
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 6
lea rdx, str.cipher
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x1f
jb 0x1400a3357
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x1f
mov r8d, 0x1f
lea rdx, str.RC4_stream_encryption_algorithm
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x1f], 0
jmp 0x1400a336c
lea r9, str.RC4_stream_encryption_algorithm
mov edx, 0x1f
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3465
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 6
lea rdx, str.cipher
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x20
jb 0x1400a33d5
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x20
mov r8d, 0x20
lea rdx, str.AES_256_bit_encryption_algorithm
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x20], 0
jmp 0x1400a33ea
lea r9, str.AES_256_bit_encryption_algorithm
mov edx, 0x20
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a3465
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 6
lea rdx, str.cipher
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x20
jb 0x1400a3450
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x20
mov r8d, 0x20
lea rdx, str.AES_128_bit_encryption_algorithm
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x20], 0
jmp 0x1400a3465
lea r9, str.AES_128_bit_encryption_algorithm
mov edx, 0x20
mov rcx, rax
call fcn.1400138b0
nop
lea rcx, [rsp + 0x30]
call fcn.140002fe0
mov edx, dword [rbp - 0x70]
lea rcx, [rsp + 0x58]
call fcn.1400250d0
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 0xf
lea rdx, str.cipher_strength
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
mov rcx, rax
mov rdx, rbx
call fcn.14000cdd0
nop
lea rcx, [rsp + 0x30]
call fcn.140002fe0
nop
lea rcx, [rsp + 0x58]
call fcn.140002fe0
mov eax, dword [rbp - 0x6c]
sub eax, 0x8003
je 0x1400a3567
cmp eax, 1
jne 0x1400a35ea
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
lea r8d, [rax + 3]
lea rdx, str.hash
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x15
jb 0x1400a3550
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x15
mov r8d, 0x15
lea rdx, str.SHA_hashing_algorithm
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x15], 0
jmp 0x1400a3565
lea r9, str.SHA_hashing_algorithm
mov edx, 0x15
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a35e0
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 4
lea rdx, str.hash
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x15
jb 0x1400a35cb
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x15
mov r8d, 0x15
lea rdx, str.MD5_hashing_algorithm
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x15], 0
jmp 0x1400a35e0
lea r9, str.MD5_hashing_algorithm
mov edx, 0x15
mov rcx, rax
call fcn.1400138b0
nop
lea rcx, [rsp + 0x30]
call fcn.140002fe0
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 4
lea rdx, str.hash
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x1400a362f
mov rax, qword [rax]
test r8, r8
jne 0x1400a364b
lea rdx, [0x140135898]
mov rcx, rax
call fcn.1400fe510
test eax, eax
jne 0x1400a364b
xor bl, bl
jmp 0x1400a364d
mov bl, 1
lea rcx, [rsp + 0x30]
call fcn.140002fe0
test bl, bl
je 0x1400a36c3
mov edx, dword [rbp - 0x68]
lea rcx, [rsp + 0x58]
call fcn.1400250d0
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 0xd
lea rdx, str.hash_strength
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
mov rcx, rax
mov rdx, rbx
call fcn.14000cdd0
nop
lea rcx, [rsp + 0x30]
call fcn.140002fe0
nop
lea rcx, [rsp + 0x58]
call fcn.140002fe0
mov eax, dword [rbp - 0x64]
cmp eax, 0xa400
je 0x1400a3757
cmp eax, 0xaa02
jne 0x1400a37da
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.key_exch
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x1b
jb 0x1400a3740
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x1b
mov r8d, 0x1b
lea rdx, str.Diffie_Hellman_key_exchange
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x1b], 0
jmp 0x1400a3755
lea r9, str.Diffie_Hellman_key_exchange
mov edx, 0x1b
mov rcx, rax
call fcn.1400138b0
nop
jmp 0x1400a37d0
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.key_exch
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
cmp qword [rax + 0x18], 0x10
jb 0x1400a37bb
mov rbx, qword [rax]
mov qword [rax + 0x10], 0x10
mov r8d, 0x10
lea rdx, str.RSA_key_exchange
mov rcx, rbx
call fcn.1400fda30
mov byte [rbx + 0x10], 0
jmp 0x1400a37d0
lea r9, str.RSA_key_exchange
mov edx, 0x10
mov rcx, rax
call fcn.1400138b0
nop
lea rcx, [rsp + 0x30]
call fcn.140002fe0
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 8
lea rdx, str.key_exch
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x1400a381f
mov rax, qword [rax]
test r8, r8
jne 0x1400a383b
lea rdx, [0x140135898]
mov rcx, rax
call fcn.1400fe510
test eax, eax
jne 0x1400a383b
xor bl, bl
jmp 0x1400a383d
mov bl, 1
lea rcx, [rsp + 0x30]
call fcn.140002fe0
test bl, bl
je 0x1400a38b3
mov edx, dword [rbp - 0x60]
lea rcx, [rsp + 0x58]
call fcn.1400250d0
mov rbx, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 0x11
lea rdx, str.key_exch_strength
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
mov rcx, rax
mov rdx, rbx
call fcn.14000cdd0
nop
lea rcx, [rsp + 0x30]
call fcn.140002fe0
nop
lea rcx, [rsp + 0x58]
call fcn.140002fe0
xorps xmm0, xmm0
movups xmmword [rbp + 0x258], xmm0
mov qword [rbp + 0x268], 0
mov qword [rbp + 0x270], 0xf
mov byte [rbp + 0x258], 0
mov dword [rbp + 0x254], 0x800
mov byte [rsp + 0x20], 0
mov r9d, 0x800
movzx r8d, byte [rsp + 0x50]
mov edx, r9d
lea rcx, [rbp + 0x258]
call fcn.14000dcc0
lea rsi, [rbp + 0x258]
cmp qword [rbp + 0x270], 0xf
cmova rsi, qword [rbp + 0x258]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x1400a39a6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1400a39a6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r11]
add rdx, r11
mov r8d, 0x1afb0065
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x1400a39a1
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x1400a3980
cmp r8d, 0xe606cc70
je 0x1400a39ab
test r9d, r9d
jne 0x1400a3960
mov rax, qword [rax]
jmp 0x1400a3930
mov edx, dword [rdi + 0x1c]
add rdx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rdx + rax*4]
add r10, r11
lea r9, [rbp + 0x254]
mov r8, rsi
mov edx, 0x23
mov rcx, r15
call r10
test eax, eax
je 0x1400a3a85
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov r8d, 0xb
lea rdx, str.certificate
lea rcx, [rsp + 0x30]
call fcn.140003440
nop
lea rdx, [rsp + 0x30]
lea rcx, [r14 + 0x20]
call fcn.1400a5470
lea rcx, [rbp + 0x258]
cmp rax, rcx
je 0x1400a3a7a
mov rbx, qword [rbp + 0x268]
lea r9, [rbp + 0x258]
cmp qword [rbp + 0x270], 0xf
cmova r9, qword [rbp + 0x258]
mov rcx, qword [rax + 0x18]
cmp rbx, rcx
ja 0x1400a3a6e
mov rdi, rax
cmp rcx, 0xf
jbe 0x1400a3a56
mov rdi, qword [rax]
mov qword [rax + 0x10], rbx
mov r8, rbx
mov rdx, r9
mov rcx, rdi
call fcn.1400fda30
mov byte [rdi + rbx], 0
jmp 0x1400a3a7a
mov rdx, rbx
mov rcx, rax
call fcn.1400138b0
nop
lea rcx, [rsp + 0x30]
call fcn.140002fe0
nop
lea rcx, [rbp + 0x258]
call fcn.140002fe0
mov rcx, qword [rbp + 0x278]
xor rcx, rsp
call fcn.1400cc9e0
mov rbx, qword [rsp + 0x3c0]
add rsp, 0x380
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret