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

Disassembly:
mov ecx, dword [0x8993fc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x612c9c
sub esp, 0x94
lea edi, [esp + 0x40]
xor eax, eax
call fcn.0046f015
mov ecx, dword [esp + 0xbc]
mov edx, ecx
rol cx, 8
nop
mov word [esp + 0x26], 0
mov word [esp + 0x26], cx
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x6129cd
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x612c83
mov eax, dword [esp + 0x4c]
add eax, 2
cmp eax, 2
jge 0x61291d
lea eax, [0x669360]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1b
lea ecx, [0x69a60d]
mov dword [eax], ecx
lea ecx, [0x6f6df8]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0xbc]
movzx eax, byte [esp + 0x54]
test al, al
je 0x612967
mov eax, dword [esp + 0x4c]
add eax, 2
lea ecx, [esp + 0x40]
cmp dword [ecx + 0x10], eax
jge 0x612967
lea eax, [0x669360]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x36
lea ecx, [0x6a3f48]
mov dword [eax], ecx
lea ecx, [0x6f6df8]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
jmp 0x6129cd
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
lea ebx, [ecx + 2]
mov ebp, dword [esp + 0x48]
cmp eax, ebx
jae 0x6129b7
mov dword [esp + 0x30], ecx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
lea eax, [0x660420]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0xbc]
movzx esi, word [esp + 0x26]
mov word [ebp + ecx], si
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
lea eax, [sym.crypto_tls._cipherSuiteTLS13_.expandLabel.func1]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x84], eax
lea eax, [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 4], 1
mov byte [esp + 8], 0
lea eax, [esp + 0x80]
mov dword [esp + 0xc], eax
call sym.vendor_golang.org_x_crypto_cryptobyte._Builder_.addLengthPrefixed
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea eax, [sym.crypto_tls._cipherSuiteTLS13_.expandLabel.func2]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 4], 1
mov byte [esp + 8], 0
lea eax, [esp + 0x70]
mov dword [esp + 0xc], eax
call sym.vendor_golang.org_x_crypto_cryptobyte._Builder_.addLengthPrefixed
mov eax, dword [esp + 0x40]
test eax, eax
je 0x612abd
mov ecx, dword [esp + 0x44]
xor ebp, ebp
mov ebx, ecx
xor edx, edx
xor ecx, ecx
jmp 0x612ae8
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x5c]
cmp ecx, eax
jb 0x612c7e
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x50]
sub ebx, eax
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
sub ecx, eax
add edx, ebx
xor eax, eax
xor ebx, ebx
test eax, eax
je 0x612b0d
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
jne 0x612c21
jmp 0x612c24
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], edx
lea eax, [0x660420]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
lea ecx, [sym.crypto.Hash.New_fm]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x34]
mov dword [esp], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
call sym.vendor_golang.org_x_crypto_hkdf.Expand
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
mov dword [esp], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0xbc]
mov dword [esp + 8], edx
mov dword [esp + 0xc], edx
call eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x612c09
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xbc]
cmp ecx, eax
jne 0x612c09
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], ecx
add esp, 0x94
ret
lea eax, [0x6603a0]
mov dword [esp], eax
lea eax, [0x6f6620]
mov dword [esp + 4], eax
call sym.runtime.gopanic
mov eax, dword [eax + 4]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ebx
lea eax, str.failed_to_construct_HKDF_label:__sillegal_base64_data_at_input_byte_NTLMSSP_REQUEST_NON_NT_SESSION_KEYreflect:_Field_of_non_struct_type_reflect:_Field_index_out_of_boundsreflect:_string_index_out_of_rangeslice_bounds_out_of_range__:_x:_y_slice_bounds_out_of_range___x:_y:_out_of_memory_allocating_allArenas_memory_classes_heap_objects:bytesruntime.SetFinalizer:_cannot_pass_too_many_pages_allocated_in_chunk_mspan.ensureSwept:_m_is_not_lockedVirtualQuery_for_stack_base_failedforEachP:_sched.safePointWait___0schedule:_spinning_with_local_workruntime:_g_is_running_but_p_is_notdoaddtimer:_P_already_set_in_timertoo_many_references:_cannot_spliceSetFileCompletionNotificationModesunexpected_runtime.netpoll_error:_bytes:_Join_output_length_overflowcrypto_rsa:_missing_public_modulusadding_nil_Certificate_to_CertPoolx509:_unknown_public_key_algorithmx509:_invalid_certificate_policies_s__q_is_excluded_by_constraint__qx509:_Ed25519_verification_failurex509:_unhandled_critical_extensioncrypto_aes:_invalid_buffer_overlapcrypto_des:_invalid_buffer_overlapcrypto_rc4:_invalid_buffer_overlapinvalid_padding_bits_in_BIT_STRINGchacha20:_wrong_HChaCha20_key_size2006_01_02T15:04:05.999999999Z07:001776356839400250464677810668945312588817841970012523233890533447265625ryuFtoaFixed32_called_with_prec___9unsupported_signature_algorithm:__vtls:_too_many_non_advancing_recordstls:_server_selected_an_invalid_PSKtls:_invalid_or_missing_PSK_bindersreflect.MakeSlice_of_non_slice_typepersistentalloc:_align_is_too_large_memory_classes_heap_released:bytesgreyobject:_obj_not_pointer_alignedmismatched_begin_end_of_activeSweepmheap.freeSpanLocked___invalid_freeattempt_to_clear_non_empty_span_setruntime:_close_polldesc_w_o_unblockruntime:_inconsistent_read_deadlinefindrunnable:_netpoll_with_spinningpidleput:_P_has_non_empty_run_queuetraceback_did_not_unwind_completelyruntime:_createevent_failed__errnonetwork_dropped_connection_on_resettransport_endpoint_is_not_connectedfile_type_does_not_support_deadlinetoo_many_Questions_to_pack___65535_bigmod:_modulus_is_smaller_than_natx509:_malformed_extension_OID_fieldx509:_wrong_Ed25519_public_key_sizex509:_invalid_authority_info_accesscrypto_md5:_invalid_hash_state_sizemime:_bogus_characters_after___:__qP224_point_is_the_point_at_infinityP256_point_is_the_point_at_infinityP384_point_is_the_point_at_infinityP521_point_is_the_point_at_infinity__must_separate_successive_digitssuperfluous_leading_zeros_in_lengthchacha20:_output_smaller_than_inputtransform:_short_destination_bufferinvalid_boolean_value__q_for___s:__vkeep_alive_interval_must_be_positiveTime.UnmarshalBinary:_invalid_length444089209850062616169452667236328125ryuFtoaFixed64_called_with_prec___180123456789abcdefghijklmnopqrstuvwxyzstrings.Builder.Grow:_negative_countstrings:_Join_output_length_overflowexpected_an_ECDSA_public_key__got__Tunsupported_SSLv2_handshake_receivedtls:_server_did_not_send_a_key_sharehttp:_unexpected_EOF_reading_trailermethod_ABI_and_value_ABI_dont_alignlfstack_node_allocated_from_the_heap__is_larger_than_maximum_page_size__runtime:_invalid_typeBitsBulkBarrieruncaching_span_but_s.allocCount__0_memory_classes_metadata_other:bytes_sched_pauses_stopping_other:secondsuser_arena_span_is_on_the_wrong_listruntime:_marked_free_object_in_span_runtime:_unblock_on_closing_polldescruntime:_inconsistent_write_deadlineUnable_to_determine_system_directoryruntime:_VirtualQuery_failed__errnoruntime:_sudog_with_non_nil_waitlinkruntime:_mcall_called_on_m__g0_stackstartm:_P_required_for_spinningtrue__is_not_Grunnable_or_Gscanrunnable_nruntime:_bad_notifyList_size___syncaccessed_data_from_freed_user_arena_runtime:_wrong_goroutine_in_newstackruntime:_invalid_pc_encoded_table_faccessing_a_corrupted_shared_librarycompressed_name_in_SRV_resource_datano_assembly_implementation_availablex509:_zero_or_negative_DSA_parameterx509:_invalid_CRL_distribution_pointx509:_invalid_subject_key_identifierx509:_malformed_algorithm_identifierx509:_invalid_X25519_private_key:__vcrypto_cipher:_input_not_full_blockscrypto_sha1:_invalid_hash_state_sizecrypto_sha512:_invalid_has
mov dword [esp], eax
mov dword [esp + 4], 0x22
lea eax, [esp + 0x8c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call sym.fmt.Errorf
mov eax, dword [esp + 0x14]
test eax, eax
je 0x612c6e
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.gopanic
call sym.runtime.panicSliceB
lea eax, [0x6603a0]
mov dword [esp], eax
lea eax, [0x6f6618]
mov dword [esp + 4], eax
call sym.runtime.gopanic
nop
call sym.runtime.morestack_noctxt
jmp sym.crypto_tls._cipherSuiteTLS13_.expandLabel