Function at 0x140172228
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r14, qword [rsp + 0x88]
lea rbp, [rdx + rdx]
xor esi, esi
mov rdi, rbp
shl rdi, 6
mov ebx, r9d
add rdi, r14
mov r12d, r8d
mov r15, rdx
mov r13, rcx
mov r11d, esi
test rbp, rbp
je 0x140172359
mov r8d, esi
mov ecx, r11d
shl r8, 6
shl ecx, 6
add r8, r14
add rcx, r13
mov r9, rdi
sub r9, rcx
mov r10d, reloc.WS2_32.dll_recv
lea rdx, [rcx + 2]
movzx eax, byte [rdx]
movzx ecx, byte [rdx + 1]
lea rdx, [rdx + 4]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx - 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdx - 6]
shl ecx, 8
add ecx, eax
mov dword [r9 + rdx - 6], ecx
sub r10, 1
jne 0x140172297
mov eax, dword [rdi]
inc r11d
mov ecx, dword [rdi + 0x14]
shl rcx, 0x20
or rcx, rax
mov qword [r8], rcx
mov eax, dword [rdi + 0x28]
mov ecx, dword [rdi + 0x3c]
shl rcx, 0x20
or rcx, rax
mov qword [r8 + 8], rcx
mov eax, dword [rdi + 0x10]
mov ecx, dword [rdi + 0x24]
shl rcx, 0x20
or rcx, rax
mov qword [r8 + 0x10], rcx
mov eax, dword [rdi + 0x38]
mov ecx, dword [rdi + 0xc]
shl rcx, 0x20
or rcx, rax
mov qword [r8 + 0x18], rcx
mov eax, dword [rdi + 0x20]
mov ecx, dword [rdi + 0x34]
shl rcx, 0x20
or rcx, rax
mov qword [r8 + 0x20], rcx
mov eax, dword [rdi + 8]
mov ecx, dword [rdi + 0x1c]
shl rcx, 0x20
or rcx, rax
mov qword [r8 + 0x28], rcx
mov eax, dword [rdi + 0x30]
mov ecx, dword [rdi + 4]
shl rcx, 0x20
or rcx, rax
mov qword [r8 + 0x30], rcx
mov ecx, dword [rdi + 0x2c]
mov eax, dword [rdi + 0x18]
shl rcx, 0x20
or rcx, rax
mov qword [r8 + 0x38], rcx
mov r8d, r11d
cmp r8, rbp
jb 0x140172277
dec r12d
mov rax, r15
shl rax, 7
mov eax, dword [rax + r14 - 0x40]
and eax, r12d
cmp ebx, 2
jbe 0x1401723ca
mov r9, qword [rsp + 0x90]
mov r8, r15
mov edx, eax
mov rcx, r14
imul rdx, rbp
shl rdx, 6
add rdx, qword [rsp + 0x80]
call fcn.14016e31c
mov r9, qword [rsp + 0x90]
mov r8, r15
mov edx, eax
mov rcx, r14
mov eax, r12d
and rdx, rax
imul rdx, rbp
shl rdx, 6
add rdx, qword [rsp + 0x80]
call fcn.14016e31c
and eax, r12d
add ebx, 0xfffffffe
jne 0x140172370
jmp 0x140172422
mov rbx, qword [rsp + 0x90]
mov r9, r15
mov edx, eax
mov r8, rdi
imul rdx, rbp
mov rcx, r14
mov qword [rsp + 0x20], rbx
shl rdx, 6
add rdx, qword [rsp + 0x80]
call fcn.14016b2b8
mov edx, eax
mov r9, r15
mov eax, r12d
mov r8, r14
and rdx, rax
mov qword [rsp + 0x20], rbx
imul rdx, rbp
mov rcx, rdi
shl rdx, 6
add rdx, qword [rsp + 0x80]
call fcn.14016b2b8
test rbp, rbp
je 0x140172508
mov r8, rsi
mov edx, esi
shl r8, 6
shl edx, 6
lea r9, [rdi + 2]
add rdx, r13
add r8, r14
sub r8, rdi
mov r10d, reloc.WS2_32.dll_recv
mov ecx, dword [r8 + r9 - 2]
mov eax, ecx
shr eax, 8
mov byte [r9 - 1], al
mov eax, ecx
mov byte [r9 - 2], cl
shr eax, 0x10
shr ecx, 0x18
mov byte [r9], al
mov byte [r9 + 1], cl
lea r9, [r9 + 4]
sub r10, 1
jne 0x14017244a
mov eax, dword [rdi]
inc esi
mov dword [rdx], eax
mov rax, qword [rdi + 0x30]
shr rax, 0x20
mov dword [rdx + 4], eax
mov eax, dword [rdi + 0x28]
mov dword [rdx + 8], eax
mov rax, qword [rdi + 0x18]
shr rax, 0x20
mov dword [rdx + 0xc], eax
mov eax, dword [rdi + 0x10]
mov dword [rdx + 0x10], eax
mov rax, qword [rdi]
shr rax, 0x20
mov dword [rdx + 0x14], eax
mov eax, dword [rdi + 0x38]
mov dword [rdx + 0x18], eax
mov rax, qword [rdi + 0x28]
shr rax, 0x20
mov dword [rdx + 0x1c], eax
mov eax, dword [rdi + 0x20]
mov dword [rdx + 0x20], eax
mov rax, qword [rdi + 0x10]
shr rax, 0x20
mov dword [rdx + 0x24], eax
mov eax, dword [rdi + 8]
mov dword [rdx + 0x28], eax
mov rax, qword [rdi + 0x38]
shr rax, 0x20
mov dword [rdx + 0x2c], eax
mov eax, dword [rdi + 0x30]
mov dword [rdx + 0x30], eax
mov rax, qword [rdi + 0x20]
shr rax, 0x20
mov dword [rdx + 0x34], eax
mov eax, dword [rdi + 0x18]
mov dword [rdx + 0x38], eax
mov rax, qword [rdi + 8]
shr rax, 0x20
mov r8d, esi
mov dword [rdx + 0x3c], eax
cmp r8, rbp
jb 0x14017242e
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret