Function at 0x58c980
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x694317
mov eax, dword fs:[0]
push eax
sub esp, 0x130
mov eax, dword [0x78f694]
xor eax, esp
mov dword [esp + 0x12c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x78f694]
xor eax, esp
push eax
lea eax, [esp + 0x144]
mov dword fs:[0], eax
mov esi, dword [esp + 0x164]
movzx edx, byte [esi + 0x122]
mov eax, dword [esp + 0x158]
mov ebx, dword [esp + 0x154]
mov ebp, ecx
mov ecx, dword [esp + 0x160]
push edx
push str.readTlsRecord
mov dword [esp + 0x24], ecx
push esi
lea ecx, [esp + 0x50]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], eax
call fcn.004b1880
xor edi, edi
lea ecx, [ebx + 0x49c]
mov dword [esp + 0x14c], edi
mov dword [ebx + 0x470], edi
mov dword [ebx + 0x474], edi
mov dword [ebx + 0x478], edi
mov byte [ebx + 0x47c], 0
call fcn.00467d60
lea ecx, [ebx + 0x480]
call fcn.00467d60
lea ecx, [ebx + 0x4b8]
call fcn.00467d60
lea ebx, [ebp + 0x78]
mov ecx, ebx
mov dword [esp + 0x60], edi
call fcn.00467d60
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x15c]
lea eax, [esp + 0x60]
push eax
push esi
push edi
push ecx
mov ecx, dword [esp + 0x30]
push ebx
push 5
call fcn.005a7970
test al, al
mov byte [esp + 0x14], al
je 0x58dce9
mov ecx, ebx
call fcn.00544a30
cmp eax, 5
jne 0x58dce9
mov ecx, ebx
call fcn.00467d80
mov edi, eax
mov cl, byte [edi]
test cl, cl
jns 0x58cf86
cmp byte [edi + 2], 1
jne 0x58cf86
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Received_SSL_2.0_ClientHello.
mov ecx, esi
call eax
cmp byte [edi + 2], 1
jne 0x58cae9
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Cannot_accept_SSL_2.0_connections.
mov ecx, esi
call eax
mov ecx, dword [esp + 0x20]
push esi
mov esi, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
push 0x47
push esi
call fcn.00582ad0
mov dword [esi + 0x28], 0x7d
jmp 0x58dd56
movzx eax, byte [edi]
movzx edx, byte [edi + 1]
and eax, 0x7f
shl eax, 8
or eax, edx
cmp byte [esi + 0x122], 0
mov dword [esp + 0x2c], eax
je 0x58cb16
push eax
push str.recLen
mov ecx, esi
call fcn.004b14c0
mov eax, dword [esp + 0x2c]
test byte [edi], 0x80
mov cl, byte [edi + 3]
mov dword [esp + 0x34], 2
jne 0x58cb66
cmp byte [esi + 0x122], 0
mov dl, byte [edi + 4]
mov byte [esp + 0x28], cl
movzx ecx, byte [edi + 2]
mov byte [esp + 0x29], dl
mov dword [esp + 0x6c], ecx
lea edi, [eax - 2]
je 0x58cba9
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.3_byte_record_header...
mov ecx, esi
call eax
mov ecx, dword [esp + 0x6c]
push ecx
push str.paddingLen
mov ecx, esi
call fcn.004b14c0
jmp 0x58cb9c
cmp byte [esi + 0x122], 0
movzx edx, byte [edi + 2]
mov byte [esp + 0x28], dl
movzx edx, byte [edi + 4]
mov byte [esp + 0x29], cl
mov byte [esp + 0x2a], dl
lea edi, [eax - 3]
mov dword [esp + 0x34], 3
je 0x58cba9
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
push str.2_byte_record_header...
mov ecx, esi
call edx
push edi
push str.nToRead
mov ecx, esi
call fcn.004b14c0
mov ecx, ebx
call fcn.00467d60
mov eax, dword [esp + 0x34]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, ebx
call fcn.00469150
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x15c]
lea edx, [esp + 0x60]
push edx
push esi
push eax
push ecx
mov ecx, dword [esp + 0x30]
push ebx
push edi
call fcn.005a7970
test al, al
mov byte [esp + 0x14], al
je 0x58cf43
mov ecx, ebx
call fcn.00544a30
cmp eax, dword [esp + 0x2c]
jne 0x58cf43
mov ecx, ebx
call fcn.00467d80
mov edi, eax
mov eax, dword [esp + 0x18]
push ebx
lea ecx, [eax + 0x2e8]
mov byte [eax + 0x4d4], 1
call fcn.0046ad20
cmp byte [esi + 0x122], 0
je 0x58cc41
mov ecx, ebx
call fcn.00544a30
push eax
mov ecx, ebx
call fcn.00467d80
push eax
push str.fullRecord
mov ecx, esi
call fcn.004b0960
mov eax, dword [esp + 0x18]
lea ecx, [eax + 0x470]
mov dword [ecx], 0x16
movzx edx, byte [edi + 1]
mov dword [esp + 0x3c], ecx
lea ecx, [eax + 0x474]
mov dword [esp + 0x38], ecx
mov dword [ecx], edx
movzx ecx, byte [edi + 2]
add eax, 0x478
mov dword [esp + 0x30], eax
mov dword [eax], ecx
call fcn.00584480
mov ebx, eax
test ebx, ebx
je 0x58dd56
lea ecx, [esp + 0x74]
call fcn.0048eb70
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x7c], ebx
mov dword [ebx + 0x2c], eax
mov edx, dword [ecx]
mov dword [ebx + 0x30], edx
add edi, 3
xor eax, eax
mov ah, byte [edi]
xor ecx, ecx
mov ch, byte [edi + 2]
xor edx, edx
cmp byte [esi + 0x122], 0
mov dh, byte [edi + 4]
mov byte [esp + 0x14c], 1
mov al, byte [edi + 1]
mov cl, byte [edi + 3]
mov dl, byte [edi + 5]
mov dword [esp + 0x64], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], edx
je 0x58cd08
push eax
push str.cipherListLen
mov ecx, esi
call fcn.004b14c0
mov ecx, dword [esp + 0x2c]
push ecx
push str.sessionIdLen
mov ecx, esi
call fcn.004b14c0
mov edx, dword [esp + 0x34]
push edx
push str.challengeLen
mov ecx, esi
call fcn.004b14c0
mov ecx, dword [esp + 0x64]
lea eax, [ecx - 3]
cmp eax, 0xbd
ja 0x58cf39
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
jne 0x58cf39
cmp dword [esp + 0x2c], 0x20
jbe 0x58cd6f
push str.Invalid_session_ID_length
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push esi
push ecx
push 0xa
push edx
mov ecx, dword [esp + 0x28]
call fcn.00582ad0
lea ecx, [esp + 0x74]
mov byte [esp + 0x14c], 0
call fcn.0048ee60
jmp 0x58dd56
mov eax, dword [esp + 0x34]
add eax, 0xfffffff8
cmp eax, 0x18
ja 0x58cf19
add edi, 6
test edx, edx
jbe 0x58ce73
mov dword [esp + 0x54], edi
mov dword [esp + 0x6c], edx
cmp byte [esi + 0x122], 0
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x54]
mov eax, 2
movzx eax, byte [eax + ecx]
mov ecx, 1
movzx ecx, byte [ecx + edx]
mov ch, byte [edx]
mov dword [esp + 0x68], eax
mov dword [esp + 0x50], ecx
je 0x58cde1
push eax
push str.cipherKind
mov ecx, esi
call fcn.004b14c0
mov ecx, dword [esp + 0x50]
push ecx
push str.key_len
mov ecx, esi
call fcn.004b14c0
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x50], 0
mov byte [esp + 0x40], 0
mov byte [esp + 0x41], 4
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 5
mov byte [esp + 0x14], 0
mov byte [esp + 0x15], 0xa
mov byte [esp + 0x5c], 0
mov byte [esp + 0x5d], 0x2f
mov byte [esp + 0x58], 0
mov byte [esp + 0x59], 0x35
jne 0x58ce63
cmp eax, 4
jne 0x58ce28
push 2
lea edx, [esp + 0x44]
push edx
jmp 0x58ce5b
cmp eax, 5
jne 0x58ce33
lea eax, [esp + 0x24]
jmp 0x58ce58
cmp eax, 0xa
jne 0x58ce41
push 2
lea ecx, [esp + 0x18]
push ecx
jmp 0x58ce5b
cmp eax, 0x2f
jne 0x58ce4f
push 2
lea edx, [esp + 0x60]
push edx
jmp 0x58ce5b
cmp eax, 0x35
jne 0x58ce63
lea eax, [esp + 0x58]
push 2
push eax
lea ecx, [ebx + 0x6c]
call fcn.00469150
add dword [esp + 0x54], 3
sub dword [esp + 0x6c], 1
jne 0x58cd92
mov ecx, dword [esp + 0x2c]
add edi, dword [esp + 0x64]
push ecx
push edi
lea ecx, [ebx + 0x50]
call fcn.00469150
mov edx, dword [esp + 0x34]
add edi, dword [esp + 0x2c]
push edx
push edi
lea ecx, [ebx + 0x34]
call fcn.00469150
push 0
lea ecx, [ebx + 0x88]
call fcn.00468d30
lea ecx, [esp + 0x80]
call fcn.00468060
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + 0x81]
movzx edx, byte [eax + 0xb3]
push esi
lea edi, [eax + 0x480]
push edi
push ecx
push edx
lea ecx, [eax + 0x12c]
push ecx
lea edx, [esp + 0x94]
push edx
push 0
push 0
push eax
mov ecx, ebx
mov byte [esp + 0x170], 2
call fcn.00580d50
lea ecx, [esp + 0x80]
mov byte [esp + 0x14c], 1
call fcn.00468860
lea ecx, [esp + 0x74]
mov byte [esp + 0x14c], 0
call fcn.0048ee60
jmp 0x58d12c
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Invalid_challenge_length
mov ecx, esi
call edx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push esi
push eax
push 0xa
push ecx
jmp 0x58cd50
push str.Invalid_cipher_list_length
jmp 0x58cd3a
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Failed_to_read_TLS_record__1_
mov ecx, esi
call edx
movzx eax, byte [esp + 0x14]
push eax
push 0x6d92f4
mov ecx, esi
call fcn.004b14c0
mov ecx, dword [esp + 0x2c]
push ecx
push str.recLen
mov ecx, esi
call fcn.004b14c0
mov ecx, ebx
call fcn.00544a30
push eax
push str.dbSize
jmp 0x58dd4f
mov eax, dword [esp + 0x18]
lea edx, [eax + 0x470]
movzx ecx, cl
mov dword [edx], ecx
lea ebx, [eax + 0x474]
mov dword [esp + 0x3c], edx
movzx edx, byte [edi + 1]
mov dword [ebx], edx
movzx ecx, byte [edi + 2]
add eax, 0x478
mov dword [eax], ecx
movzx edx, byte [edi + 4]
mov dword [esp + 0x30], eax
movzx eax, byte [edi + 3]
and eax, 0x7f
shl eax, 8
or eax, edx
cmp byte [esi + 0x122], 0
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2c], eax
je 0x58d0de
mov eax, dword [ebx]
cmp eax, 3
jne 0x58d02e
test ecx, ecx
jne 0x58cfeb
mov edi, str.SSL_3.0
jmp 0x58d052
cmp eax, 3
jne 0x58d02e
cmp ecx, 1
jne 0x58cffc
mov edi, str.TLS_1.0
jmp 0x58d052
cmp eax, 3
jne 0x58d02e
cmp ecx, 2
jne 0x58d00d
mov edi, str.TLS_1.1
jmp 0x58d052
cmp eax, 3
jne 0x58d02e
cmp ecx, eax
jne 0x58d01d
mov edi, str.TLS_1.2
jmp 0x58d052
cmp eax, 3
jne 0x58d02e
cmp ecx, 4
jne 0x58d02e
mov edi, str.TLS_1.3
jmp 0x58d052
mov eax, dword [esp + 0x30]
push eax
push ebx
push str.v_d._d
lea ecx, [esp + 0xac]
push 0x20
push ecx
call fcn.004ac070
add esp, 0x14
lea edi, [esp + 0xa0]
mov ebx, dword [esp + 0x3c]
mov eax, dword [ebx]
cmp eax, 0x14
jne 0x58d064
mov eax, str.ChangeCipherSpec
jmp 0x58d0a7
cmp eax, 0x15
jne 0x58d070
mov eax, str.Alert
jmp 0x58d0a7
cmp eax, 0x16
jne 0x58d07c
mov eax, str.Handshake
jmp 0x58d0a7
cmp eax, 0x17
jne 0x58d088
mov eax, str.Application
jmp 0x58d0a7
push ebx
push str.ct_d
lea edx, [esp + 0x88]
push 0x20
push edx
call fcn.004ac050
add esp, 0x10
lea eax, [esp + 0x80]
cmp dword [ebx], 0x17
je 0x58d0de
lea ecx, [esp + 0x2c]
push ecx
push eax
push edi
push str._s___s__sz_d
lea edx, [esp + 0xd0]
push 0x80
push edx
call fcn.004ac0b0
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
add esp, 0x18
lea ecx, [esp + 0xc0]
push ecx
mov ecx, esi
call edx
mov edi, dword [esp + 0x18]
add edi, 0x480
mov ecx, edi
call fcn.00467d60
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x15c]
lea eax, [esp + 0x60]
push eax
mov eax, dword [esp + 0x30]
push esi
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push edi
push eax
call fcn.005a7970
mov bl, al
test bl, bl
je 0x58dc9a
mov ecx, edi
call fcn.00544a30
cmp eax, dword [esp + 0x2c]
jne 0x58dc9a
mov ecx, dword [esp + 0x3c]
cmp dword [ecx], 0x14
mov ebx, dword [esp + 0x18]
jne 0x58d149
cmp dword [ebx + 0x40], 3
jne 0x58d149
cmp dword [ebx + 0x44], 4
je 0x58dc7f
cmp byte [ebp + 0x98], 0
je 0x58d990
lea ecx, [esp + 0x80]
call fcn.00468060
cmp dword [ebx + 0x40], 3
mov byte [esp + 0x14c], 3
jne 0x58d17e
cmp dword [ebx + 0x44], 4
jne 0x58d17e
mov bl, 1
mov byte [esp + 0x14], bl
jmp 0x58d187
mov byte [esp + 0x14], 0
mov bl, byte [esp + 0x14]
mov eax, dword [ebp + 0xac]
cmp eax, 6
jne 0x58d458
test bl, bl
mov dword [esp + 0x6c], 0x18
je 0x58d1aa
mov dword [esp + 0x6c], 0x10
mov ecx, edi
call fcn.00544a30
mov ebx, eax
lea ecx, [ebp + 0x694]
mov dword [esp + 0x50], ebx
call fcn.00467d60
cmp ebx, dword [esp + 0x6c]
jae 0x58d212
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.GCM_fragment_not_large_enough.
mov ecx, esi
call eax
push ebx
push str.tlsMsgLen
mov ecx, esi
call fcn.004b14c0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push esi
push ecx
push 0x14
push edx
mov ecx, dword [esp + 0x28]
call fcn.00582ad0
lea ecx, [esp + 0x80]
mov byte [esp + 0x14c], 0
call fcn.00468860
jmp 0x58dd56
mov ecx, edi
call fcn.00544a30
cmp byte [esp + 0x14], 0
mov ebx, eax
jne 0x58d239
push 8
lea eax, [ebp + 0xec]
push eax
lea ecx, [ebp + 0x694]
sub ebx, 0x18
call fcn.00469150
mov ecx, dword [esp + 0x3c]
mov dl, byte [ecx]
mov eax, dword [esp + 0x38]
mov cl, byte [eax]
mov byte [esp + 0x6d], cl
mov byte [esp + 0x6c], dl
mov edx, dword [esp + 0x30]
mov al, byte [edx]
mov ecx, ebx
shr ecx, 8
push 5
lea edx, [esp + 0x70]
mov byte [esp + 0x73], cl
push edx
lea ecx, [ebp + 0x694]
mov byte [esp + 0x76], al
mov byte [esp + 0x78], bl
call fcn.00469150
cmp byte [esi + 0x123], 0
je 0x58d292
lea eax, [ebp + 0x694]
push eax
push str.aesGcmAad
mov ecx, esi
call fcn.004b1a90
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x40], 3
jne 0x58d37e
cmp dword [eax + 0x44], 4
jne 0x58d37e
mov ecx, dword [ebp + 0xf0]
mov eax, dword [ebp + 0xec]
mov dword [esp + 0x7c], ecx
lea ebx, [ebp + 0xd0]
mov ecx, ebx
mov byte [esp + 0x74], 0
mov byte [esp + 0x75], 0
mov byte [esp + 0x76], 0
mov byte [esp + 0x77], 0
mov dword [esp + 0x78], eax
call fcn.00544a30
cmp eax, 0xc
je 0x58d30b
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.m_fixedIv_for_TLS_1.3_GCM_should_be_12_bytes
mov ecx, esi
call eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x14c], 0
call fcn.00468860
jmp 0x58dd56
mov ecx, ebx
call fcn.00467d80
mov ebx, eax
lea ecx, [esp + 0x74]
xor edx, edx
sub ebx, ecx
mov dword [esp + 0x6c], ebx
jmp 0x58d326
mov ebx, dword [esp + 0x6c]
lea ecx, [esp + edx + 0x74]
movzx ebx, byte [ebx + ecx]
xor byte [ecx], bl
movzx ebx, byte [edx + eax + 1]
xor byte [ecx + 1], bl
movzx ebx, byte [edx + eax + 2]
xor byte [ecx + 2], bl
movzx ebx, byte [edx + eax + 3]
xor byte [ecx + 3], bl
movzx ebx, byte [edx + eax + 4]
xor byte [ecx + 4], bl
movzx ebx, byte [edx + eax + 5]
xor byte [ecx + 5], bl
add edx, 6
cmp edx, 0xc
jl 0x58d322
cmp byte [esi + 0x123], 0
je 0x58d3c4
push 0xc
lea edx, [esp + 0x78]
push edx
push str.aesGcmNonce
mov ecx, esi
call fcn.004b0960
jmp 0x58d3c4
lea ebx, [ebp + 0xd0]
mov ecx, ebx
call fcn.00544a30
cmp eax, 4
je 0x58d3a3
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.GCM_fixed_IV_not_equal_to_4.
mov ecx, esi
call eax
jmp 0x58d1e3
mov ecx, ebx
call fcn.00467d80
mov eax, dword [eax]
mov ecx, edi
mov dword [esp + 0x74], eax
call fcn.00467d80
mov ecx, dword [eax]
mov dword [esp + 0x78], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x7c], edx
push 0xc
lea eax, [esp + 0x78]
push eax
lea ecx, [ebp + 0x648]
call fcn.00538b90
mov ecx, edi
call fcn.00467d80
mov ecx, dword [esp + 0x50]
lea edx, [eax + ecx - 0x10]
lea ebx, [ebp + 0x6b0]
mov ecx, ebx
mov dword [esp + 0x6c], edx
call fcn.00467d60
mov eax, dword [esp + 0x6c]
push 0x10
push eax
mov ecx, ebx
call fcn.00469150
cmp byte [esi + 0x123], 0
je 0x58d41a
push ebx
push str.expected_aesGcmAuthTag
mov ecx, esi
call fcn.004b1a90
push 0x10
mov ecx, edi
call fcn.00467fc0
push esi
lea eax, [ebp + 0x648]
push eax
lea ecx, [ebp + 0xf8]
push ecx
mov ecx, dword [ebp + 0x6d8]
call fcn.005be060
test al, al
jne 0x58d650
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.GCM_decrypt_setup_failed.
mov ecx, esi
call eax
jmp 0x58d1e3
cmp eax, 7
jne 0x58d654
mov ecx, edi
call fcn.00544a30
cmp eax, 0x10
mov dword [esp + 0x50], eax
jae 0x58d491
push str.AEAD_fragment_not_large_enough.
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
mov ecx, esi
call edx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push esi
push eax
push 0x14
push ecx
jmp 0x58d1f0
lea ecx, [ebp + 0x694]
call fcn.00467d60
mov ecx, edi
call fcn.00544a30
test bl, bl
mov ebx, eax
jne 0x58d4c0
push 8
lea edx, [ebp + 0xec]
push edx
lea ecx, [ebp + 0x694]
sub ebx, 0x10
call fcn.00469150
mov eax, dword [esp + 0x3c]
mov cl, byte [eax]
mov edx, dword [esp + 0x38]
mov al, byte [edx]
mov byte [esp + 0x6c], cl
mov ecx, dword [esp + 0x30]
mov dl, byte [ecx]
mov byte [esp + 0x6d], al
push 5
lea ecx, [esp + 0x70]
mov eax, ebx
shr eax, 8
push ecx
lea ecx, [ebp + 0x694]
mov byte [esp + 0x76], dl
mov byte [esp + 0x77], al
mov byte [esp + 0x78], bl
call fcn.00469150
mov edx, dword [ebp + 0xec]
mov eax, dword [ebp + 0xf0]
lea ebx, [ebp + 0xd0]
mov ecx, ebx
mov byte [esp + 0x74], 0
mov byte [esp + 0x75], 0
mov byte [esp + 0x76], 0
mov byte [esp + 0x77], 0
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
call fcn.00544a30
cmp eax, 0xc
je 0x58d55e
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.m_fixedIv_should_be_12_bytes
mov ecx, esi
call eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x14c], 0
call fcn.00468860
jmp 0x58dd56
mov ecx, ebx
call fcn.00467d80
mov ebx, eax
lea ecx, [esp + 0x74]
xor edx, edx
sub ebx, ecx
mov dword [esp + 0x6c], ebx
jmp 0x58d584
mov ebx, dword [esp + 0x6c]
lea ecx, [esp + edx + 0x74]
movzx ebx, byte [ecx + ebx]
xor byte [ecx], bl
movzx ebx, byte [edx + eax + 1]
xor byte [ecx + 1], bl
movzx ebx, byte [edx + eax + 2]
xor byte [ecx + 2], bl
movzx ebx, byte [edx + eax + 3]
xor byte [ecx + 3], bl
movzx ebx, byte [edx + eax + 4]
xor byte [ecx + 4], bl
movzx ebx, byte [edx + eax + 5]
xor byte [ecx + 5], bl
add edx, 6
cmp edx, 0xc
jl 0x58d580
push 0xc
lea edx, [esp + 0x78]
lea ebx, [ebp + 0x648]
push edx
mov ecx, ebx
call fcn.00538b90
mov ecx, edi
call fcn.00467d80
mov ecx, dword [esp + 0x50]
lea edx, [eax + ecx - 0x10]
lea ecx, [ebp + 0x6b0]
mov dword [esp + 0x6c], edx
call fcn.00467d60
mov eax, dword [esp + 0x6c]
push 0x10
push eax
lea ecx, [ebp + 0x6b0]
call fcn.00469150
push 0x10
mov ecx, edi
call fcn.00467fc0
mov ecx, dword [ebp + 0x6d8]
mov edx, dword [ecx]
push esi
lea eax, [ebp + 0xf8]
push eax
mov eax, dword [edx + 0xc]
push ebx
push 0
call eax
mov ecx, dword [ebp + 0x6d8]
mov edx, dword [ecx]
push esi
push ebx
lea eax, [ebp + 0xf8]
push eax
mov eax, dword [edx + 0x2c]
call eax
test al, al
jne 0x58d650
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.AEAD_decrypt_setup_failed.
mov ecx, esi
call eax
jmp 0x58d1e3
mov bl, byte [esp + 0x14]
mov al, byte [esi + 0x121]
mov cl, byte [esi + 0x122]
mov byte [esi + 0x121], cl
cmp dword [ebp + 0xac], 6
mov byte [esp + 0x40], al
push esi
jne 0x58d76c
test bl, bl
lea ebx, [ebp + 0x648]
je 0x58d74a
lea edx, [esp + 0x84]
push edx
mov ecx, edi
call fcn.00544a30
push eax
mov ecx, edi
call fcn.00467d80
mov ecx, dword [ebp + 0x6d8]
push eax
push ebx
lea eax, [ebp + 0xf8]
push eax
call fcn.00538ed0
lea ecx, [esp + 0x80]
mov byte [esp + 0x14], al
call fcn.00544a30
test eax, eax
jbe 0x58d6fe
jmp 0x58d6d0
lea ecx, [esp + 0x80]
call fcn.00467e10
test al, al
jne 0x58d6fe
push 1
lea ecx, [esp + 0x84]
call fcn.00467fc0
lea ecx, [esp + 0x80]
call fcn.00544a30
test eax, eax
ja 0x58d6d0
lea ecx, [esp + 0x80]
call fcn.00467e10
mov byte [esp + 0x24], al
sub al, 0x14
cmp al, 3
jbe 0x58d804
push str.Invalid_TLS_1.3_actual_content_type..
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
movzx ecx, byte [esp + 0x24]
push ecx
push str.actualContentType
mov ecx, esi
call fcn.004b14c0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push esi
push edx
push 0x14
push eax
jmp 0x58d1f0
lea ecx, [esp + 0x84]
push ecx
mov ecx, edi
call fcn.00544a30
sub eax, 8
push eax
mov ecx, edi
call fcn.00467d80
add eax, 8
jmp 0x58d854
test bl, bl
lea ebx, [ebp + 0x648]
je 0x58d83d
lea edx, [esp + 0x84]
push edx
mov ecx, edi
call fcn.00544a30
push eax
mov ecx, edi
call fcn.00467d80
mov ecx, dword [ebp + 0x6d8]
push eax
push ebx
lea eax, [ebp + 0xf8]
push eax
call fcn.00538ed0
lea ecx, [esp + 0x80]
mov byte [esp + 0x14], al
call fcn.00544a30
test eax, eax
jbe 0x58d7ee
lea esp, [esp]
lea ecx, [esp + 0x80]
call fcn.00467e10
test al, al
jne 0x58d7ee
push 1
lea ecx, [esp + 0x84]
call fcn.00467fc0
lea ecx, [esp + 0x80]
call fcn.00544a30
test eax, eax
ja 0x58d7c0
lea ecx, [esp + 0x80]
call fcn.00467e10
mov byte [esp + 0x24], al
sub al, 0x14
cmp al, 3
ja 0x58d833
push 1
lea ecx, [esp + 0x84]
call fcn.00467fc0
movzx eax, byte [esp + 0x24]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov dword [edx], 3
mov dword [eax], 4
jmp 0x58d86c
push str.Invalid_TLS_1.3_actual_content_type.
jmp 0x58d71d
lea ecx, [esp + 0x84]
push ecx
mov ecx, edi
call fcn.00544a30
push eax
mov ecx, edi
call fcn.00467d80
mov ecx, dword [ebp + 0x6d8]
push eax
push ebx
lea eax, [ebp + 0xf8]
push eax
call fcn.00538ed0
mov byte [esp + 0x14], al
cmp byte [esp + 0x14], 0
mov dl, byte [esp + 0x40]
mov byte [esi + 0x121], dl
jne 0x58d887
push str.Failed_to_decrypt_SSL_TLS_record.
jmp 0x58d476
mov eax, dword [ebp + 0xac]
cmp eax, 6
jne 0x58d935
mov ecx, dword [ebp + 0x6d8]
push esi
push ebx
lea eax, [ebp + 0xf8]
push eax
call fcn.005be0e0
test al, al
jne 0x58d8c1
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.GCM_decrypt_finalize_failed.
mov ecx, esi
call eax
jmp 0x58d1e3
cmp byte [esi + 0x123], 0
je 0x58d8d8
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
push str.gcm_decrypt_finalize_success.
mov ecx, esi
call edx
lea eax, [esp + 0x80]
push eax
mov ecx, edi
call fcn.00468c40
mov ebx, dword [esp + 0x18]
mov byte [ebx + 0x47c], 1
mov eax, dword [ebp + 0xac]
cmp eax, 6
je 0x58d97c
cmp eax, 0x63
je 0x58d97c
cmp eax, 7
je 0x58d97c
push esi
mov ecx, edi
call fcn.004699c0
test al, al
jne 0x58d967
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Invalid_block_cipher_padding_detected.
mov ecx, esi
call eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push esi
push ecx
push 0x14
push edx
mov ecx, ebx
jmp 0x58d1f4
cmp eax, 7
jne 0x58d8d8
mov ecx, dword [ebp + 0x6d8]
mov edx, dword [ecx]
push esi
push ebx
lea eax, [ebp + 0xf8]
push eax
mov eax, dword [edx + 0x30]
call eax
test al, al
jne 0x58d8d8
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.AEAD_decrypt_finalize_failed.
mov ecx, esi
call eax
jmp 0x58d1e3
mov ecx, edi
call fcn.00467e10
movzx eax, al
add eax, 1
push eax
mov ecx, edi
call fcn.00467fc0
lea ecx, [esp + 0x80]
mov byte [esp + 0x14c], 0
call fcn.00468860
mov eax, dword [ebp + 0xac]
cmp eax, 6
je 0x58dc5e
cmp eax, 7
je 0x58dc5e
mov eax, dword [ebp + 0xb0]
test eax, eax
je 0x58dc5e
cmp eax, 1
mov dword [esp + 0x28], 0x10
jne 0x58d9cd
mov dword [esp + 0x28], 0x14
jmp 0x58d9e9
cmp eax, 7
jne 0x58d9dc
mov dword [esp + 0x28], 0x20
jmp 0x58d9e9
cmp eax, 2
jne 0x58d9e9
mov dword [esp + 0x28], 0x30
mov ecx, edi
call fcn.00544a30
mov ebx, eax
cmp ebx, dword [esp + 0x28]
jae 0x58da21
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.SSL_TLS_record_shorter_than_MAC_length_
mov ecx, esi
call edx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push esi
push eax
push 0x14
push ecx
mov ecx, dword [esp + 0x28]
call fcn.00582ad0
jmp 0x58dd56
lea ecx, [esp + 0xa0]
call fcn.00468060
mov eax, dword [esp + 0x28]
push eax
sub ebx, eax
push ebx
push edi
lea ecx, [esp + 0xac]
mov byte [esp + 0x158], 4
call fcn.0046ad40
mov edx, dword [esp + 0x28]
push edx
mov ecx, edi
call fcn.00467fc0
mov eax, dword [esp + 0x38]
cmp dword [eax], 3
mov dword [esp + 0x34], 0
jne 0x58db00
mov ecx, dword [esp + 0x30]
cmp dword [ecx], 2
jl 0x58db00
cmp dword [ebp + 0xc4], 0
jbe 0x58db00
mov ecx, edi
call fcn.00544a30
cmp eax, dword [ebp + 0xc4]
jb 0x58dac9
mov ebx, dword [ebp + 0xc4]
push esi
lea edx, [esp + 0xc4]
push edx
mov ecx, edi
call fcn.00544a30
sub eax, ebx
push eax
push ebx
mov ecx, edi
call fcn.00467db0
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
mov eax, dword [edx]
push ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
push eax
push edx
jmp 0x58db2e
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Message_not_long_enough_for_the_MAC.
mov ecx, esi
call edx
mov ecx, edi
call fcn.00544a30
push eax
push str.tlsMsgSize
mov ecx, esi
call fcn.004b14c0
mov eax, dword [ebp + 0xc4]
push eax
push str.cipherSuiteRecordIvLen
mov ecx, esi
call fcn.004b14c0
jmp 0x58db3b
push esi
lea ecx, [esp + 0xc4]
push ecx
mov ecx, edi
call fcn.00544a30
push eax
mov ecx, edi
call fcn.00467d80
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
push eax
mov eax, dword [edx]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
push edx
push ecx
push 0
mov ecx, ebp
call fcn.00581c80
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x28]
lea ecx, [esp + 0xa0]
lea ebx, [esp + 0xc0]
call fcn.00467d80
cmp edi, 4
jb 0x58db6b
mov edx, dword [eax]
cmp edx, dword [ebx]
jne 0x58db6f
sub edi, 4
add ebx, 4
add eax, 4
cmp edi, 4
jae 0x58db57
test edi, edi
je 0x58dbcc
movzx ecx, byte [eax]
movzx edx, byte [ebx]
sub ecx, edx
jne 0x58dbbe
sub edi, 1
add ebx, 1
add eax, 1
test edi, edi
je 0x58dbcc
movzx ecx, byte [eax]
movzx edx, byte [ebx]
sub ecx, edx
jne 0x58dbbe
sub edi, 1
add ebx, 1
add eax, 1
test edi, edi
je 0x58dbcc
movzx ecx, byte [eax]
movzx edx, byte [ebx]
sub ecx, edx
jne 0x58dbbe
sub edi, 1
add ebx, 1
add eax, 1
test edi, edi
je 0x58dbcc
movzx ecx, byte [eax]
movzx eax, byte [ebx]
sub ecx, eax
je 0x58dbcc
test ecx, ecx
mov eax, 1
jg 0x58dbce
or eax, 0xffffffff
jmp 0x58dbce
xor eax, eax
test eax, eax
je 0x58dc4a
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Invalid_MAC
mov ecx, esi
call eax
mov ecx, dword [esp + 0x28]
push ecx
push str.macLen
mov ecx, esi
call fcn.004b14c0
mov edx, dword [esp + 0x34]
push edx
push str.macLen2
mov ecx, esi
call fcn.004b14c0
lea ecx, [esp + 0xa0]
call fcn.00544a30
push eax
push str.dbMacSize
mov ecx, esi
call fcn.004b14c0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push esi
push eax
push 0x14
push ecx
mov ecx, dword [esp + 0x28]
call fcn.00582ad0
lea ecx, [esp + 0xa0]
mov byte [esp + 0x14c], 0
call fcn.00468860
jmp 0x58dd56
lea ecx, [esp + 0xa0]
mov byte [esp + 0x14c], 0
call fcn.00468860
mov ecx, 0xffffff14
lea eax, [ebp + 0xf3]
sub ecx, ebp
jmp 0x58dc70
add byte [eax], 1
jne 0x58dc7f
sub eax, 1
lea edx, [ecx + eax]
test edx, edx
jge 0x58dc70
lea ecx, [esp + 0x44]
mov dword [esp + 0x14c], 0xffffffff
call fcn.004b18c0
mov al, 1
jmp 0x58dd6c
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Failed_to_read_TLS_record__2_
mov ecx, esi
call edx
mov ecx, edi
call fcn.00544a30
push eax
push str.tlsRec_msg
mov ecx, esi
call fcn.004b14c0
mov eax, dword [esp + 0x2c]
push eax
push str.msgLen
mov ecx, esi
call fcn.004b14c0
mov ecx, dword [esp + 0x60]
push ecx
push str.nReadNBytes
mov ecx, esi
call fcn.004b14c0
movzx edx, bl
push edx
push str.status
jmp 0x58dd4f
mov ecx, edi
call fcn.00512060
test al, al
je 0x58dcfd
cmp byte [edi + 0xac], 0
je 0x58dd56
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Failed_to_read_beginning_of_SSL_TLS_record.
mov ecx, esi
call edx
movzx eax, byte [esp + 0x14]
push eax
push 0x6d92f4
mov ecx, esi
call fcn.004b14c0
mov ecx, ebx
call fcn.00544a30
push eax
push str.dbSize
mov ecx, esi
call fcn.004b14c0
mov ecx, dword [esp + 0x60]
push ecx
push str.nReadNBytes
mov ecx, esi
call fcn.004b14c0
mov edx, dword [esp + 0x15c]
push edx
push str.idleTimeoutMs
mov ecx, esi
call fcn.004b14c0
lea ecx, [esp + 0x44]
mov dword [esp + 0x14c], 0xffffffff
call fcn.004b18c0
xor al, al
mov ecx, dword [esp + 0x144]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x12c]
xor ecx, esp
call fcn.0062cbd3
add esp, 0x13c
ret 0x14