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

Disassembly:
mov ecx, dword [0x8993fc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x5e7402
sub esp, 0xb8
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx + 0x44]
test edx, edx
jne 0x5e6599
movzx edx, byte [ecx + 0x50]
test dl, dl
jne 0x5e6599
lea eax, [0x669360]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x50
lea ecx, [0x6a6945]
mov dword [eax], ecx
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea ecx, [0x6f6df8]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xb8
ret
mov edx, dword [ecx + 0x38]
mov ebx, dword [ecx + 0x34]
xor ebp, ebp
xor esi, esi
jmp 0x5e65aa
inc ebp
lea esi, [esi + edi + 1]
cmp ebp, edx
jge 0x5e6612
lea edi, [ebx + ebp*8]
mov edi, dword [edi + 4]
test edi, edi
je 0x5e65c0
cmp edi, 0xff
jle 0x5e65a5
lea eax, [0x669360]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1d
lea ecx, [0x69b466]
mov dword [eax], ecx
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea ecx, [0x6f6df8]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xb8
ret
cmp esi, 0xffff
jg 0x5e6a0f
mov dword [esp + 0x9c], ecx
mov dword [esp], ecx
mov byte [esp + 4], 1
call sym.crypto_tls._Config_.supportedVersions
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
test eax, eax
je 0x5e69bd
mov dword [esp + 0x48], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov byte [esp + 4], 1
call sym.crypto_tls._Config_.supportedVersions
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x5e6675
xor eax, eax
jmp 0x5e667c
mov eax, dword [esp + 8]
movzx eax, word [eax]
cmp ax, 0x303
jbe 0x5e6687
mov eax, 0x303
mov word [esp + 0x2a], ax
lea ecx, [0x660420]
mov dword [esp], ecx
mov dword [esp + 4], 0x20
mov dword [esp + 8], 0x20
call sym.runtime.makeslice
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x44]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xac], ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
call sym.crypto_tls.hostnameInSNI
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x9c]
mov edx, dword [esp + 8]
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x6c], ebx
test ecx, ecx
jne 0x5e6706
mov ebp, dword [0x854380]
mov ecx, dword [0x854384]
mov esi, dword [0x854388]
jmp 0x5e6712
mov esi, dword [eax + 0xa0]
mov ebp, dword [eax + 0x98]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x74], ebp
lea eax, [0x689780]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
movzx ecx, word [esp + 0x2a]
mov word [eax + 0xc], cx
lea ecx, [0x65ce20]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x94]
mov dword [ecx + 0x38], 1
mov dword [ecx + 0x3c], 1
mov edx, dword [0x899508]
test edx, edx
jne 0x5e677a
mov edx, dword [esp + 0xac]
jmp 0x5e6797
call sym.runtime.gcWriteBarrier4
mov dword [edi], eax
mov edx, dword [ecx + 0x34]
mov dword [edi + 4], edx
mov edx, dword [esp + 0xac]
mov dword [edi + 8], edx
mov ebx, dword [ecx + 0x10]
mov dword [edi + 0xc], ebx
mov dword [ecx + 0x34], eax
mov dword [ecx + 0x14], 0x20
mov dword [ecx + 0x18], 0x20
mov dword [ecx + 0x10], edx
mov byte [ecx + 0x9c], 1
mov byte [ecx + 0x48], 1
mov byte [ecx + 0xac], 1
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x44], eax
mov eax, dword [0x899508]
test eax, eax
jne 0x5e67db
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x74]
jmp 0x5e67fc
call sym.runtime.gcWriteBarrier4
mov eax, dword [esp + 0xa8]
mov dword [edi], eax
mov edx, dword [ecx + 0x40]
mov dword [edi + 4], edx
mov edx, dword [esp + 0x74]
mov dword [edi + 8], edx
mov ebx, dword [ecx + 0x4c]
mov dword [edi + 0xc], ebx
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0x30]
mov dword [ecx + 0x50], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x54], eax
mov dword [ecx + 0x4c], edx
lea eax, [0x65ce20]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x94]
mov dword [ecx + 0x5c], 1
mov dword [ecx + 0x60], 1
mov edx, dword [0x899508]
test edx, edx
je 0x5e684e
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov edx, dword [ecx + 0x58]
mov dword [edi + 4], edx
mov dword [ecx + 0x58], eax
mov byte [ecx + 0x8c], 1
mov eax, dword [esp + 0x9c]
mov edx, dword [eax + 0x38]
mov ebx, dword [eax + 0x3c]
mov ebp, dword [eax + 0x34]
mov dword [ecx + 0xa4], edx
mov dword [ecx + 0xa8], ebx
mov edx, dword [0x899508]
test edx, edx
jne 0x5e6887
mov edx, dword [esp + 0x84]
jmp 0x5e68aa
call sym.runtime.gcWriteBarrier4
mov dword [edi], ebp
mov edx, dword [ecx + 0xa0]
mov dword [edi + 4], edx
mov edx, dword [esp + 0x84]
mov dword [edi + 8], edx
mov ebx, dword [ecx + 0xb0]
mov dword [edi + 0xc], ebx
mov dword [ecx + 0xa0], ebp
mov ebx, dword [esp + 0x44]
mov dword [ecx + 0xb4], ebx
mov ebx, dword [esp + 0x48]
mov dword [ecx + 0xb8], ebx
mov dword [ecx + 0xb0], edx
mov edx, dword [esp + 0xbc]
mov ebx, dword [edx + 0x30]
test ebx, ebx
jle 0x5e6912
mov dword [ecx + 0x94], 0xc
mov dword [ecx + 0x98], 0xc
mov ebx, dword [0x899508]
lea ebp, [edx + 0xa9]
test ebx, ebx
je 0x5e690c
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov ebx, dword [ecx + 0x90]
mov dword [edi + 4], ebx
mov dword [ecx + 0x90], ebp
movzx ebx, byte [0x8992c9]
mov ebp, dword [0x854300]
mov esi, dword [0x854304]
test bl, bl
jne 0x5e6935
mov ebp, dword [0x854310]
mov esi, dword [0x854314]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x88], ebp
mov dword [esp], eax
call sym.crypto_tls._Config_.cipherSuites
mov eax, dword [esp + 8]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x98], ecx
lea edx, [0x6604a0]
mov dword [esp], edx
mov dword [esp + 4], 0
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x94]
mov dword [ecx + 0x2c], 0
mov edx, dword [esp + 0x50]
mov dword [ecx + 0x30], edx
mov ebx, dword [0x899508]
test ebx, ebx
je 0x5e69a1
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [ecx + 0x28]
mov dword [edi + 4], ebx
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x98]
xor esi, esi
jmp 0x5e6a69
lea eax, [0x669360]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x3c
lea ecx, [0x6a4d4f]
mov dword [eax], ecx
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea ecx, [0x6f6df8]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xb8
ret
lea eax, [0x669360]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x20
lea ecx, [0x69c81e]
mov dword [eax], ecx
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea ecx, [0x6f6df8]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xb8
ret
inc esi
mov ebx, dword [esp + 0x88]
cmp eax, esi
jle 0x5e6b56
movzx edi, word [ebx + esi*2]
mov word [esp + 0x26], di
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x5c]
jmp 0x5e73a6
mov ebx, dword [0x8542e0]
mov ebp, dword [0x8542e4]
mov word [esp + 0x54], ax
xor eax, eax
mov dword [esp + 0x6c], eax
movzx eax, word [esp + 0x54]
jmp 0x5e73d1
xor ebx, ebx
test ebx, ebx
je 0x5e6a61
cmp word [ecx + 0xc], 0x303
jae 0x5e6ac7
mov ebx, dword [ebx + 0x14]
test ebx, 4
jne 0x5e6a61
mov ebx, dword [ecx + 0x30]
mov ebp, dword [ecx + 0x2c]
inc ebp
mov edx, dword [ecx + 0x28]
cmp ebx, ebp
jae 0x5e6b3e
mov dword [esp + 0x6c], esi
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6604a0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x94]
mov dword [ebx + 0x30], eax
mov eax, dword [0x899508]
test eax, eax
je 0x5e6b28
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0x28]
mov dword [edi + 4], eax
mov dword [ebx + 0x28], ecx
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x6c]
movzx edi, word [esp + 0x26]
mov ebp, edx
mov edx, ecx
mov ecx, ebx
mov dword [ecx + 0x2c], ebp
mov word [edx + ebp*2 - 2], di
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x98]
jmp 0x5e6a61
mov eax, dword [esp + 0x9c]
mov edx, dword [eax]
test edx, edx
je 0x5e6b68
mov ebx, dword [eax + 4]
jmp 0x5e6b74
mov edx, dword [0x85a128]
mov ebx, dword [0x85a12c]
mov eax, dword [ecx + 0x14]
mov ebp, dword [ecx + 0x10]
mov esi, dword [ecx + 0x18]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
call sym.io.ReadAtLeast
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x5e72c8
mov edx, dword [esp + 0xbc]
mov ebx, dword [edx + 0x10]
test ebx, ebx
jne 0x5e6c64
lea eax, [0x660420]
mov dword [esp], eax
mov dword [esp + 4], 0x20
mov dword [esp + 8], 0x20
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x94]
mov dword [ecx + 0x20], 0x20
mov dword [ecx + 0x24], 0x20
mov edx, dword [0x899508]
test edx, edx
je 0x5e6c05
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov edx, dword [ecx + 0x1c]
mov dword [edi + 4], edx
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x9c]
mov edx, dword [eax]
test edx, edx
je 0x5e6c1a
mov ebx, dword [eax + 4]
jmp 0x5e6c26
mov edx, dword [0x85a128]
mov ebx, dword [0x85a12c]
mov eax, dword [ecx + 0x1c]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x20
mov dword [esp + 0x10], 0x20
mov dword [esp + 0x14], 0x20
call sym.io.ReadAtLeast
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x5e7217
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0x94]
cmp word [ebx + 0xc], 0x303
jb 0x5e6ca9
mov ebp, dword [0x854344]
mov esi, dword [0x854348]
mov edi, dword [0x854340]
mov dword [ebx + 0x78], ebp
mov dword [ebx + 0x7c], esi
mov ebp, dword [0x899508]
test ebp, ebp
je 0x5e6ca6
mov eax, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [ebx + 0x74]
mov dword [edi + 4], ebp
mov edi, eax
mov dword [ebx + 0x74], edi
mov ebp, dword [0x85a240]
test ebp, ebp
je 0x5e6cdf
mov esi, dword [0x85a244]
mov edi, dword [0x85a248]
mov dword [ebx + 0x78], esi
mov dword [ebx + 0x7c], edi
mov esi, dword [0x899508]
test esi, esi
je 0x5e6cdc
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov esi, dword [ebx + 0x74]
mov dword [edi + 4], esi
mov dword [ebx + 0x74], ebp
mov ebp, dword [ebx + 0xb4]
test ebp, ebp
jbe 0x5e738b
mov eax, dword [ebx + 0xb0]
cmp word [eax], 0x304
jne 0x5e7149
cmp ebp, 1
jne 0x5e6d2c
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov eax, dword [0x899508]
test eax, eax
je 0x5e6d25
mov eax, dword [ebx + 0x28]
call sym.runtime.gcWriteBarrier1
mov dword [edi], eax
mov dword [ebx + 0x28], 0
movzx eax, byte [0x8992c9]
test al, al
je 0x5e6dfc
mov eax, dword [0x854324]
mov ecx, dword [ebx + 0x30]
mov ebp, dword [ebx + 0x2c]
add ebp, eax
mov esi, dword [ebx + 0x28]
cmp ecx, ebp
jb 0x5e6d54
mov eax, ebp
jmp 0x5e6d86
mov dword [esp + 0x68], ebp
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
lea eax, [0x6604a0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0xa4], esi
mov dword [esp + 0x68], ecx
mov edx, dword [0x854324]
sub eax, edx
lea eax, [esi + eax*2]
mov ebx, dword [0x854320]
mov dword [esp], eax
mov dword [esp + 4], ebx
shl edx, 1
mov dword [esp + 8], edx
call sym.runtime.memmove
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x94]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x30], eax
mov eax, dword [0x899508]
test eax, eax
jne 0x5e6de0
mov edx, dword [esp + 0xa4]
jmp 0x5e6df4
call sym.runtime.gcWriteBarrier2
mov edx, dword [esp + 0xa4]
mov dword [edi], edx
mov ebx, dword [ecx + 0x28]
mov dword [edi + 4], ebx
mov dword [ecx + 0x28], edx
jmp 0x5e6eb8
mov eax, dword [0x854334]
mov ecx, dword [ebx + 0x30]
mov ebp, dword [ebx + 0x2c]
add ebp, eax
mov esi, dword [ebx + 0x28]
cmp ecx, ebp
jb 0x5e6e15
mov eax, ebp
jmp 0x5e6e47
mov dword [esp + 0x68], ebp
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
lea eax, [0x6604a0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], ebp
mov dword [esp + 0xa4], esi
mov edx, dword [0x854334]
sub eax, edx
lea eax, [esi + eax*2]
mov ebx, dword [0x854330]
mov dword [esp], eax
mov dword [esp + 4], ebx
shl edx, 1
mov dword [esp + 8], edx
call sym.runtime.memmove
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x94]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x30], eax
mov eax, dword [0x899508]
test eax, eax
jne 0x5e6ea1
mov edx, dword [esp + 0xa4]
jmp 0x5e6eb5
call sym.runtime.gcWriteBarrier2
mov edx, dword [esp + 0xa4]
mov dword [edi], edx
mov ebx, dword [ecx + 0x28]
mov dword [edi + 4], ebx
mov dword [ecx + 0x28], edx
mov edx, dword [esp + 0x9c]
mov ebx, dword [edx + 0x9c]
test ebx, ebx
jne 0x5e6ed7
mov ebp, dword [0x854380]
mov ebx, dword [0x854384]
jmp 0x5e6edd
mov ebp, dword [edx + 0x98]
test ebx, ebx
jbe 0x5e7382
movzx eax, word [ebp]
nop
cmp ax, 0x18
ja 0x5e6f01
cmp ax, 0x17
je 0x5e6f11
cmp ax, 0x18
je 0x5e6f11
jmp 0x5e70f7
cmp ax, 0x19
je 0x5e6f11
cmp ax, 0x1d
jne 0x5e70f7
mov ebx, dword [edx]
test ebx, ebx
je 0x5e6f1c
mov edx, dword [edx + 4]
jmp 0x5e6f28
mov ebx, dword [0x85a128]
mov edx, dword [0x85a12c]
mov word [esp + 0x28], ax
mov dword [esp], ebx
mov dword [esp + 4], edx
mov word [esp + 8], ax
call sym.crypto_tls.generateECDHEKey
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x5e70c8
mov eax, dword [esp + 0xc]
mov dword [esp + 0x90], eax
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
lea ecx, [sym.crypto_tls._Conn_.makeClientHello._PrivateKey_.PublicKey.func1]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
test byte [eax], al
lea ecx, [eax + 0x1c]
mov dword [esp], ecx
lea ecx, [esp + 0xb0]
mov dword [esp + 4], ecx
call sym.sync._Once_.Do
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x78], ecx
lea edx, [0x65d900]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 4]
mov eax, dword [eax + 8]
cmp ecx, 0x85
ja 0x5e6fd2
mov ebx, ecx
mov ebp, 0x85
jmp 0x5e7018
mov dword [esp + 0x64], ecx
mov dword [esp + 0xa0], eax
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x85
mov dword [esp + 0xc], ecx
lea eax, [0x660420]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x64]
mov ebp, eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x70], edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], ecx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call sym.runtime.memmove
lea eax, [0x65da80]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
movzx ecx, word [esp + 0x28]
mov word [eax], cx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x899508]
test ecx, ecx
jne 0x5e7073
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x94]
jmp 0x5e7091
call sym.runtime.gcWriteBarrier3
mov ecx, dword [esp + 0x70]
mov dword [edi], ecx
mov dword [edi + 4], eax
mov edx, dword [esp + 0x94]
mov ebx, dword [edx + 0xc8]
mov dword [edi + 8], ebx
mov dword [eax + 4], ecx
mov dword [edx + 0xcc], 1
mov dword [edx + 0xd0], 1
mov dword [edx + 0xc8], eax
mov edx, dword [esp + 0xbc]
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
jmp 0x5e714b
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
add esp, 0xb8
ret
lea eax, [0x669360]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x30
lea ecx, [0x6a2939]
mov dword [eax], ecx
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea ecx, [0x6f6df8]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xb8
ret
xor eax, eax
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x5e71bd
mov dword [esp + 0x8c], eax
mov dword [esp], edx
call sym.crypto_tls._Conn_.quicGetTransportParameters
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x5e71e8
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x5e7183
xor edx, edx
xor ecx, ecx
lea eax, [0x8992c0]
mov ebx, dword [esp + 0x94]
mov dword [ebx + 0x100], ecx
mov dword [ebx + 0x104], edx
mov ecx, dword [0x899508]
test ecx, ecx
je 0x5e71b0
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [ebx + 0xfc]
mov dword [edi + 4], ecx
mov dword [ebx + 0xfc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
add esp, 0xb8
ret
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
add esp, 0xb8
ret
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x69a5f2]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1b
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call sym.runtime.concatstring2
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], ecx
lea edx, [0x669360]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], ecx
mov ecx, dword [0x899508]
test ecx, ecx
jne 0x5e728a
mov ecx, dword [esp + 0x7c]
jmp 0x5e7295
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x7c]
mov dword [edi], ecx
mov dword [eax], ecx
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea ecx, [0x6f6df8]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xb8
ret
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x69a5f2]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1b
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call sym.runtime.concatstring2
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x80], ecx
lea edx, [0x669360]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [0x899508]
test ecx, ecx
jne 0x5e7341
mov ecx, dword [esp + 0x80]
jmp 0x5e734f
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x80]
mov dword [edi], ecx
mov dword [eax], ecx
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
lea ecx, [0x6f6df8]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
add esp, 0xb8
ret
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
lea eax, [ebx + 1]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x6c]
cmp ebx, edx
jge 0x5e6aae
movzx eax, word [ebp + ebx*2]
cmp ax, di
jne 0x5e7394
jmp 0x5e6a8d
lea edx, [edi + 1]
movzx edi, word [esp + 0x26]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x6c]
cmp edi, ebp
jge 0x5e73e9
mov edx, dword [ebx + edi*4]
cmp word [edx], ax
jne 0x5e73c1
mov eax, edx
mov edx, dword [esp + 0x50]
jmp 0x5e73eb
xor eax, eax
mov ebp, dword [esp + 0x98]
movzx edi, word [esp + 0x26]
mov ebx, eax
mov eax, dword [esp + 0x4c]
jmp 0x5e6ab0
call sym.runtime.morestack_noctxt
jmp sym.crypto_tls._Conn_.makeClientHello