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

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x48
mov rsi, qword [rcx + 0x10]
mov r15, r9
mov qword [rsp + 0x40], r13
mov r14, r8
mov rbx, rcx
mov eax, dword [rsi + 0x3c]
mov rdi, qword [rsi + 0x30]
mov dword [rsp + 0x30], eax
mov edx, dword [rdi + 0x78]
mov dword [rsp + 0x80], edx
lea eax, [rdx + 1]
mov dword [rdi + 0x78], eax
lea eax, [rdx - 1]
test edx, eax
jne 0x1400a79f1
mov rcx, qword [rdi]
lea eax, [rdx*2 + 1]
mov rdx, qword [rdi + 0x80]
movsxd r8, eax
shl r8, 2
call fcn.140045bd0
mov edx, dword [rsp + 0x80]
mov qword [rdi + 0x80], rax
mov rcx, qword [rdi + 0x80]
test rcx, rcx
je 0x1400a7a07
movsxd rax, edx
mov dword [rcx + rax*4], 0xffffffff
mov r13d, dword [rsp + 0xa8]
mov r12d, edx
mov qword [rsp + 0x90], rbp
not r12d
test r13d, r13d
je 0x1400a7b04
xor r9d, r9d
mov dword [rsp + 0x20], 0
mov r8d, r13d
mov rcx, rsi
lea edx, [r9 + 0x2e]
call fcn.140065c50
mov rbp, qword [rsp + 0xb0]
mov dword [rsp + 0xa8], eax
test rbp, rbp
je 0x1400a7a57
inc dword [rbp]
mov ecx, dword [r14 + 0xc]
lea r9d, [r13 + 1]
mov r8d, dword [r14 + 8]
mov edx, 0x2a
mov dword [rsp + 0x20], ecx
mov rcx, rsi
call fcn.140065c50
mov r9d, 0xfffffffa
mov r8, rbp
mov edx, eax
mov rcx, rsi
mov edi, eax
call fcn.140066230
lea r8d, [rdi + 2]
mov r9d, r12d
mov edx, 0x2b
mov dword [rsp + 0x20], r8d
mov rcx, rsi
call fcn.140065c50
mov eax, dword [rsp + 0xa8]
mov edx, dword [rsi + 0x3c]
cmp edx, eax
jbe 0x1400a7abf
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rsi + 0x3c]
mov rax, qword [rsi + 0x30]
lea ecx, [rdx - 1]
lea r9d, [r13 + 1]
mov edx, 0x21
mov dword [rax + 0x64], ecx
mov rcx, rsi
mov eax, dword [r14 + 0xc]
mov r8d, dword [r14 + 8]
dec eax
mov dword [rsp + 0x20], eax
call fcn.140065c50
mov edx, 0x19
mov dword [rsp + 0x20], 0
mov r9d, r13d
mov rcx, rsi
lea r8d, [rdx - 0x18]
call fcn.140065c50
mov rax, qword [rbx]
mov r13, qword [rsp + 0x40]
cmp byte [rax + 0x50], 0
je 0x1400a7b19
xor eax, eax
jmp 0x1400a7eca
mov r8d, r12d
mov rcx, rsi
mov r12, qword [rsp + 0x88]
mov edx, dword [r12 + 0x10]
call fcn.1400a4030
movzx ecx, byte [r15]
sub ecx, 0xa
je 0x1400a7e20
sub ecx, 1
je 0x1400a7d35
sub ecx, 1
je 0x1400a7c1e
sub ecx, 1
je 0x1400a7b88
cmp ecx, 1
je 0x1400a7c1e
mov r9d, dword [r14 + 0xc]
mov edx, 0x23
mov r8d, dword [r14 + 8]
mov rcx, rsi
mov dword [rsp + 0x20], 0
call fcn.140065c50
mov r8d, dword [r14 + 0xc]
mov edx, dword [r14 + 8]
jmp 0x1400a7e49
mov r9d, dword [r15 + 8]
test r9d, r9d
jne 0x1400a7bd4
mov ecx, dword [r14 + 0xc]
mov edx, dword [rbx + 0x44]
mov r9d, dword [rbx + 0x48]
cmp ecx, edx
jg 0x1400a7bba
lea eax, [r9 + rcx]
sub edx, ecx
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x44], edx
mov dword [r15 + 8], r9d
mov ebp, dword [r14 + 0xc]
mov dword [r15 + 0xc], ebp
jmp 0x1400a7bd8
mov eax, dword [rbx + 0x54]
lea r9d, [rax + 1]
add eax, ecx
mov dword [rbx + 0x54], eax
mov dword [r15 + 8], r9d
mov ebp, dword [r14 + 0xc]
mov dword [r15 + 0xc], ebp
jmp 0x1400a7bd8
mov ebp, dword [r15 + 0xc]
mov edi, dword [r14 + 8]
mov edx, 0x20
mov rcx, qword [rbx + 0x10]
mov r8d, edi
mov dword [rsp + 0x20], ebp
call fcn.140065c50
mov r8d, ebp
mov edx, edi
mov rcx, rbx
call fcn.14007d720
mov r8d, dword [r15 + 4]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x20], 0
lea edx, [r9 + 0x16]
call fcn.140065c50
jmp 0x1400a7e51
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x1400a7c34
inc dword [rbx + 0x54]
mov ebp, dword [rbx + 0x54]
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x1400a7c58
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov ebp, dword [rbx + rax*4 + 0x24]
test al, al
jne 0x1400a7c4c
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x1400a7c58
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0x24]
mov r9d, dword [r14 + 0xc]
mov edx, 0x31
mov r8d, dword [r14 + 8]
mov rcx, rsi
mov dword [rsp + 0x20], ebp
call fcn.140065c50
mov r8d, dword [r15 + 4]
mov r9d, edi
mov edx, 0x4a
mov dword [rsp + 0x20], 0
mov rcx, rsi
call fcn.140065c50
mov r8d, dword [r15 + 4]
mov r9d, ebp
mov edx, 0x4b
mov dword [rsp + 0x20], edi
mov rcx, rsi
call fcn.140065c50
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x1400a7cbb
movsxd rax, dword [rsi + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 8
test edi, edi
je 0x1400a7cee
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x1400a7cee
xor ecx, ecx
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], edi
je 0x1400a7cea
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x1400a7cd1
mov dword [rbx + rdx*4 + 0x24], edi
inc byte [rbx + 0x1f]
jmp 0x1400a7cee
mov byte [rax + 6], 1
test ebp, ebp
je 0x1400a7e51
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x1400a7e51
xor ecx, ecx
lea rax, [rbx + 0x88]
nop dword [rax]
cmp dword [rax + 0xc], ebp
je 0x1400a7d2c
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x1400a7d10
mov dword [rbx + rdx*4 + 0x24], ebp
inc byte [rbx + 0x1f]
jmp 0x1400a7e51
mov byte [rax + 6], 1
jmp 0x1400a7e51
mov rax, qword [r12]
movzx edi, byte [r15 + 1]
mov rcx, qword [rax + 8]
mov rcx, qword [rcx]
call fcn.140079b20
test al, al
je 0x1400a7d65
test dil, dil
je 0x1400a7d6e
cmp al, 0x43
jge 0x1400a7d61
cmp dil, 0x43
jge 0x1400a7d61
mov al, 0x41
jmp 0x1400a7d71
mov al, 0x43
jmp 0x1400a7d71
test dil, dil
jne 0x1400a7d6e
mov al, 0x41
jmp 0x1400a7d71
add al, dil
mov byte [r15 + 1], al
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x1400a7d85
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x1400a7d91
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0x24]
mov r8d, dword [r14 + 8]
mov r9d, 1
mov rcx, rsi
mov dword [rsp + 0x20], edi
lea edx, [r9 + 0x30]
call fcn.140065c50
mov r9d, 1
lea r8, [r15 + 1]
mov edx, eax
mov rcx, rsi
call fcn.140066230
mov edx, dword [r14 + 8]
mov r8d, 1
mov rcx, rbx
call fcn.14007d720
mov r8d, dword [r15 + 4]
mov r9d, edi
mov edx, WSAGetLastError
mov dword [rsp + 0x20], 0
mov rcx, rsi
call fcn.140065c50
test edi, edi
je 0x1400a7e51
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x1400a7e51
xor ecx, ecx
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], edi
je 0x1400a7d2c
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x1400a7e03
mov dword [rbx + rdx*4 + 0x24], edi
inc byte [rbx + 0x1f]
jmp 0x1400a7e51
mov edi, dword [r14 + 8]
mov edx, 0x20
mov r9d, dword [r15 + 4]
mov r8d, edi
mov rcx, qword [rbx + 0x10]
mov dword [rsp + 0x20], 1
call fcn.140065c50
mov r8d, 1
mov edx, edi
mov rcx, rbx
call fcn.14007d720
mov r8d, dword [r12 + 0xc]
test r8d, r8d
je 0x1400a7e78
mov r9d, dword [rsp + 0xb8]
mov edx, 0x8b
mov rcx, rsi
mov dword [rsp + 0x20], 0xffffffff
call fcn.140065c50
movsxd rdx, dword [rsp + 0x80]
mov r9, qword [rsi + 0x30]
test edx, edx
js 0x1400a7e9e
mov rcx, qword [r9 + 0x80]
test rcx, rcx
je 0x1400a7e9e
mov r8, rdx
mov edx, dword [rsi + 0x3c]
mov dword [rcx + r8*4], edx
mov edx, dword [rsi + 0x3c]
mov rcx, rsi
mov r8d, dword [rsp + 0xa0]
dec edx
mov dword [r9 + 0x64], edx
xor r9d, r9d
mov dword [rsp + 0x20], 0
lea edx, [r9 + 0x12]
call fcn.140065c50
mov eax, dword [rsp + 0x30]
mov rbp, qword [rsp + 0x90]
add rsp, 0x48
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret