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

Disassembly:
mov ecx, dword [0x5c71e0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4b8f61
sub esp, 0x64
mov eax, dword [esp + 0x84]
test eax, eax
je 0x4b880b
nop
lea eax, [0x4d7340]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [0x5c7340]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x4b85f9
mov ebx, dword [esp + 0x68]
jmp 0x4b8604
call sym.runtime.gcWriteBarrier1
mov ebx, dword [esp + 0x68]
mov dword [edi], ebx
mov dword [esp + 0x58], ecx
mov dword [ecx], ebx
mov ebp, dword [esp + 0x7c]
test ebp, ebp
jne 0x4b864a
mov esi, dword [esp + 0x74]
test esi, esi
jne 0x4b8620
xor eax, eax
xor edx, edx
jmp 0x4b8671
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x74]
mov edx, eax
mov eax, ecx
mov ecx, dword [esp + 0x58]
jmp 0x4b8671
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x80]
mov dword [esp], ecx
call eax
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x30], eax
mov dword [esp + 0x50], edx
mov edi, dword [ebx + 0x144]
mov ebp, dword [ebx + 0x140]
cmp edi, 4
jne 0x4b8695
cmp dword [ebp], 0x78696e75
je 0x4b86ea
jmp 0x4b870f
cmp edi, 8
jne 0x4b86ae
cmp dword [ebp], 0x78696e75
jne 0x4b870f
cmp dword [ebp + 4], 0x6d617267
je 0x4b86ea
jmp 0x4b870f
cmp edi, 0xa
jne 0x4b870f
mov dword [esp], ebp
lea eax, [0x4eb617]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xa
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x4b86fb
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x74]
mov ebp, dword [ebx + 0x140]
mov edi, dword [ebx + 0x144]
jmp 0x4b87c0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x74]
mov ebp, dword [ebx + 0x144]
lea edi, [ebp - 1]
cmp ebp, edi
jbe 0x4b8f57
mov edi, dword [ebx + 0x140]
movzx esi, byte [ebp + edi - 1]
xchg esi, eax
cmp al, 0x34
xchg esi, eax
je 0x4b8739
xchg esi, eax
cmp al, 0x36
xchg esi, eax
jne 0x4b8741
mov esi, edi
mov edi, ebp
mov ebp, esi
jmp 0x4b87c0
cmp dword [ebx + 0x134], 2
jne 0x4b8786
mov dword [esp], 0
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
lea eax, [0x511280]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call sym.runtime.concatstring2
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
jmp 0x4b87c0
mov dword [esp], 0
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
lea eax, [0x511284]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call sym.runtime.concatstring2
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x84]
mov esi, dword [ebx]
mov ebx, dword [esp + 0x6c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
lea eax, [0x512390]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x84]
call esi
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4b8f3d
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x4b8819
xor eax, eax
xor ecx, ecx
jmp 0x4b8882
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x134]
mov ebx, dword [esp + 0x78]
mov dword [esp], ebx
mov dword [esp + 4], edx
call eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4b8f23
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
test eax, eax
je 0x4b8882
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x68]
mov ebx, dword [edx + 0x10]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.syscall.Bind
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4b8eb5
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x4b8948
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x134]
mov ebx, dword [esp + 0x80]
mov dword [esp], ebx
mov dword [esp + 4], edx
call eax
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4b892e
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x68]
mov dword [esp], edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
call sym.net._netFD_.connect
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4b8914
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x68]
mov byte [edx + 0x13c], 1
jmp 0x4b8968
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x64
ret
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x64
ret
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call sym.net._netFD_.init
mov eax, dword [esp + 4]
test eax, eax
jne 0x4b8e9b
mov edx, dword [esp + 0x68]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], ecx
mov ebx, dword [edx + 0x10]
mov dword [esp], ebx
call sym.syscall.Getsockname
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4b8b45
mov ebx, dword [esp + 0x68]
mov ebp, dword [ebx + 0x134]
cmp ebp, 1
jne 0x4b89cb
mov ebp, dword [ebx + 0x138]
cmp ebp, 1
jne 0x4b89b1
lea ebp, [0x4f5364]
jmp 0x4b8a08
cmp ebp, 2
jne 0x4b89be
lea ebp, [0x4f5368]
jmp 0x4b8a08
cmp ebp, 5
jne 0x4b8a02
lea ebp, [0x4f536c]
jmp 0x4b8a08
cmp ebp, 2
je 0x4b89d5
cmp ebp, 0x17
jne 0x4b8a02
mov ebp, dword [ebx + 0x138]
cmp ebp, 1
jne 0x4b89e8
lea ebp, [0x4f535c]
jmp 0x4b8a08
cmp ebp, 2
jne 0x4b89f5
lea ebp, [0x4f5360]
jmp 0x4b8a08
cmp ebp, 3
jne 0x4b8a02
lea ebp, [0x4f5358]
jmp 0x4b8a08
lea ebp, [0x4f5318]
mov ebx, dword [ebp]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov edx, ebp
call ebx
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x134]
cmp ecx, 1
jne 0x4b8a52
mov ecx, dword [eax + 0x138]
cmp ecx, 1
jne 0x4b8a38
lea ecx, [0x4f5364]
jmp 0x4b8a8f
cmp ecx, 2
jne 0x4b8a45
lea ecx, [0x4f5368]
jmp 0x4b8a8f
cmp ecx, 5
jne 0x4b8a89
lea ecx, [0x4f536c]
jmp 0x4b8a8f
cmp ecx, 2
je 0x4b8a5c
cmp ecx, 0x17
jne 0x4b8a89
mov ecx, dword [eax + 0x138]
cmp ecx, 1
jne 0x4b8a6f
lea ecx, [0x4f535c]
jmp 0x4b8a8f
cmp ecx, 2
jne 0x4b8a7c
lea ecx, [0x4f5360]
jmp 0x4b8a8f
cmp ecx, 3
jne 0x4b8a89
lea ecx, [0x4f5358]
jmp 0x4b8a8f
lea ecx, [0x4f531c]
mov eax, dword [ecx]
mov ebx, dword [esp + 8]
mov dword [esp + 0x60], ebx
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x48], ebp
mov esi, dword [esp + 0x34]
mov dword [esp], esi
mov esi, dword [esp + 0x54]
mov dword [esp + 4], esi
mov edx, ecx
call eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x68]
mov dword [ebp + 0x148], ebx
mov ebx, dword [0x5c7340]
test ebx, ebx
jne 0x4b8ada
mov edx, dword [esp + 0x48]
jmp 0x4b8aee
call sym.runtime.gcWriteBarrier2
mov edx, dword [esp + 0x48]
mov dword [edi], edx
mov ebx, dword [ebp + 0x14c]
mov dword [edi + 4], ebx
mov dword [ebp + 0x14c], edx
mov dword [ebp + 0x150], ecx
mov ecx, dword [0x5c7340]
test ecx, ecx
je 0x4b8b14
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [ebp + 0x154]
mov dword [edi + 4], ecx
mov dword [ebp + 0x154], eax
lea eax, [0x4e7760]
mov dword [esp], eax
mov dword [esp + 4], ebp
lea eax, [0x4d1fc0]
mov dword [esp + 8], eax
lea eax, [0x4f5314]
mov dword [esp + 0xc], eax
call sym.runtime.SetFinalizer
jmp 0x4b8e81
mov dword [esp + 0x60], eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
call sym.syscall.Getpeername
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
test eax, eax
je 0x4b8d35
mov dword [esp + 0x38], edx
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x68]
mov ebx, dword [eax + 0x134]
cmp ebx, 1
jne 0x4b8bb4
mov ebx, dword [eax + 0x138]
cmp ebx, 1
jne 0x4b8b9a
lea ebx, [0x4f5364]
jmp 0x4b8bf1
cmp ebx, 2
jne 0x4b8ba7
lea ebx, [0x4f5368]
jmp 0x4b8bf1
cmp ebx, 5
jne 0x4b8beb
lea ebx, [0x4f536c]
jmp 0x4b8bf1
cmp ebx, 2
je 0x4b8bbe
cmp ebx, 0x17
jne 0x4b8beb
mov ebx, dword [eax + 0x138]
cmp ebx, 1
jne 0x4b8bd1
lea ebx, [0x4f535c]
jmp 0x4b8bf1
cmp ebx, 2
jne 0x4b8bde
lea ebx, [0x4f5360]
jmp 0x4b8bf1
cmp ebx, 3
jne 0x4b8beb
lea ebx, [0x4f5358]
jmp 0x4b8bf1
lea ebx, [0x4f5320]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x60]
mov dword [esp], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], ecx
mov edx, ebx
call eax
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x134]
cmp ecx, 1
jne 0x4b8c42
mov ecx, dword [eax + 0x138]
cmp ecx, 1
jne 0x4b8c28
lea ecx, [0x4f5364]
jmp 0x4b8c7f
cmp ecx, 2
jne 0x4b8c35
lea ecx, [0x4f5368]
jmp 0x4b8c7f
cmp ecx, 5
jne 0x4b8c79
lea ecx, [0x4f536c]
jmp 0x4b8c7f
cmp ecx, 2
je 0x4b8c4c
cmp ecx, 0x17
jne 0x4b8c79
mov ecx, dword [eax + 0x138]
cmp ecx, 1
jne 0x4b8c5f
lea ecx, [0x4f535c]
jmp 0x4b8c7f
cmp ecx, 2
jne 0x4b8c6c
lea ecx, [0x4f5360]
jmp 0x4b8c7f
cmp ecx, 3
jne 0x4b8c79
lea ecx, [0x4f5358]
jmp 0x4b8c7f
lea ecx, [0x4f5324]
mov eax, dword [ecx]
mov ebx, dword [esp + 8]
mov dword [esp + 0x60], ebx
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x44], ebp
mov esi, dword [esp + 0x5c]
mov dword [esp], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 4], esi
mov edx, ecx
call eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x60]
mov ebp, dword [esp + 0x68]
mov dword [ebp + 0x148], ebx
mov ebx, dword [0x5c7340]
test ebx, ebx
jne 0x4b8cca
mov edx, dword [esp + 0x44]
jmp 0x4b8cde
call sym.runtime.gcWriteBarrier2
mov edx, dword [esp + 0x44]
mov dword [edi], edx
mov ebx, dword [ebp + 0x14c]
mov dword [edi + 4], ebx
mov dword [ebp + 0x14c], edx
mov dword [ebp + 0x150], ecx
mov ecx, dword [0x5c7340]
test ecx, ecx
je 0x4b8d04
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [ebp + 0x154]
mov dword [edi + 4], ecx
mov dword [ebp + 0x154], eax
lea eax, [0x4e7760]
mov dword [esp], eax
mov dword [esp + 4], ebp
lea eax, [0x4d1fc0]
mov dword [esp + 8], eax
lea eax, [0x4f5314]
mov dword [esp + 0xc], eax
call sym.runtime.SetFinalizer
jmp 0x4b8e81
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x134]
cmp ecx, 1
jne 0x4b8d71
mov ecx, dword [eax + 0x138]
cmp ecx, 1
jne 0x4b8d57
lea ecx, [0x4f5364]
jmp 0x4b8dae
cmp ecx, 2
jne 0x4b8d64
lea ecx, [0x4f5368]
jmp 0x4b8dae
cmp ecx, 5
jne 0x4b8da8
lea ecx, [0x4f536c]
jmp 0x4b8dae
cmp ecx, 2
je 0x4b8d7b
cmp ecx, 0x17
jne 0x4b8da8
mov ecx, dword [eax + 0x138]
cmp ecx, 1
jne 0x4b8d8e
lea ecx, [0x4f535c]
jmp 0x4b8dae
cmp ecx, 2
jne 0x4b8d9b
lea ecx, [0x4f5360]
jmp 0x4b8dae
cmp ecx, 3
jne 0x4b8da8
lea ecx, [0x4f5358]
jmp 0x4b8dae
lea ecx, [0x4f5328]
mov eax, dword [ecx]
mov ebx, dword [esp + 0x60]
mov dword [esp], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 4], ebx
mov edx, ecx
call eax
mov eax, dword [esp + 8]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], ecx
lea ebx, [0x4d7d20]
mov dword [esp], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 4], ebx
call sym.runtime.convI2I
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x68]
mov dword [ebx + 0x148], ecx
mov ecx, dword [0x5c7340]
test ecx, ecx
jne 0x4b8e0b
mov ecx, dword [esp + 0x40]
jmp 0x4b8e1f
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x40]
mov dword [edi], ecx
mov edx, dword [ebx + 0x14c]
mov dword [edi + 4], edx
mov dword [ebx + 0x14c], ecx
mov dword [ebx + 0x150], eax
mov eax, dword [0x5c7340]
test eax, eax
jne 0x4b8e3e
mov eax, dword [esp + 0x80]
jmp 0x4b8e55
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0x80]
mov dword [edi], eax
mov ecx, dword [ebx + 0x154]
mov dword [edi + 4], ecx
mov dword [ebx + 0x154], eax
lea eax, [0x4e7760]
mov dword [esp], eax
mov dword [esp + 4], ebx
lea eax, [0x4d1fc0]
mov dword [esp + 8], eax
lea eax, [0x4f5314]
mov dword [esp + 0xc], eax
call sym.runtime.SetFinalizer
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x64
ret
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x64
ret
mov eax, dword [esp + 0xc]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
lea edx, [0x4da140]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 4
lea ecx, [0x4eaba0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x60]
mov dword [eax + 8], ecx
mov ecx, dword [0x5c7340]
test ecx, ecx
jne 0x4b8efd
mov ecx, dword [esp + 0x4c]
jmp 0x4b8f08
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x4c]
mov dword [edi], ecx
mov dword [eax + 0xc], ecx
lea ecx, [0x5120a0]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x64
ret
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x64
ret
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x64
ret
mov eax, edi
mov ecx, ebp
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.net._netFD_.dial