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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x4c]
cmp eax, dword [ecx + 8]
jbe 0x51f59c
sub esp, 0xcc
mov eax, dword [esp + 0xd0]
mov eax, dword [eax]
mov ecx, dword [esp + 0xd4]
mov edx, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x10]
xor ebp, ebp
xor esi, esi
mov edi, esi
jmp 0x51ef49
inc ebx
inc ebp
mov esi, ecx
mov ecx, dword [esp + 0xd4]
cmp ebp, edx
jge 0x51ef6e
movzx ecx, byte [ebx]
cmp cl, 1
jne 0x51ef5c
mov ecx, 1
jmp 0x51ef3e
cmp cl, 0x40
jne 0x51ef6a
mov ecx, esi
mov edi, 1
jmp 0x51ef3e
mov ecx, esi
jmp 0x51ef3e
mov dword [esp + 0x78], eax
mov edx, dword [eax + 0x24]
mov edx, dword [edx + 0x20]
test edx, edx
je 0x51f182
movzx edx, byte [ecx + 0xc]
test dl, dl
je 0x51f12e
mov eax, dword [ecx + 0x20]
lea edx, [0x603560]
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call dbg.runtime.makeslice
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0xd4]
mov ebp, dword [ebx + 0x20]
mov dword [esp + 0x54], ebp
mov esi, dword [ebx + 0x1c]
xor edi, edi
jmp 0x51efe5
mov word [edx + eax*2], bp
add esi, 2
mov eax, dword [esp + 0x50]
lea edi, [eax + 1]
mov ebp, dword [esp + 0x54]
mov eax, ebx
mov ebx, dword [esp + 0xd4]
cmp edi, ebp
jge 0x51f052
mov dword [esp + 0x50], edi
lea ebx, [eax + 1]
movzx ebp, byte [esi]
shl ebp, 8
movzx edi, byte [esi + 1]
add ebp, edi
cmp ebx, ecx
jle 0x51efca
mov dword [esp + 0x34], eax
mov word [esp + 0x2e], bp
mov dword [esp + 0x94], esi
lea ebp, [0x603560]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call dbg.runtime.growslice
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x34]
movzx ebp, word [esp + 0x2e]
mov esi, dword [esp + 0x94]
jmp 0x51efca
mov dword [esp + 0x38], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x34], eax
lea ebx, [0x614b60]
mov dword [esp], ebx
call dbg.runtime.newobject
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x2c]
mov eax, dword [eax + 0x28]
mov ebx, dword [esp + 4]
mov dword [esp + 0x8c], ebx
mov dword [ebx + 4], edx
mov dword [ebx + 8], ecx
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x51f116
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x14], eax
mov eax, dword [0x79b700]
lea ecx, [ebx + 0xc]
test eax, eax
jne 0x51f0fa
mov eax, dword [esp + 0x90]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
mov dword [esp], ebx
mov eax, dword [edx]
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 8]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ecx
add esp, 0xcc
ret
mov dword [esp], ecx
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov ebx, dword [esp + 0x8c]
jmp 0x51f0c1
mov dword [esp], ebx
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov ebx, dword [esp + 0x8c]
jmp 0x51f09c
mov edx, dword [0x7836a0]
mov ebx, dword [0x78369c]
mov ebp, dword [0x783698]
xchg edi, eax
test al, al
xchg edi, eax
je 0x51f163
xchg esi, eax
test al, al
xchg esi, eax
je 0x51f157
mov ecx, edx
mov edx, ebp
mov eax, ebx
jmp 0x51f052
add ebx, 0xfffffffc
cmp ebx, edx
jbe 0x51f14c
jmp 0x51f58e
cmp ebx, 3
jb 0x51f595
add edx, 0xfffffffd
mov edi, edx
neg edx
sar edx, 0x1f
and edx, 6
add ebp, edx
add ebx, 0xfffffffd
mov edx, edi
jmp 0x51f146
xchg edi, eax
mov byte [esp + 0x2d], al
xchg edi, eax
xchg esi, eax
mov byte [esp + 0x2c], al
xchg esi, eax
lea eax, [0x6260c0]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 0x24]
mov edx, dword [esp + 4]
mov dword [esp + 0x98], edx
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x54], ebx
mov ecx, dword [ecx + 0xc]
xor ebp, ebp
jmp 0x51f344
mov eax, dword [esp + 0x80]
lea ebx, [eax + 0xc]
mov eax, dword [esp + 0x48]
inc eax
movzx ecx, byte [esp + 0x2c]
mov edx, dword [esp + 0x68]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jge 0x51f25b
mov dword [esp + 0x80], ebx
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
mov ebp, dword [ebx + 8]
mov esi, dword [edx + 0x30]
mov edi, dword [edx + 0x38]
mov edx, dword [edx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
call dbg.bytes.Equal
movzx eax, byte [esp + 0x18]
test al, al
je 0x51f1bf
mov eax, dword [esp + 0x98]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xcc
ret
mov eax, dword [esp + 0x84]
lea ebx, [eax + 0xc]
lea eax, [ebp + 1]
movzx ecx, byte [esp + 0x2c]
mov edx, dword [esp + 0x98]
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x3c]
cmp ebp, eax
jge 0x51f500
mov dword [esp + 0x84], ebx
mov eax, dword [ebx + 8]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebx]
mov edx, dword [edx + 0x2c]
test ebp, ebp
jne 0x51f3ae
test edx, edx
je 0x51f3ae
test cl, cl
je 0x51f315
mov eax, dword [edx + 0x4c]
cmp eax, 1
jne 0x51f315
mov eax, dword [esp + 0xd4]
mov ebx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x51f2ea
mov dword [esp + 0x68], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
jmp 0x51f1eb
mov eax, dword [esp + 0x98]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xcc
ret
movzx eax, byte [esp + 0x2d]
test al, al
je 0x51f326
mov ebx, dword [edx + 0x4c]
cmp ebx, 3
je 0x51f2be
mov edx, dword [esp + 0x88]
add edx, 0x30
mov ebx, dword [esp + 0x40]
lea ebp, [ebx + 1]
mov eax, esi
mov ebx, edi
mov ecx, edx
mov edx, dword [esp + 0x98]
cmp ebp, ebx
jge 0x51f558
mov dword [esp + 0x40], ebp
mov dword [esp + 0x88], ecx
lea edi, [esp + 0x9c]
mov esi, ecx
call fcn.0044c4e8
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x51f523
mov edi, edx
lea esi, [esp + 0x9c]
call fcn.0044c4e8
movzx ecx, byte [esp + 0x2c]
test cl, cl
je 0x51f50a
mov esi, eax
mov eax, dword [edx + 4]
mov dword [esp + 0x50], eax
mov edi, ebx
mov ebx, dword [edx]
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x60]
jmp 0x51f280
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
call dbg.crypto/x509.ParseCertificate
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test ecx, ecx
jne 0x51f3ec
movzx ecx, byte [esp + 0x2c]
test cl, cl
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x54]
mov edx, eax
jmp 0x51f2b4
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call dbg.crypto/tls.(*Conn).sendAlert
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call dbg.strconv.Itoa
mov eax, dword [esp + 8]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x90], ecx
mov edx, dword [esp + 0x70]
mov edx, dword [edx + 0x14]
mov ebx, dword [esp + 0x74]
mov dword [esp], ebx
call edx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [esp], 0
lea edx, [0x65234f]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x29
mov edx, dword [esp + 0x90]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
lea edx, [0x64564d]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 2
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
call dbg.runtime.concatstring4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x6c], ecx
lea edx, [0x60f6c0]
mov dword [esp], edx
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], ecx
mov ecx, dword [0x79b700]
test ecx, ecx
jne 0x51f4e6
mov ecx, dword [esp + 0x6c]
mov dword [eax], ecx
mov dword [esp + 0xd8], 0
lea ecx, [0x757cf0]
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xe0], eax
add esp, 0xcc
ret
mov dword [esp + 0x7c], eax
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x7c]
jmp 0x51f4c0
movzx eax, byte [esp + 0x2d]
jmp 0x51f326
mov esi, eax
movzx eax, byte [esp + 0x2d]
test al, al
je 0x51f51c
mov eax, esi
jmp 0x51f38e
mov edi, ebx
jmp 0x51f326
lea eax, [0x6260c0]
mov dword [esp], eax
mov dword [esp + 4], edx
lea eax, [esp + 0x9c]
mov dword [esp + 8], eax
call dbg.runtime.typedmemmove
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x40]
jmp 0x51f381
lea eax, [0x6260c0]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xcc
ret
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.morestack_noctxt
jmp dbg.crypto/tls.(*clientHandshakeState).getCertificate