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

Disassembly:
mov ecx, dword [0x8d0454]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x5f10ca
sub esp, 0xb8
mov edi, dword [esp + 0xbc]
test byte [edi], al
mov ecx, dword [0x8d0720]
test ecx, ecx
je 0x5f050f
mov eax, edi
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0xc0]
mov dword [edi], ecx
mov edx, dword [eax]
mov dword [edi + 4], edx
lea edx, [0x6b2d80]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.runtime.wbZero
mov edi, dword [esp + 0xbc]
xor eax, eax
call fcn.0046845e
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xbc]
mov dword [edx], ecx
mov ebx, dword [esp + 0xc4]
mov dword [edx + 4], ebx
mov ebp, dword [esp + 0xc8]
mov dword [edx + 8], ebp
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebp
cmp ebx, 4
jge 0x5f054f
xor ecx, ecx
jmp 0x5f0571
add ebp, 0xfffffffc
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 4
add ebp, ecx
add ebx, 0xfffffffc
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], esi
mov dword [esp + 0x60], ebp
test ecx, ecx
je 0x5f05de
mov ebx, dword [esp + 0x64]
cmp ebx, 2
jge 0x5f0584
xor ebp, ebp
xor ecx, ecx
jmp 0x5f05b3
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
add esi, 0xfffffffe
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 2
add esi, ebp
add ebx, 0xfffffffe
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], edi
mov dword [esp + 0x60], esi
mov ecx, 2
test ebp, ebp
je 0x5f05d6
test ecx, ecx
jbe 0x5f10c0
cmp ecx, 1
jbe 0x5f10b4
movzx ebx, word [ebp]
rol bx, 8
mov word [edx + 0xc], bx
test ebp, ebp
setne bl
xor ebx, 1
jmp 0x5f05e3
mov ebx, 1
test bl, bl
je 0x5f05f1
mov ecx, 1
jmp 0x5f0693
mov ebx, dword [esp + 0x64]
cmp ebx, 0x20
jge 0x5f0602
xor ebp, ebp
xor esi, esi
xor ecx, ecx
jmp 0x5f0631
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
lea edi, [esi - 0x20]
mov ecx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 0x20
add edi, ebp
add ebx, 0xffffffe0
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x60], edi
mov ecx, 0x20
test ebp, ebp
je 0x5f065b
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], esi
mov ebx, dword [0x8d0720]
test ebx, ebx
jne 0x5f0649
test ebp, ebp
jmp 0x5f0658
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov ebx, dword [edx + 0x10]
mov dword [edi + 4], ebx
test ebp, ebp
mov dword [edx + 0x10], ebp
jne 0x5f0664
mov ecx, 1
jmp 0x5f0693
lea eax, [edx + 0x1c]
nop
lea ecx, [esp + 0x60]
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
xor eax, 1
mov edx, dword [esp + 0xbc]
mov ecx, eax
xor eax, eax
test cl, cl
je 0x5f069e
mov ebx, 1
jmp 0x5f0705
mov ebx, dword [esp + 0x64]
cmp ebx, 2
jge 0x5f06ad
xor ebp, ebp
xor ecx, ecx
jmp 0x5f06dc
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
add esi, 0xfffffffe
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 2
add esi, ebp
add ebx, 0xfffffffe
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], edi
mov dword [esp + 0x60], esi
mov ecx, 2
test ebp, ebp
je 0x5f06ff
test ecx, ecx
jbe 0x5f10ab
cmp ecx, 1
jbe 0x5f109f
movzx ebx, word [ebp]
rol bx, 8
mov word [edx + 0x28], bx
test ebp, ebp
setne bl
xor ebx, 1
test bl, bl
jne 0x5f080f
mov ebx, dword [esp + 0x64]
test ebx, ebx
jne 0x5f071b
xor ebp, ebp
xor ecx, ecx
jmp 0x5f0746
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
dec esi
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add esi, ebp
dec ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], edi
mov dword [esp + 0x60], esi
mov ecx, 1
test ebp, ebp
je 0x5f075b
test ecx, ecx
jbe 0x5f1096
movzx ecx, byte [ebp]
mov byte [edx + 0x2a], cl
test ebp, ebp
je 0x5f080f
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x5f0800
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
lea eax, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 2
lea eax, [esp + 0x84]
mov dword [esp + 8], eax
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f07f1
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x5f07f1
lea edi, [esp + 0x9c]
xor eax, eax
call fcn.00468479
lea edi, [esp + 0x24]
call fcn.00468477
lea ecx, [esp + 0x24]
mov dword [esp + 0xa8], ecx
call sym.runtime.fastrand
mov ecx, dword [esp]
mov dword [esp + 0xa4], ecx
jmp 0x5f081e
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 1
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov edx, dword [esp + 0x88]
test edx, edx
je 0x5f0f02
mov word [esp + 0x22], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov edx, dword [esp + 0x88]
cmp edx, 2
jge 0x5f0867
xor ebx, ebx
xor eax, eax
jmp 0x5f08a5
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x8c]
add ebp, 0xfffffffe
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
add ebp, ebx
add edx, 0xfffffffe
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x84], ebp
mov eax, 2
test ebx, ebx
je 0x5f08c8
test eax, eax
jbe 0x5f108d
cmp eax, 1
jbe 0x5f1081
movzx eax, word [ebx]
rol ax, 8
mov word [esp + 0x22], ax
test ebx, ebx
je 0x5f0ef3
lea eax, [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], 2
lea eax, [esp + 0x90]
mov dword [esp + 8], eax
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f0ef3
lea eax, [0x684fa0]
mov dword [esp], eax
lea ecx, [esp + 0x9c]
mov dword [esp + 4], ecx
lea edx, [esp + 0x22]
mov dword [esp + 8], edx
call sym.runtime.mapaccess1
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
test al, al
jne 0x5f0ee4
lea eax, [0x684fa0]
mov dword [esp], eax
lea ecx, [esp + 0x9c]
mov dword [esp + 4], ecx
lea edx, [esp + 0x22]
mov dword [esp + 8], edx
call sym.runtime.mapassign
mov eax, dword [esp + 0xc]
mov byte [eax], 1
movzx eax, word [esp + 0x22]
cmp ax, 0x17
ja 0x5f0b44
cmp ax, 0xb
ja 0x5f09d4
cmp ax, 5
jne 0x5f0980
mov edx, dword [esp + 0xbc]
mov byte [edx + 0x2b], 1
jmp 0x5f0e3a
cmp ax, 0xb
jne 0x5f0da9
mov eax, dword [esp + 0xbc]
lea ecx, [eax + 0x6c]
nop
lea edx, [esp + 0x90]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], ecx
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f0e4e
mov edx, dword [esp + 0xbc]
mov ebx, dword [edx + 0x70]
test ebx, ebx
jne 0x5f0e3a
jmp 0x5f0e4e
cmp ax, 0x10
je 0x5f0a4f
cmp ax, 0x12
je 0x5f09fa
cmp ax, 0x17
jne 0x5f0da9
mov edx, dword [esp + 0xbc]
mov byte [edx + 0x3c], 1
jmp 0x5f0e3a
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
lea eax, [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], 2
lea eax, [esp + 0x48]
mov dword [esp + 8], eax
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f0e5d
mov edx, dword [esp + 0x4c]
test edx, edx
jne 0x5f0f63
jmp 0x5f0e5d
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
lea eax, [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], 2
lea eax, [esp + 0x6c]
mov dword [esp + 8], eax
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f0e7b
mov eax, dword [esp + 0x70]
test eax, eax
je 0x5f0e7b
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea eax, [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], 1
lea eax, [esp + 0x78]
mov dword [esp + 8], eax
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f0e6c
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x5f0e6c
mov ecx, dword [esp + 0x70]
test ecx, ecx
jne 0x5f0e6c
mov ecx, dword [esp + 0x78]
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xbc]
mov dword [edx + 0x44], eax
mov eax, dword [0x8d0720]
test eax, eax
je 0x5f0b3c
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebx, dword [edx + 0x40]
mov dword [edi + 4], ebx
mov dword [edx + 0x40], ecx
jmp 0x5f0e3a
cmp ax, 0x2b
ja 0x5f0c7f
cmp ax, 0x23
jne 0x5f0b64
mov edx, dword [esp + 0xbc]
mov byte [edx + 0x2c], 1
jmp 0x5f0e3a
cmp ax, 0x29
jne 0x5f0bf3
mov edx, dword [esp + 0xbc]
mov byte [edx + 0x68], 1
mov ebx, dword [esp + 0x94]
cmp ebx, 2
jge 0x5f0b8b
xor ebp, ebp
xor eax, eax
jmp 0x5f0bc9
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x98]
add esi, 0xfffffffe
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 2
add esi, ebp
add ebx, 0xfffffffe
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], edi
mov dword [esp + 0x90], esi
mov eax, 2
test ebp, ebp
je 0x5f0e8a
test eax, eax
jbe 0x5f0f56
cmp eax, 1
jbe 0x5f0f4a
movzx ebx, word [ebp]
rol bx, 8
mov word [edx + 0x6a], bx
jmp 0x5f0e3a
cmp ax, 0x2b
jne 0x5f0da9
mov edx, dword [esp + 0x94]
cmp edx, 2
jge 0x5f0c0f
xor ebx, ebx
xor eax, eax
jmp 0x5f0c4d
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x98]
add ebp, 0xfffffffe
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
add ebp, ebx
add edx, 0xfffffffe
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], esi
mov dword [esp + 0x90], ebp
mov eax, 2
test ebx, ebx
je 0x5f0e99
test eax, eax
jbe 0x5f0f41
cmp eax, 1
jbe 0x5f0f35
movzx edx, word [ebx]
rol dx, 8
mov ebx, dword [esp + 0xbc]
mov word [ebx + 0x54], dx
mov edx, ebx
jmp 0x5f0e3a
cmp ax, 0x2c
je 0x5f0df5
cmp ax, 0x33
jne 0x5f0da3
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x98]
cmp edx, 2
jne 0x5f0cf9
lea edx, [ebp - 2]
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, 2
add edx, ebx
nop
nop
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], ebp
mov dword [esp + 0x90], edx
test ebx, ebx
je 0x5f0ea8
movzx edx, word [ebx]
rol dx, 8
mov ebx, dword [esp + 0xbc]
mov word [ebx + 0x84], dx
jmp 0x5f0d9c
jge 0x5f0d01
xor ebx, ebx
xor eax, eax
jmp 0x5f0d31
add ebp, 0xfffffffe
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
add ebp, ebx
add edx, 0xfffffffe
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], esi
mov dword [esp + 0x90], ebp
mov eax, 2
test ebx, ebx
je 0x5f0d5c
test eax, eax
jbe 0x5f0f2c
cmp eax, 1
jbe 0x5f0f20
movzx eax, word [ebx]
rol ax, 8
mov ecx, dword [esp + 0xbc]
mov word [ecx + 0x58], ax
test ebx, ebx
jmp 0x5f0d63
mov ecx, dword [esp + 0xbc]
je 0x5f0eb7
lea eax, [ecx + 0x5c]
nop
lea edx, [esp + 0x90]
mov dword [esp], edx
mov dword [esp + 4], 2
mov dword [esp + 8], eax
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f0eb7
mov ebx, dword [esp + 0xbc]
mov edx, ebx
jmp 0x5f0e3a
cmp ax, 0xff01
je 0x5f0db5
mov edx, dword [esp + 0xbc]
jmp 0x5f081e
mov eax, dword [esp + 0xbc]
lea ecx, [eax + 0x30]
nop
lea edx, [esp + 0x90]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], ecx
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f0ec6
mov edx, dword [esp + 0xbc]
mov byte [edx + 0x2d], 1
jmp 0x5f0e3a
mov eax, dword [esp + 0xbc]
lea ecx, [eax + 0x78]
nop
lea edx, [esp + 0x90]
mov dword [esp], edx
mov dword [esp + 4], 2
mov dword [esp + 8], ecx
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f0ed5
mov edx, dword [esp + 0xbc]
mov ebx, dword [edx + 0x7c]
test ebx, ebx
je 0x5f0ed5
mov ebx, dword [esp + 0x94]
test ebx, ebx
je 0x5f081e
jmp 0x5f0f11
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov byte [esp + 0xcc], 1
add esp, 0xb8
ret
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov eax, 1
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 1
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 1
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov dword [esi + ebx*4 - 0xc], eax
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x5f1075
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
nop
lea eax, [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 2
lea eax, [esp + 0x54]
mov dword [esp + 8], eax
call sym.vendor_golang.org_x_crypto_cryptobyte._String_.readLengthPrefixed
movzx eax, byte [esp + 0xc]
test al, al
je 0x5f1066
mov edx, dword [esp + 0x58]
test edx, edx
je 0x5f1066
mov edx, dword [esp + 0xbc]
mov ebx, dword [edx + 0x50]
mov ebp, dword [edx + 0x4c]
inc ebp
mov esi, dword [edx + 0x48]
cmp ebx, ebp
jae 0x5f102a
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x679760]
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 + 0xbc]
mov dword [ebx + 0x50], eax
mov eax, dword [0x8d0720]
test eax, eax
je 0x5f1021
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebp, dword [ebx + 0x48]
mov dword [edi + 4], ebp
mov dword [ebx + 0x48], ecx
mov esi, ecx
mov ebp, edx
mov edx, ebx
mov dword [edx + 0x4c], ebp
lea ebx, [ebp + ebp*2]
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
mov dword [esi + ebx*4 - 8], ebp
mov dword [esi + ebx*4 - 4], edi
mov ebp, dword [0x8d0720]
test ebp, ebp
je 0x5f0f5f
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [esi + ebx*4 - 0xc]
mov dword [edi + 4], ebp
jmp 0x5f0f5f
mov byte [esp + 0xcc], 0
add esp, 0xb8
ret
mov edx, dword [esp + 0xbc]
jmp 0x5f0e3a
mov eax, 1
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 1
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 1
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.crypto_tls._serverHelloMsg_.unmarshal