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

Disassembly:
mov ecx, dword [0xe11d80]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x603e6e
sub esp, 0x94
lea edi, [esp + 0x68]
xor eax, eax
call fcn.00469925
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 + 0x68]
test ecx, ecx
jne 0x603bc0
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x603e55
mov eax, dword [esp + 0x74]
add eax, 2
cmp eax, 2
jge 0x603b10
lea eax, [0x8f2320]
mov dword [esp], eax
call fcn.0040c320
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1b
lea ecx, [0x977802]
mov dword [eax], ecx
lea ecx, [0xa2d758]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0xbc]
movzx eax, byte [esp + 0x7c]
test al, al
je 0x603b5a
mov eax, dword [esp + 0x74]
add eax, 2
lea ecx, [esp + 0x68]
cmp dword [ecx + 0x10], eax
jge 0x603b5a
lea eax, [0x8f2320]
mov dword [esp], eax
call fcn.0040c320
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x36
lea ecx, [0x986592]
mov dword [eax], ecx
lea ecx, [0xa2d758]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
jmp 0x603bc0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
lea ebx, [ecx + 2]
mov ebp, dword [esp + 0x70]
cmp eax, ebx
jae 0x603baa
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, [0x8d9fa0]
mov dword [esp + 0x10], eax
call fcn.0044e860
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 + 0x74], ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], ebp
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
lea eax, [0x604040]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], 1
mov byte [esp + 8], 0
lea eax, [esp + 0x4c]
mov dword [esp + 0xc], eax
call fcn.00570e50
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
lea eax, [0x603e80]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], 1
mov byte [esp + 8], 0
lea eax, [esp + 0x58]
mov dword [esp + 0xc], eax
call fcn.00570e50
mov eax, dword [esp + 0x68]
test eax, eax
je 0x603c9b
mov ecx, dword [esp + 0x6c]
xor ebp, ebp
mov ebx, ecx
xor edx, edx
xor ecx, ecx
jmp 0x603cc9
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x84]
cmp eax, ecx
ja 0x603e50
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x78]
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 0x603ce8
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
jne 0x603dfc
jmp 0x603dff
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ecx
lea eax, [0x8d9fa0]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.0044e6e0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
lea ecx, [0x60b6f0]
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 fcn.005d4780
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov ecx, dword [esp + 0x40]
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 0x603de4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xbc]
cmp ecx, eax
jne 0x603de4
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], ecx
add esp, 0x94
ret
lea eax, [0x8d9c60]
mov dword [esp], eax
lea eax, [0xa2c818]
mov dword [esp + 4], eax
call fcn.00438c00
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ebx
lea eax, str.failed_to_construct_HKDF_label:__sillegal_base64_data_at_input_byte_in_u_hexadecimal_character_escapehttp:_persistConn.readLoop_exitinghttp:_read_on_closed_response_bodyfailed_to_parse_alt_svc_header:__sfailed_to_get_http3_connection:__shttp2:_aborting_request_body_writestream_error:_stream_ID__d___v___vframe_settings_window_size_too_bigframe_windowupdate_zero_inc_streamunsupported_authentication_method_NoDefaultCurrentDirectoryInExePath3552713678800500929355621337890625too_many_references:_cannot_spliceSetFileCompletionNotificationModes:_day_of_year_does_not_match_monthfailed_to_remove_the_lock_file:__vCM_Get_Device_Interface_List_SizeWslice_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_timercrypto_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_overlapreflect:_Field_of_non_struct_type_reflect:_Field_index_out_of_boundsreflect:_string_index_out_of_rangereflect.Value.Grow:_slice_overflowexpected_attribute_name_in_elementunescaped_____not_in_CDATA_sectionunable_to_read_ALPN_extension_dataheader_field_is_not_lower_case:__sinvalid_response_pseudo_header:__sunexpected_runtime.netpoll_error:_invalid_nested_repetition_operatorinvalid_or_unsupported_Perl_syntaxinvalid_padding_bits_in_BIT_STRINGchacha20:_wrong_HChaCha20_key_sizeGODEBUG_sys_cpu:_can_not_disable__Error_sending_CONNECTION_CLOSE:__sRestoring_Transport_Parameters:__sProcessed_Transport_Parameters:__smissing_retry_source_connection_idseed_must_be_of_length_KeySeedSizess_must_be_of_length_SharedKeySizept_must_be_of_length_PlaintextSizeen_US_en_q0.9_zh_CN_q0.8_zh_q0.7zh_CN_zh_q0.9_en_US_q0.8_en_q0.7unsupported_signature_algorithm:__vTLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHAtls:_too_many_non_advancing_recordstls:_server_selected_an_invalid_PSKinvalid_utf8_payload_in_close_framehttp:_server_closed_idle_connectionfailed_to_parse_content_type__q:__v__you_can_use__s_which_is_supported2006_01_02T15:04:05.999999999Z07:00CONTINUATION_frame_with_stream_ID_0executable_file_not_found_in__PATH_1776356839400250464677810668945312588817841970012523233890533447265625ryuFtoaFixed32_called_with_prec___9strings.Reader.Seek:_invalid_whencenetwork_dropped_connection_on_resettransport_endpoint_is_not_connectednon_positive_interval_for_NewTickerSubscribeServiceChangeNotificationspersistentalloc:_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__errnobigmod:_modulus_is_smaller_than_natx509:_malformed_extension_OID_fieldx509:_wrong_Ed25519_public_key_sizex509:_invalid_authority_info_accesscrypto_md5:_invalid_hash_state_sizereflect.MakeSlice_of_non_slice_typeflate:_corrupt_input_before_offset_xml:_comments_must_not_contain_____attribute_name_without__in_elementmime:_bogus_characters_after___:__qtoo_many_Questions_to_pack___65535_file_type_does_not_support_deadlinehpack:_invalid_Huffman_encoded_datadynamic_table_size_update_too_largeP224_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_inputReserved_for_backward_compatibility_d_extra_bits_on_block__shou
mov dword [esp], eax
mov dword [esp + 4], 0x22
lea eax, [esp + 0x44]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.00535230
mov eax, dword [esp + 0x14]
test eax, eax
je 0x603e40
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00438c00
call fcn.00469750
lea eax, [0x8d9c60]
mov dword [esp], eax
lea eax, [0xa2c810]
mov dword [esp + 4], eax
call fcn.00438c00
nop
call fcn.00468280
jmp fcn.00603a70