Function at 0x1400a9750
Capabilities:
Hash data using sha1

Disassembly:
mov rax, rsp
mov byte [rax + 0x20], r9b
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x950
mov qword [rsp + 0xb0], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov r14, r8
mov r13, rdx
mov r15, rcx
test r9b, r9b
jne 0x1400a979a
call fcn.1400a8eb0
test al, al
je 0x1400a9db4
call fcn.1400a1bc0
mov rdi, rax
xor esi, esi
cmp qword [rax + 0x10], rsi
jne 0x1400a97cd
lea ecx, [rsi + 0x10]
call fcn.1400b278c
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1400a97c6
mov rcx, rax
call 0x1400a5fb0
jmp 0x1400a97c9
mov rax, rsi
mov qword [rdi + 0x10], rax
mov rbx, qword [rdi + 0x10]
mov qword [rsp + 0x20], reloc.WS2_32.dll_recv
mov ecx, dword [rbx]
sub ecx, dword [rbx + 4]
mov qword [rsp + 0x30], rcx
lea rax, [rsp + 0x20]
lea rdx, [rsp + 0x30]
cmp rcx, 0x10
cmovbe rax, rdx
mov rbp, qword [rax]
mov rdi, rsi
or r12d, 0xffffffff
test rbp, rbp
je 0x1400a9854
nop word [rax + rax]
mov edx, dword [rbx + 4]
add rdx, rdi
shl rdx, 2
mov rcx, qword [rbx + 8]
mov rax, qword [rcx + 0x10]
sub rax, 4
cmp rdx, rax
ja 0x1400a9845
mov r9d, 4
lea r8, [rsp + 0x20]
call fcn.1400a4440
test al, al
je 0x1400a9845
mov eax, dword [rsp + 0x20]
jmp 0x1400a9848
mov eax, r12d
mov dword [rsp + rdi*4 + 0x40], eax
inc rdi
cmp rdi, rbp
jb 0x1400a9810
mov qword [rsp + 0x20], 0x40
lea rdx, [rbp*4]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0xd0]
lea rcx, [rsp + 0x40]
call fcn.1400a4790
mov rdx, qword [rsp + 0x20]
mov byte [rsp + rdx + 0xd0], 0
mov dword [rsp + 0x94], esi
mov dword [rsp + 0x90], esi
mov rdi, rsi
mov qword [rsp + 0x48], rsi
mov dword [rsp + 0x98], 0x67452301
mov dword [rsp + 0x9c], 0xefcdab89
mov dword [rsp + 0xa0], 0x98badcfe
mov dword [rsp + 0xa4], 0x10325476
mov dword [rsp + 0xa8], 0xc3d2e1f0
mov byte [rsp + 0x40], dil
mov rax, qword [r13 + 0x10]
sub rax, 4
cmp rax, 0x10
jb 0x1400a990a
mov r9d, 4
lea r8, [rsp + 0x20]
lea edx, [r9 + 0xc]
mov rcx, r13
call fcn.1400a4440
test al, al
je 0x1400a990a
mov ebx, dword [rsp + 0x20]
jmp 0x1400a990d
mov ebx, r12d
mov rax, qword [r13 + 0x10]
sub rax, 4
cmp rax, 0xc
jb 0x1400a993b
mov r9d, 4
lea r8, [rsp + 0x20]
lea edx, [r9 + 8]
mov rcx, r13
call fcn.1400a4440
test al, al
je 0x1400a993b
mov r12d, dword [rsp + 0x20]
mov ebp, ebx
test ebx, ebx
je 0x1400a99be
mov ebx, r12d
mov rax, qword [r13 + 0x10]
dec rax
cmp rbx, rax
ja 0x1400a9971
mov r9d, 1
lea r8, [rsp + 0x28]
mov rdx, rbx
mov rcx, r13
call fcn.1400a4440
test al, al
je 0x1400a9971
movzx eax, byte [rsp + 0x28]
jmp 0x1400a9973
mov al, 0xff
mov byte [rsp + rdi + 0x50], al
mov rdi, qword [rsp + 0x48]
inc rdi
mov qword [rsp + 0x48], rdi
add dword [rsp + 0x94], 8
jne 0x1400a9995
inc dword [rsp + 0x90]
cmp rdi, 0x40
jne 0x1400a99aa
lea rcx, [rsp + 0x40]
call fcn.1400a4b60
mov rdi, qword [rsp + 0x48]
inc rbx
sub rbp, 1
jne 0x1400a9944
cmp byte [rsp + 0x40], bpl
jne 0x1400a9a82
mov byte [rsp + rdi + 0x50], 0x80
mov rax, qword [rsp + 0x48]
inc rax
mov qword [rsp + 0x48], rax
cmp rax, 0x38
jbe 0x1400a9a00
cmp rax, 0x40
jae 0x1400a99f1
lea rcx, [rsp + rax + 0x50]
mov r8d, 0x40
sub r8, rax
xor edx, edx
call fcn.1400b8660
lea rcx, [rsp + 0x40]
call fcn.1400a4b60
mov rax, qword [rsp + 0x48]
cmp rax, 0x38
jae 0x1400a9a1b
lea rcx, [rsp + rax + 0x50]
mov r8d, 0x38
sub r8, rax
xor edx, edx
call fcn.1400b8660
mov eax, dword [rsp + 0x90]
shr eax, 0x10
rol ax, 8
movzx edx, ax
movzx eax, word [rsp + 0x90]
rol ax, 8
movzx ecx, ax
shl ecx, 0x10
or edx, ecx
mov dword [rsp + 0x88], edx
mov eax, dword [rsp + 0x94]
shr eax, 0x10
rol ax, 8
movzx edx, ax
movzx eax, word [rsp + 0x94]
rol ax, 8
movzx ecx, ax
shl ecx, 0x10
or edx, ecx
mov dword [rsp + 0x8c], edx
lea rcx, [rsp + 0x40]
call fcn.1400a4b60
mov byte [rsp + 0x40], 1
mov rdi, rsi
nop word [rax + rax]
mov edx, dword [rsp + rdi + 0x98]
mov eax, edx
shr eax, 0x10
rol ax, 8
movzx ecx, ax
rol dx, 8
movzx eax, dx
shl eax, 0x10
or ecx, eax
mov dword [rsp + rdi + 0xb8], ecx
add rdi, 4
cmp rdi, 0x14
jb 0x1400a9a90
mov qword [rsp + 0x20], 0x40
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x110]
mov edx, socket
lea rcx, [rsp + 0xb8]
call fcn.1400a4790
mov rdx, qword [rsp + 0x20]
mov byte [rsp + rdx + 0x110], 0
lea rax, [0x1400c4a88]
lea rcx, [0x1400c4aa0]
movzx r13d, byte [rsp + 0x998]
test r13b, r13b
cmovne rcx, rax
mov rax, rsi
cmp byte [r15 + 8], al
je 0x1400a9b2b
nop dword [rax]
inc rax
cmp byte [r15 + rax + 8], 0
jne 0x1400a9b20
movzx edx, byte [rcx]
test dl, dl
je 0x1400a9b4b
cmp rax, 0x800
jae 0x1400a9b4b
mov byte [r15 + rax + 8], dl
inc rax
inc rcx
mov dl, byte [rcx]
test dl, dl
jne 0x1400a9b32
mov byte [rax + r15 + 8], 0
mov r8b, 1
mov rdx, r14
mov rcx, r15
call fcn.1400a9560
lea rdx, [0x1400c4ab8]
mov rcx, rsi
cmp byte [r15 + 8], cl
je 0x1400a9b80
nop
inc rcx
cmp byte [r15 + rcx + 8], 0
jne 0x1400a9b70
nop dword [rax + rax]
cmp rcx, 0x800
jae 0x1400a9b9c
movzx eax, byte [rdx]
mov byte [r15 + rcx + 8], al
inc rcx
inc rdx
cmp byte [rdx], 0
jne 0x1400a9b80
mov byte [rcx + r15 + 8], 0
lea r12, [rsp + 0xd0]
mov rdi, rsi
cmp byte [r15 + 8], dil
je 0x1400a9bbe
inc rdi
cmp byte [r15 + rdi + 8], 0
jne 0x1400a9bb3
lea r14, [0x1400c4a70]
cmp byte [rsp + 0xd0], 0
je 0x1400a9c59
cmp rdi, 0x7fc
jae 0x1400a9c59
movzx ebp, byte [r12]
mov ecx, ebp
call fcn.1400b2f98
test eax, eax
jne 0x1400a9c43
cmp bpl, 0x2d
je 0x1400a9c43
cmp bpl, 0x5f
je 0x1400a9c43
cmp bpl, 0x2e
je 0x1400a9c43
cmp bpl, 0x7e
je 0x1400a9c43
cmp bpl, 0x20
jne 0x1400a9c15
mov byte [r15 + rdi + 8], 0x2b
inc rdi
jmp 0x1400a9c4b
mov byte [r15 + rdi + 8], 0x25
movzx ecx, bpl
mov rax, rcx
shr rax, 4
movzx eax, byte [rax + r14]
mov byte [r15 + rdi + 9], al
and ecx, 0xf
movzx eax, byte [rcx + r14]
mov byte [r15 + rdi + 0xa], al
add rdi, 3
jmp 0x1400a9c4b
mov byte [r15 + rdi + 8], bpl
inc rdi
inc r12
cmp byte [r12], 0
jne 0x1400a9bd3
mov byte [rdi + r15 + 8], 0
lea rdx, [0x1400c4ac0]
mov rcx, rsi
cmp byte [r15 + 8], cl
je 0x1400a9c80
nop
inc rcx
cmp byte [rcx + r15 + 8], 0
jne 0x1400a9c70
nop dword [rax + rax]
cmp rcx, 0x800
jae 0x1400a9c9c
movzx eax, byte [rdx]
mov byte [rcx + r15 + 8], al
inc rcx
inc rdx
cmp byte [rdx], 0
jne 0x1400a9c80
mov byte [rcx + r15 + 8], 0
lea rbp, [rsp + 0x110]
cmp byte [r15 + 8], 0
je 0x1400a9cbc
inc rsi
cmp byte [rsi + r15 + 8], 0
jne 0x1400a9cb1
cmp byte [rsp + 0x110], 0
je 0x1400a9d50
nop word [rax + rax]
cmp rsi, 0x7fc
jae 0x1400a9d50
movzx edi, byte [rbp]
mov ecx, edi
call fcn.1400b2f98
test eax, eax
jne 0x1400a9d3f
cmp dil, 0x2d
je 0x1400a9d3f
cmp dil, 0x5f
je 0x1400a9d3f
cmp dil, 0x2e
je 0x1400a9d3f
cmp dil, 0x7e
je 0x1400a9d3f
cmp dil, 0x20
jne 0x1400a9d11
mov byte [rsi + r15 + 8], 0x2b
inc rsi
jmp 0x1400a9d47
mov byte [rsi + r15 + 8], 0x25
movzx ecx, dil
mov rax, rcx
shr rax, 4
movzx eax, byte [rax + r14]
mov byte [rsi + r15 + 9], al
and ecx, 0xf
movzx eax, byte [rcx + r14]
mov byte [rsi + r15 + 0xa], al
add rsi, 3
jmp 0x1400a9d47
mov byte [rsi + r15 + 8], dil
inc rsi
inc rbp
cmp byte [rbp], 0
jne 0x1400a9cd0
mov byte [rsi + r15 + 8], 0
test r13b, r13b
je 0x1400a9db2
lea r8, [r15 + 8]
mov edx, 0x800
lea rcx, [rsp + 0x150]
call fcn.1400b3268
mov qword [rsp + 0x20], 0x800
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x150]
repne scasb al, byte [rdi]
not rcx
lea rdx, [rcx - 1]
lea r9, [rsp + 0x20]
lea r8, [r15 + 8]
lea rcx, [rsp + 0x150]
call fcn.1400a4790
mov rdx, qword [rsp + 0x20]
mov byte [rdx + r15 + 8], 0
mov al, 1
lea r11, [rsp + 0x950]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret