Function at 0x180004100
Capabilities:
Hash data using sha1

Disassembly:
mov r11, rsp
push rbx
push rbp
push rsi
push r14
push r15
sub rsp, 0x1b0
mov rax, qword [0x180055010]
xor rax, rsp
mov qword [rsp + 0x198], rax
mov qword [r11 - 0x38], r13
xor ebp, ebp
mov r13d, 0x2000
mov r14, r8
mov r15, rdx
mov rsi, rcx
test word [rcx + 0x2f8], r13w
je 0x1800043b7
mov qword [r11 - 0x30], rdi
lea rdx, [r11 - 0x68]
mov rdi, qword [rcx + 0x18]
mov ebp, 0x24
add rdi, 0xe8
mov rcx, rdi
movups xmm0, xmmword [rdi]
mov ebx, dword [rdi + 0x58]
movups xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [rdi + 0x10]
movups xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rdi + 0x30]
movups xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [rsp + 0xa0], xmm0
movsd xmm0, qword [rdi + 0x50]
movsd qword [rsp + 0x50], xmm0
call fcn.180029490
movups xmm0, xmmword [rsp + 0x60]
lea rdx, [rsp + 0x180]
movups xmm1, xmmword [rsp + 0x70]
movups xmmword [rdi], xmm0
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rdi + 0x10], xmm1
movups xmm1, xmmword [rsp + 0x90]
movups xmmword [rdi + 0x20], xmm0
movups xmm0, xmmword [rsp + 0xa0]
movups xmmword [rdi + 0x30], xmm1
movups xmmword [rdi + 0x40], xmm0
movsd xmm0, qword [rsp + 0x50]
movsd qword [rdi + 0x50], xmm0
mov dword [rdi + 0x58], ebx
mov rcx, qword [rsi + 0x18]
add rcx, 0x88
call fcn.1800209e0
movzx eax, byte [rsi + 0x21e]
cmp al, 3
jne 0x18000421d
cmp byte [rsi + 0x21f], al
jb 0x18000430b
jmp 0x180004232
cmp al, 0xfe
jne 0x18000430b
cmp byte [rsi + 0x21f], 0xfd
ja 0x18000430b
movzx eax, byte [rsi + 0x22c]
cmp al, 4
jbe 0x180004245
cmp al, 8
jne 0x18000430b
mov rdi, qword [rsi + 0x18]
lea rdx, [rsp + 0x170]
add rdi, 0x144
mov rcx, rdi
movups xmm0, xmmword [rdi]
mov ebx, dword [rdi + 0x68]
movups xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rdi + 0x10]
movups xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rdi + 0x30]
movups xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [rdi + 0x40]
movups xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [rdi + 0x50]
movups xmmword [rsp + 0xb0], xmm0
movsd xmm0, qword [rdi + 0x60]
movsd qword [rsp + 0x50], xmm0
call fcn.18002d200
mov ebp, eax
movups xmm0, xmmword [rsp + 0xa0]
movups xmm1, xmmword [rsp + 0x90]
movups xmmword [rdi], xmm0
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rdi + 0x10], xmm1
movups xmm1, xmmword [rsp + 0x70]
movups xmmword [rdi + 0x20], xmm0
movups xmm0, xmmword [rsp + 0x60]
movups xmmword [rdi + 0x30], xmm1
movups xmm1, xmmword [rsp + 0xb0]
movups xmmword [rdi + 0x40], xmm0
movsd xmm0, qword [rsp + 0x50]
movups xmmword [rdi + 0x50], xmm1
movsd qword [rdi + 0x60], xmm0
mov dword [rdi + 0x68], ebx
test eax, eax
jne 0x1800043af
lea ebp, [rax + 0x20]
mov r8d, 4
lea rdx, [0x180048c4c]
mov rcx, r14
call fcn.180034150
test eax, eax
lea rdx, str.client_finished
movzx eax, byte [rsi + 0x21e]
lea rcx, str.server_finished
cmovne rdx, rcx
cmp al, 3
jne 0x18000434e
cmp byte [rsi + 0x21f], al
jb 0x180004362
mov ecx, 1
jmp 0x180004364
cmp al, 0xfe
jne 0x180004362
cmp byte [rsi + 0x21f], 0xfd
ja 0x180004362
mov ecx, 1
jmp 0x180004364
xor ecx, ecx
movzx eax, byte [rsi + 0x22c]
mov r8, qword [rsi + 0x10]
mov dword [rsp + 0x48], eax
add r8, 0x3b9
mov dword [rsp + 0x40], ecx
lea rax, [rsp + 0x170]
mov dword [rsp + 0x38], ebp
mov rcx, r15
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], send
mov qword [rsp + 0x20], rdx
mov edx, recv
lea r9d, [rdx + 0x24]
call fcn.180011c50
mov ebp, eax
mov rdi, qword [rsp + 0x1a8]
test word [rsi + 0x2f8], r13w
mov r13, qword [rsp + 0x1a0]
jne 0x180004620
mov r8, r14
mov rdx, r15
mov rcx, rsi
call fcn.180003d70
mov rcx, qword [rsi + 0x18]
mov r8d, 4
add rcx, 0x88
mov rdx, r14
movups xmm0, xmmword [rcx]
movups xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rsp + 0xd0], xmm0
movups xmm0, xmmword [rcx + 0x30]
movups xmmword [rsp + 0xe0], xmm0
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rsp + 0xf0], xmm0
movups xmm0, xmmword [rcx + 0x50]
movups xmmword [rsp + 0x100], xmm0
call fcn.18002c200
mov rdx, qword [rsi + 0x10]
mov r8d, 0x30
mov rcx, qword [rsi + 0x18]
add rdx, 0x3b9
add rcx, 0x88
call fcn.18002c200
mov rcx, qword [rsi + 0x18]
lea rdx, str.666666666666666666666666666666666666666666666666key_expansion
add rcx, 0x88
mov r8d, 0x28
call fcn.18002c200
mov rbx, qword [rsi + 0x18]
lea rdx, [rsp + 0x170]
add rbx, 0x88
mov rcx, rbx
movups xmm0, xmmword [rbx]
movups xmmword [rsp + 0xb0], xmm0
movups xmm0, xmmword [rbx + 0x10]
movups xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [rbx + 0x30]
movups xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [rbx + 0x50]
movups xmmword [rsp + 0x60], xmm0
call fcn.18002c470
movups xmm0, xmmword [rsp + 0xb0]
movups xmm1, xmmword [rsp + 0xa0]
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rsp + 0x90]
movups xmmword [rbx + 0x10], xmm1
movups xmm1, xmmword [rsp + 0x80]
movups xmmword [rbx + 0x20], xmm0
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rbx + 0x30], xmm1
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [rbx + 0x40], xmm0
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rbx + 0x50], xmm1
mov rax, qword [rsi + 0x18]
movups xmm1, xmmword [rsp + 0xc0]
movups xmmword [rax + 0x88], xmm0
movups xmm0, xmmword [rsp + 0xd0]
movups xmmword [rax + 0x98], xmm1
movups xmm1, xmmword [rsp + 0xe0]
movups xmmword [rax + 0xa8], xmm0
movups xmm0, xmmword [rsp + 0xf0]
movups xmmword [rax + 0xb8], xmm1
movups xmm1, xmmword [rsp + 0x100]
movups xmmword [rax + 0xc8], xmm0
movups xmmword [rax + 0xd8], xmm1
mov dword [rsp + 0x15c], 0x67452301
mov dword [rsp + 0x160], 0xefcdab89
mov dword [rsp + 0x164], 0x98badcfe
mov dword [rsp + 0x168], 0x10325476
mov dword [rsp + 0x16c], 0xc3d2e1f0
mov qword [rsp + 0x110], 0
mov dword [rsp + 0x118], 0
mov rdx, qword [rsi + 0x10]
lea rcx, [rsp + 0x110]
add rdx, 0x3b9
mov r8d, 0x30
call fcn.18002c200
mov r8d, 0x28
lea rdx, [0x180048c08]
lea rcx, [rsp + 0x110]
call fcn.18002c200
mov r8d, socket
lea rdx, [rsp + 0x170]
lea rcx, [rsp + 0x110]
call fcn.18002c200
lea rdx, [r15 + 0x10]
lea rcx, [rsp + 0x110]
call fcn.18002c470
mov eax, ebp
mov rcx, qword [rsp + 0x198]
xor rcx, rsp
call fcn.18002d8d0
add rsp, 0x1b0
pop r15
pop r14
pop rsi
pop rbp
pop rbx
ret