Function at 0x140056310
Capabilities:
Terminate process

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov r12, qword [0x1400f8300]
mov rsi, rcx
mov rbp, rdx
test rcx, rcx
je 0x1400563cc
call sym.failed__pureZasyncfutures_u450
mov r12, qword [0x1400f8300]
mov edi, eax
mov rcx, r12
call dbg.__emutls_get_address
cmp byte [rax], 0
mov rbx, rax
jne 0x14005639c
test dil, dil
jne 0x1400563b0
mov rax, qword [0x1400f7ce0]
mov rcx, qword [rbp + 0x28]
xor esi, esi
call qword [rax]
mov r13, qword [0x1400f84a0]
jmp 0x14005637e
cmp rsi, 0x17
je 0x140056540
add rsi, 1
mov rcx, qword [rbp + rsi*8 + 0x30]
cmp qword [r13], rcx
je 0x140056370
movzx eax, byte [rbp + 0x20]
cmp rax, rsi
je 0x140056370
call sym.closeSocket__pureZasyncdispatch_u6724
cmp byte [rbx], 0
je 0x140056370
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 0x140056420
lea rcx, [rbp + 0x10]
call sym.eqsink___stdZtypedthreads_u179
mov rax, qword [rbp + 0x18]
test rax, rax
jne 0x140056403
jmp 0x1400564e0
mov eax, esi
mov rdx, qword [rbp + 0x18]
movzx eax, ah
mov r14d, eax
mov eax, esi
test ah, ah
jne 0x140056450
mov rax, qword [rdx + 0x28]
mov qword [rbp + 0x18], rax
test rax, rax
je 0x1400564e0
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 0x1400563e0
xor esi, esi
mov byte [rbx], 0
mov rcx, rsi
call sym.eqdestroy___pureZasyncdispatch_u1417
cmp byte [rbx], 0
jne 0x14005639c
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 0x1400564e0
cmp sil, 0x17
ja 0x14005663c
movzx eax, sil
movzx esi, sil
mov r13, qword [0x1400f84a0]
mov rcx, qword [rbp + rsi*8 + 0x30]
mov qword [rbp + 0x108], rcx
cmp rcx, qword [r13]
je 0x140056561
call sym.doConnect__pureZasyncdispatch_u8006
movzx edi, byte [rbx]
mov rsi, rax
test dil, dil
jne 0x140056420
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 0x140056422
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x28]
mov qword [rbp + 0x18], rax
movzx edi, byte [rbx]
jmp 0x140056422
mov rax, qword [0x1400f7ce0]
mov rcx, qword [rbp + 0x28]
lea rsi, [rbp + 0x30]
lea r14, [rbp + 0xf0]
call qword [rax]
mov r13, qword [0x1400f84a0]
jmp 0x140056515
add rsi, 8
cmp rsi, r14
je 0x1400565f8
mov rcx, qword [rsi]
cmp qword [r13], rcx
je 0x140056508
call sym.closeSocket__pureZasyncdispatch_u6724
mov rcx, r12
call dbg.__emutls_get_address
movzx edi, byte [rax]
mov rbx, rax
test dil, dil
je 0x140056508
jmp 0x140056420
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 0x14005678a
cmp rax, qword [r13]
je 0x1400565b0
xor edx, edx
mov rcx, rax
call sym.setBlocking__pureZnativesockets_u692
cmp byte [rbx], 0
jne 0x14005678a
mov rcx, rsi
call sym.register__pureZasyncdispatch_u2222
cmp byte [rbx], 0
jne 0x14005678a
mov qword [rbp + 0x108], rsi
movzx eax, byte [rbx]
test al, al
jne 0x1400567cb
movzx edx, byte [rbp + 0x20]
mov rcx, qword [rbp + 0x108]
call sym.bindToDomain__pureZasyncdispatch_u7989
cmp byte [rbx], 0
jne 0x1400567cb
movzx eax, byte [rbp + 0x20]
cmp al, 0x17
ja 0x140056654
mov rcx, qword [rbp + 0x108]
mov qword [rbp + rax*8 + 0x30], rcx
mov rdx, qword [rbp + 0x18]
jmp 0x14005648c
mov rsi, qword [rbp + 0x10]
test rsi, rsi
je 0x14005666b
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 0x140056420
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 0x140056422
movzx ecx, al
mov edx, 0x17
xor esi, esi
call sym.raiseIndexError2
movzx edi, byte [rbx]
jmp 0x140056422
mov edx, 8
mov ecx, 0x40
call sym.nimNewObj
lea rcx, [rsp + 0x30]
mov rdi, rax
mov rax, qword [0x1400f8160]
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 0x140056841
mov rbx, qword [rbp + 0xf8]
test rbx, rbx
jle 0x1400567e6
mov rcx, rbx
add rcx, 1
jo 0x14005684e
test rcx, rcx
js 0x1400567d5
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 0x14005684e
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 0x140056627
jmp 0x140056422
mov rax, qword [0x1400f7ce0]
mov byte [rbx], 0
lea rsi, [rbp + 0x30]
lea r12, [rbp + 0xf0]
mov rcx, qword [rbp + 0x28]
call qword [rax]
jmp 0x1400567b0
add rsi, 8
cmp r12, rsi
je 0x1400567ee
mov rcx, qword [rsi]
cmp qword [r13], rcx
je 0x1400567a7
call sym.closeSocket__pureZasyncdispatch_u6724
movzx edi, byte [rbx]
test dil, dil
je 0x1400567a7
jmp 0x140056420
mov edi, r14d
xor esi, esi
jmp 0x140056422
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
mov rax, r13
jmp 0x140056747
mov rcx, qword [0x1400f82f0]
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, [0x1400ee3b9]
call sym.raiseExceptionEx
movzx eax, byte [rbx]
jmp 0x1400565ba
call sym.raiseOverflow
mov r13, rbx
jmp 0x1400566fa
call sym.raiseOverflow
jmp 0x1400567e6