Function at 0x140076c90
Capabilities:
Terminate process

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov r12, qword [0x140123df0]
mov rsi, rcx
mov rbp, rdx
test rcx, rcx
je 0x140076d4c
call sym.failed__pureZasyncfutures_u450
mov r12, qword [0x140123df0]
mov edi, eax
mov rcx, r12
call dbg.__emutls_get_address
cmp byte [rax], 0
mov rbx, rax
jne 0x140076d1c
test dil, dil
jne 0x140076d30
mov rax, qword [0x1401237c0]
mov rcx, qword [rbp + 0x28]
xor esi, esi
call qword [rax]
mov r13, qword [0x140123f90]
jmp 0x140076cfe
cmp rsi, 0x17
je 0x140076ec0
add rsi, 1
mov rcx, qword [rbp + rsi*8 + 0x30]
cmp qword [r13], rcx
je 0x140076cf0
movzx eax, byte [rbp + 0x20]
cmp rax, rsi
je 0x140076cf0
call sym.closeSocket__pureZasyncdispatch_u6724
cmp byte [rbx], 0
je 0x140076cf0
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rcx, rsi
call sym.readError__pureZasyncdispatch_u8441
movzx edi, byte [rbx]
mov rdx, rax
test dil, dil
jne 0x140076da0
lea rcx, [rbp + 0x10]
call sym.eqsink___stdZtypedthreads_u179
mov rax, qword [rbp + 0x18]
test rax, rax
jne 0x140076d83
jmp 0x140076e60
mov eax, esi
mov rdx, qword [rbp + 0x18]
movzx eax, ah
mov r14d, eax
mov eax, esi
test ah, ah
jne 0x140076dd0
mov rax, qword [rdx + 0x28]
mov qword [rbp + 0x18], rax
test rax, rax
je 0x140076e60
mov ecx, dword [rax + 4]
call sym.toKnownDomain__pureZnativesockets_u83
mov rcx, r12
mov esi, eax
call dbg.__emutls_get_address
movzx edi, byte [rax]
mov rbx, rax
test dil, dil
je 0x140076d60
xor esi, esi
mov byte [rbx], 0
mov rcx, rsi
call sym.eqdestroy___pureZasyncdispatch_u1417
cmp byte [rbx], 0
jne 0x140076d1c
mov byte [rbx], dil
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov byte [rbp + 0x20], sil
test rdx, rdx
je 0x140076e60
cmp sil, 0x17
ja 0x140076fbc
movzx eax, sil
movzx esi, sil
mov r13, qword [0x140123f90]
mov rcx, qword [rbp + rsi*8 + 0x30]
mov qword [rbp + 0x108], rcx
cmp rcx, qword [r13]
je 0x140076ee1
call sym.doConnect__pureZasyncdispatch_u8006
movzx edi, byte [rbx]
mov rsi, rax
test dil, dil
jne 0x140076da0
lea rax, [sym.tryNextAddrInfo__pureZasyncdispatch_u8310]
lea rdx, [rsp + 0x30]
mov rcx, rsi
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rax
call sym.callbackeq___pureZasyncdispatch_u8758
movzx edi, byte [rbx]
test dil, dil
jne 0x140076da2
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x28]
mov qword [rbp + 0x18], rax
movzx edi, byte [rbx]
jmp 0x140076da2
mov rax, qword [0x1401237c0]
mov rcx, qword [rbp + 0x28]
lea rsi, [rbp + 0x30]
lea r14, [rbp + 0xf0]
call qword [rax]
mov r13, qword [0x140123f90]
jmp 0x140076e95
add rsi, 8
cmp rsi, r14
je 0x140076f78
mov rcx, qword [rsi]
cmp qword [r13], rcx
je 0x140076e88
call sym.closeSocket__pureZasyncdispatch_u6724
mov rcx, r12
call dbg.__emutls_get_address
movzx edi, byte [rax]
mov rbx, rax
test dil, dil
je 0x140076e88
jmp 0x140076da0
mov rdx, qword [rbp + 0x108]
mov rcx, qword [rbp + 0xf0]
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp sym.complete__pureZasyncdispatch_u8829
movzx edx, byte [rbp + 0x110]
movzx r8d, byte [rbp + 0x111]
xor r9d, r9d
mov ecx, eax
call sym.createNativeSocket__pureZnativesockets_u230
cmp byte [rbx], 0
mov rsi, rax
jne 0x14007710a
cmp rax, qword [r13]
je 0x140076f30
xor edx, edx
mov rcx, rax
call sym.setBlocking__pureZnativesockets_u692
cmp byte [rbx], 0
jne 0x14007710a
mov rcx, rsi
call sym.register__pureZasyncdispatch_u2222
cmp byte [rbx], 0
jne 0x14007710a
mov qword [rbp + 0x108], rsi
movzx eax, byte [rbx]
test al, al
jne 0x14007714b
movzx edx, byte [rbp + 0x20]
mov rcx, qword [rbp + 0x108]
call sym.bindToDomain__pureZasyncdispatch_u7989
cmp byte [rbx], 0
jne 0x14007714b
movzx eax, byte [rbp + 0x20]
cmp al, 0x17
ja 0x140076fd4
mov rcx, qword [rbp + 0x108]
mov qword [rbp + rax*8 + 0x30], rcx
mov rdx, qword [rbp + 0x18]
jmp 0x140076e0c
mov rsi, qword [rbp + 0x10]
test rsi, rsi
je 0x140076feb
mov rcx, qword [rbp + 0xf0]
mov rdx, rsi
call sym.fail__pureZasyncdispatch_u8583
mov rcx, r12
call dbg.__emutls_get_address
movzx edi, byte [rax]
mov rbx, rax
test dil, dil
jne 0x140076da0
xor ecx, ecx
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp sym.eqdestroy___pureZasyncdispatch_u1417
movzx ecx, sil
mov edx, 0x17
xor esi, esi
call sym.raiseIndexError2
movzx edi, byte [rbx]
jmp 0x140076da2
movzx ecx, al
mov edx, 0x17
xor esi, esi
call sym.raiseIndexError2
movzx edi, byte [rbx]
jmp 0x140076da2
mov edx, 8
mov ecx, 0x40
call sym.nimNewObj
lea rcx, [rsp + 0x30]
mov rdi, rax
mov rax, qword [0x140123c50]
mov qword [rdi], rax
lea rax, str.IOError
mov qword [rdi + 0x10], rax
mov rax, qword [rbp + 0xf8]
lea rdx, [rax + 0x1a]
call sym.rawNewString
mov rbx, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
movabs rdx, 0x74276e646c756f43
movabs rcx, 0x65766c6f73657220
lea rax, [rbx + r14 + 8]
mov r13, rbx
mov qword [rax + 8], rcx
add r13, 0x1a
movabs rcx, 0x203a7373657264
mov qword [rax], rdx
movabs rdx, 0x64612065766c6f73
mov qword [rax + 0xb], rdx
mov qword [rax + 0x13], rcx
jo 0x1400771c1
mov rbx, qword [rbp + 0xf8]
test rbx, rbx
jle 0x140077166
mov rcx, rbx
add rcx, 1
jo 0x1400771ce
test rcx, rcx
js 0x140077155
mov rdx, qword [rbp + 0x100]
lea rax, [r13 + r14 + 8]
mov r8, rcx
mov rcx, rax
add rdx, 8
call sym.memcpy
mov rax, rbx
add rax, r13
jo 0x1400771ce
mov qword [rdi + 0x18], rax
mov rdx, rdi
mov qword [rdi + 0x20], r14
mov qword [rdi + 8], 0
mov rcx, qword [rbp + 0xf0]
call sym.fail__pureZasyncdispatch_u8583
mov rcx, rdi
call sym.eqdestroy___system_u8918
mov rcx, r12
call dbg.__emutls_get_address
movzx edi, byte [rax]
mov rbx, rax
test dil, dil
je 0x140076fa7
jmp 0x140076da2
mov rax, qword [0x1401237c0]
mov byte [rbx], 0
lea rsi, [rbp + 0x30]
lea r12, [rbp + 0xf0]
mov rcx, qword [rbp + 0x28]
call qword [rax]
jmp 0x140077130
add rsi, 8
cmp r12, rsi
je 0x14007716e
mov rcx, qword [rsi]
cmp qword [r13], rcx
je 0x140077127
call sym.closeSocket__pureZasyncdispatch_u6724
movzx edi, byte [rbx]
test dil, dil
je 0x140077127
jmp 0x140076da0
mov edi, r14d
xor esi, esi
jmp 0x140076da2
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
mov rax, r13
jmp 0x1400770c7
mov rcx, qword [0x140123de0]
xor eax, eax
mov qword [rsp + 0x48], rax
call dbg.__emutls_get_address
lea rcx, [rsp + 0x48]
xor r8d, r8d
mov rdx, qword [rax]
call sym.eqcopy___stdZtypedthreads_u171
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x20], 0x750
lea r9, str.asyncdispatch.nim
lea r8, str.tryNextAddrInfo
lea rdx, [0x140119e99]
call sym.raiseExceptionEx
movzx eax, byte [rbx]
jmp 0x140076f3a
call sym.raiseOverflow
mov r13, rbx
jmp 0x14007707a
call sym.raiseOverflow
jmp 0x140077166