Function at 0x58d830
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x638620
mov eax, dword fs:[0]
push eax
sub esp, 0x178
mov eax, dword [0x717f80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x158], ecx
mov edi, dword [ebp + 0x18]
lea ecx, [ebp - 0x13c]
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
mov esi, dword [ebp + 8]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x15c], eax
movzx eax, byte [edi + 0x12a]
push eax
push str.readTlsRecord
push edi
mov dword [ebp - 0x17c], esi
mov dword [ebp - 0x174], edi
movq qword [ebp - 0x13c], xmm0
mov dword [ebp - 0x134], 0
call fcn.004b24c0
lea ecx, [esi + 0x4ec]
mov dword [ebp - 4], 0
mov dword [esi + 0x4c0], 0
mov dword [esi + 0x4c4], 0
mov dword [esi + 0x4c8], 0
mov byte [esi + 0x4cc], 0
call fcn.004a0bb0
lea ecx, [esi + 0x4d0]
call fcn.004a0bb0
lea ecx, [esi + 0x508]
call fcn.004a0bb0
mov eax, dword [ebp - 0x158]
add eax, 0x78
mov dword [ebp - 0x150], 0
mov ecx, eax
mov dword [ebp - 0x130], eax
call fcn.004a0bb0
mov ecx, dword [ebp - 0x160]
lea eax, [ebp - 0x150]
push eax
push edi
push dword [ebp - 0x15c]
push dword [ebp + 0x10]
push dword [ebp - 0x130]
push 5
call fcn.005dea00
mov byte [ebp - 0x12b], al
test al, al
je 0x58ed07
mov ecx, dword [ebp - 0x130]
call fcn.0046e290
cmp eax, 5
jne 0x58ed07
mov ecx, dword [ebp - 0x130]
call fcn.004a2ca0
mov edx, eax
mov dword [ebp - 0x128], edx
mov al, byte [edx]
lea ecx, [edx + 2]
mov dword [ebp - 0x164], ecx
test al, al
jns 0x58df53
cmp byte [ecx], 1
jne 0x58df53
mov eax, dword [edi]
mov ecx, edi
push str.Received_SSL_2.0_ClientHello.
call dword [eax + 0x18]
mov eax, dword [ebp - 0x164]
cmp byte [eax], 1
jne 0x58d9dd
mov eax, dword [edi]
mov ecx, edi
push str.Cannot_accept_SSL_2.0_connections.
call dword [eax + 0x14]
push edi
push dword [ebp - 0x160]
mov edi, dword [ebp - 0x15c]
mov ecx, esi
push 0x47
push edi
call fcn.0059fe70
mov dword [edi + 0x2c], 0x7d
jmp 0x58edb7
mov edx, dword [ebp - 0x128]
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
and ecx, 0x7f
shl ecx, 8
or ecx, eax
cmp byte [edi + 0x12a], 0
mov dword [ebp - 0x170], ecx
je 0x58da1a
push ecx
push str.recLen
mov ecx, edi
call fcn.004b2d90
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x128]
cmp byte [edx], 0
mov dword [ebp - 0x16c], 2
jl 0x58da77
cmp byte [edi + 0x12a], 0
mov al, byte [edx + 3]
mov byte [ebp - 0x140], al
mov al, byte [edx + 4]
mov byte [ebp - 0x13f], al
movzx eax, byte [edx + 2]
mov dword [ebp - 0x164], eax
lea eax, [ecx - 2]
mov dword [ebp - 0x128], eax
je 0x58dacc
mov eax, dword [edi]
mov ecx, edi
push str.3_byte_record_header...
call dword [eax + 0x18]
push dword [ebp - 0x164]
mov ecx, edi
push str.paddingLen
call fcn.004b2d90
jmp 0x58daba
cmp byte [edi + 0x12a], 0
mov al, byte [edx + 2]
mov byte [ebp - 0x140], al
mov al, byte [edx + 3]
mov byte [ebp - 0x13f], al
mov al, byte [edx + 4]
mov byte [ebp - 0x13e], al
lea eax, [ecx - 3]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x16c], 3
je 0x58dacc
mov eax, dword [edi]
mov ecx, edi
push str.2_byte_record_header...
call dword [eax + 0x18]
push dword [ebp - 0x128]
mov ecx, edi
push str.nToRead
call fcn.004b2d90
mov ecx, dword [ebp - 0x130]
call fcn.004a0bb0
push dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x130]
lea eax, [ebp - 0x140]
push eax
call fcn.0049f210
mov ecx, dword [ebp - 0x160]
lea eax, [ebp - 0x150]
push eax
mov eax, dword [ebp + 0x10]
push edi
push dword [ebp - 0x15c]
push eax
push dword [ebp - 0x130]
push dword [ebp - 0x128]
call fcn.005dea00
mov byte [ebp - 0x151], al
test al, al
je 0x58df04
mov ecx, dword [ebp - 0x130]
call fcn.0046e290
cmp eax, dword [ebp - 0x170]
jne 0x58df04
mov ecx, dword [ebp - 0x130]
call fcn.004a2ca0
push dword [ebp - 0x130]
lea ecx, [esi + 0x324]
mov dword [ebp - 0x168], eax
mov byte [esi + 0x524], 1
call fcn.0049f1b0
cmp byte [edi + 0x12a], 0
je 0x58db93
mov ecx, dword [ebp - 0x130]
call fcn.0046e290
mov ecx, dword [ebp - 0x130]
push eax
call fcn.004a2ca0
push eax
push str.fullRecord
mov ecx, edi
call fcn.004b2b40
mov ecx, dword [ebp - 0x168]
mov dword [esi + 0x4c0], 0x16
movzx eax, byte [ecx + 1]
mov dword [esi + 0x4c4], eax
movzx eax, byte [ecx + 2]
mov dword [esi + 0x4c8], eax
call fcn.0058c2e0
mov dword [ebp - 0x16c], eax
test eax, eax
je 0x58edb7
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x24]
movq qword [ebp - 0x24], xmm0
call fcn.00470f90
mov ecx, dword [ebp - 0x16c]
mov eax, dword [esi + 0x4c4]
mov dword [ebp - 0x1c], ecx
mov byte [ebp - 4], 1
mov dword [ecx + 0x2c], eax
mov eax, dword [esi + 0x4c8]
mov dword [ecx + 0x30], eax
mov ecx, dword [ebp - 0x168]
add ecx, 3
mov dword [ebp - 0x168], ecx
movzx edx, byte [ecx]
movzx eax, byte [ecx + 1]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 2]
shl eax, 8
mov dword [ebp - 0x178], eax
movzx eax, byte [ecx + 3]
or dword [ebp - 0x178], eax
movzx eax, byte [ecx + 4]
shl eax, 8
mov dword [ebp - 0x128], eax
movzx eax, byte [ecx + 5]
or dword [ebp - 0x128], eax
cmp byte [edi + 0x12a], 0
mov dword [ebp - 0x170], edx
je 0x58dc8f
push edx
push str.cipherListLen
mov ecx, edi
call fcn.004b2d90
push dword [ebp - 0x178]
mov ecx, edi
push str.sessionIdLen
call fcn.004b2d90
push dword [ebp - 0x128]
mov ecx, edi
push str.challengeLen
call fcn.004b2d90
mov edx, dword [ebp - 0x170]
lea eax, [edx - 3]
cmp eax, 0xbd
ja 0x58defa
mov ecx, dword [ebp - 0x170]
mov eax, 0xaaaaaaab
mul edx
shr edx, 1
mov dword [ebp - 0x164], edx
lea eax, [edx + edx*2]
sub ecx, eax
jne 0x58defa
cmp dword [ebp - 0x178], 0x20
jbe 0x58dcf5
push str.Invalid_session_ID_length
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
push edi
push dword [ebp - 0x160]
mov ecx, esi
push 0xa
push dword [ebp - 0x15c]
call fcn.0059fe70
lea ecx, [ebp - 0x24]
call fcn.00471060
jmp 0x58edb7
mov eax, dword [ebp - 0x128]
add eax, 0xfffffff8
cmp eax, 0x18
ja 0x58def0
mov eax, dword [ebp - 0x168]
add eax, 6
mov dword [ebp - 0x168], eax
test edx, edx
je 0x58de2a
mov esi, dword [ebp - 0x16c]
inc eax
mov dword [ebp - 0x180], eax
nop dword [eax + eax]
mov cl, byte [eax + 1]
movzx edx, cl
mov dword [ebp - 0x18], edx
movzx edx, byte [eax - 1]
movzx eax, byte [eax]
shl edx, 8
or edx, eax
mov byte [ebp - 0x151], cl
cmp byte [edi + 0x12a], 0
mov dword [ebp - 0x184], edx
je 0x58dd87
push dword [ebp - 0x18]
mov ecx, edi
push str.cipherKind
call fcn.004b2d90
push dword [ebp - 0x184]
mov ecx, edi
push str.key_len
call fcn.004b2d90
mov cl, byte [ebp - 0x151]
mov edx, dword [ebp - 0x184]
mov word [ebp - 0x12c], 0x400
mov word [ebp - 0x144], 0x500
mov word [ebp - 0x148], 0xa00
mov word [ebp - 0x14c], 0x2f00
mov word [ebp - 0x130], 0x3500
test edx, edx
jne 0x58de02
cmp cl, 4
jne 0x58ddc5
lea eax, [ebp - 0x12c]
jmp 0x58ddf7
cmp cl, 5
jne 0x58ddd2
lea eax, [ebp - 0x144]
jmp 0x58ddf7
cmp cl, 0xa
jne 0x58dddf
lea eax, [ebp - 0x148]
jmp 0x58ddf7
cmp cl, 0x2f
jne 0x58ddec
lea eax, [ebp - 0x14c]
jmp 0x58ddf7
cmp cl, 0x35
jne 0x58de02
lea eax, [ebp - 0x130]
push 2
push eax
lea ecx, [esi + 0x6c]
call fcn.0049f210
mov eax, dword [ebp - 0x180]
add eax, 3
sub dword [ebp - 0x164], 1
mov dword [ebp - 0x180], eax
jne 0x58dd30
mov esi, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x168]
mov ecx, dword [ebp - 0x16c]
add eax, dword [ebp - 0x170]
push dword [ebp - 0x178]
mov dword [ebp - 0x168], eax
push eax
lea ecx, [ecx + 0x50]
call fcn.0049f210
mov ecx, dword [ebp - 0x16c]
mov eax, dword [ebp - 0x168]
push dword [ebp - 0x128]
add eax, dword [ebp - 0x178]
push eax
lea ecx, [ecx + 0x34]
call fcn.0049f210
mov ecx, dword [ebp - 0x16c]
push 0
lea ecx, [ecx + 0x88]
call fcn.0049f460
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.0049ead0
mov ecx, dword [ebp - 0x16c]
lea eax, [esi + 0x4d0]
push edi
push eax
push dword [ebp - 0x15c]
movzx eax, byte [esi + 0x86]
push eax
movzx eax, byte [esi + 0xb8]
push eax
lea eax, [esi + 0x130]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x40]
push eax
push 0
push 0
push esi
call fcn.00589850
lea ecx, [ebp - 0x40]
call fcn.0049ecf0
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.00471060
jmp 0x58e11b
push str.Invalid_challenge_length
jmp 0x58dccb
push str.Invalid_cipher_list_length
jmp 0x58dccb
mov eax, dword [edi]
mov ecx, edi
push str.Failed_to_read_TLS_record__1_
call dword [eax + 0x14]
movzx eax, byte [ebp - 0x151]
mov ecx, edi
push eax
push 0x67c638
call fcn.004b2d90
push dword [ebp - 0x170]
mov ecx, edi
push str.recLen
call fcn.004b2d90
mov ecx, dword [ebp - 0x130]
call fcn.0046e290
push eax
push str.dbSize
mov ecx, edi
call fcn.004b2d90
jmp 0x58edb7
movzx eax, al
mov dword [esi + 0x4c0], eax
mov al, byte [edx + 1]
mov byte [ebp - 0x151], al
movzx eax, al
mov dword [esi + 0x4c4], eax
mov al, byte [ecx]
mov byte [ebp - 0x12b], al
movzx eax, al
mov dword [esi + 0x4c8], eax
movzx ecx, byte [edx + 3]
and ecx, 0x7f
mov dword [ebp - 0x18], eax
movzx eax, byte [edx + 4]
shl ecx, 8
or ecx, eax
cmp byte [edi + 0x12a], 0
mov dword [ebp - 0x128], ecx
je 0x58e0c1
cmp byte [ebp - 0x151], 3
jne 0x58e006
cmp dword [ebp - 0x18], 0
jne 0x58dfc0
mov dword [ebp - 0x16c], str.SSL_3.0
jmp 0x58e030
mov al, byte [ebp - 0x12b]
cmp al, 1
jne 0x58dfd6
mov dword [ebp - 0x16c], str.TLS_1.0
jmp 0x58e030
cmp al, 2
jne 0x58dfe6
mov dword [ebp - 0x16c], str.TLS_1.1
jmp 0x58e030
cmp al, 3
jne 0x58dff6
mov dword [ebp - 0x16c], str.TLS_1.2
jmp 0x58e030
cmp al, 4
jne 0x58e006
mov dword [ebp - 0x16c], str.TLS_1.3
jmp 0x58e030
lea eax, [esi + 0x4c8]
push eax
lea eax, [esi + 0x4c4]
push eax
push str.v_d._d
lea eax, [ebp - 0x44]
push 0x20
push eax
call fcn.004b10e0
lea eax, [ebp - 0x44]
add esp, 0x14
mov dword [ebp - 0x16c], eax
mov eax, dword [esi + 0x4c0]
cmp eax, 0x14
jne 0x58e042
mov eax, str.ChangeCipherSpec
jmp 0x58e083
cmp eax, 0x15
jne 0x58e04e
mov eax, str.Alert
jmp 0x58e083
cmp eax, 0x16
jne 0x58e05a
mov eax, str.Handshake
jmp 0x58e083
cmp eax, 0x17
jne 0x58e066
mov eax, str.Application
jmp 0x58e083
lea eax, [esi + 0x4c0]
push eax
push str.ct_d
lea eax, [ebp - 0x64]
push 0x20
push eax
call fcn.004b1040
add esp, 0x10
lea eax, [ebp - 0x64]
cmp dword [esi + 0x4c0], 0x17
je 0x58e0c1
lea ecx, [ebp - 0x128]
push ecx
push eax
push dword [ebp - 0x16c]
lea eax, [ebp - 0x124]
push str._s___s__sz_d
push 0x80
push eax
call fcn.004b1190
mov eax, dword [edi]
lea ecx, [ebp - 0x124]
add esp, 0x18
push ecx
mov ecx, edi
call dword [eax + 0x18]
lea ecx, [esi + 0x4d0]
call fcn.004a0bb0
mov ecx, dword [ebp - 0x160]
lea eax, [ebp - 0x150]
push eax
mov eax, dword [ebp + 0x10]
push edi
push dword [ebp - 0x15c]
push eax
lea eax, [esi + 0x4d0]
push eax
push dword [ebp - 0x128]
call fcn.005dea00
mov byte [ebp - 0x12b], al
test al, al
je 0x58ec8f
lea ecx, [esi + 0x4d0]
call fcn.0046e290
cmp eax, dword [ebp - 0x128]
jne 0x58ec8f
cmp dword [esi + 0x4c0], 0x14
jne 0x58e134
cmp dword [esi + 0x44], 3
jne 0x58e134
cmp dword [esi + 0x48], 4
je 0x58ec7d
mov eax, dword [ebp - 0x158]
cmp byte [eax + 0x98], 0
je 0x58e9a4
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.0049ead0
cmp dword [esi + 0x44], 3
mov byte [ebp - 4], 3
jne 0x58e179
cmp dword [esi + 0x48], 4
mov byte [ebp - 0x151], 1
je 0x58e180
mov byte [ebp - 0x151], 0
mov eax, dword [ebp - 0x158]
mov eax, dword [eax + 0xac]
cmp eax, 6
jne 0x58e450
lea ecx, [esi + 0x4d0]
call fcn.0046e290
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x158]
add eax, 0x6b0
mov ecx, eax
mov dword [ebp - 0x170], eax
call fcn.004a0bb0
mov al, byte [ebp - 0x151]
movzx ecx, al
xor ecx, 1
lea ecx, [ecx*8 + 0x10]
cmp dword [ebp - 0x174], ecx
jae 0x58e21a
mov eax, dword [edi]
mov ecx, edi
push str.GCM_fragment_not_large_enough.
call dword [eax + 0x14]
push dword [ebp - 0x174]
push str.tlsMsgLen
mov ecx, edi
call fcn.004b2d90
push edi
mov ecx, esi
push dword [ebp - 0x160]
push 0x14
push dword [ebp - 0x15c]
call fcn.0059fe70
lea ecx, [ebp - 0x40]
call fcn.0049ecf0
jmp 0x58edb7
lea ecx, [esi + 0x4d0]
test al, al
je 0x58e22d
call fcn.0046e290
mov ecx, eax
jmp 0x58e254
call fcn.0046e290
mov ecx, dword [ebp - 0x170]
sub eax, 0x18
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x158]
push 8
add eax, 0xec
push eax
call fcn.0049f210
mov ecx, dword [ebp - 0x18]
mov al, byte [esi + 0x4c0]
mov byte [ebp - 0x18], al
mov al, byte [esi + 0x4c4]
mov byte [ebp - 0x17], al
mov al, byte [esi + 0x4c8]
mov byte [ebp - 0x16], al
mov eax, ecx
shr eax, 8
mov byte [ebp - 0x15], al
lea eax, [ebp - 0x18]
push 5
mov byte [ebp - 0x14], cl
mov ecx, dword [ebp - 0x170]
push eax
call fcn.0049f210
cmp byte [edi + 0x12b], 0
je 0x58e2a6
push dword [ebp - 0x170]
mov ecx, edi
push str.aesGcmAad
call fcn.004b2c20
cmp dword [esi + 0x44], 3
jne 0x58e34b
cmp dword [esi + 0x48], 4
jne 0x58e34b
mov edx, dword [ebp - 0x158]
mov dword [ebp - 0x24], 0
mov eax, dword [edx + 0xec]
mov ecx, dword [edx + 0xf0]
mov dword [ebp - 0x20], eax
lea eax, [edx + 0xd0]
mov dword [ebp - 0x1c], ecx
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.0046e290
cmp eax, 0xc
je 0x58e307
mov eax, dword [edi]
mov ecx, edi
push str.m_fixedIv_for_TLS_1.3_GCM_should_be_12_bytes
call dword [eax + 0x14]
lea ecx, [ebp - 0x40]
call fcn.0049ecf0
jmp 0x58edb7
mov ecx, dword [ebp - 0x18]
call fcn.004a2ca0
mov esi, eax
xor edx, edx
lea eax, [ebp - 0x24]
sub esi, eax
lea ecx, [ebp - 0x24]
add ecx, edx
inc edx
mov al, byte [ecx + esi]
xor byte [ecx], al
cmp edx, 0xc
jl 0x58e318
cmp byte [edi + 0x12b], 0
mov esi, dword [ebp - 0x17c]
je 0x58e399
push 0xc
lea eax, [ebp - 0x24]
mov ecx, edi
push eax
push str.aesGcmNonce
call fcn.004b2b40
jmp 0x58e399
mov eax, dword [ebp - 0x158]
add eax, 0xd0
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.0046e290
cmp eax, 4
je 0x58e376
mov eax, dword [edi]
mov ecx, edi
push str.GCM_fixed_IV_not_equal_to_4.
call dword [eax + 0x14]
jmp 0x58e1f7
mov ecx, dword [ebp - 0x18]
call fcn.004a2ca0
lea ecx, [esi + 0x4d0]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
call fcn.004a2ca0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x158]
lea ecx, [ebp - 0x24]
push 0xc
add eax, 0x660
push ecx
mov ecx, eax
mov dword [ebp - 0x164], eax
call fcn.0057a790
lea ecx, [esi + 0x4d0]
call fcn.004a2ca0
mov esi, dword [ebp - 0x174]
add esi, 0xfffffff0
add esi, eax
mov eax, dword [ebp - 0x158]
add eax, 0x6cc
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.004a0bb0
push 0x10
push esi
mov esi, dword [ebp - 0x18]
mov ecx, esi
call fcn.0049f210
cmp byte [edi + 0x12b], 0
je 0x58e405
push esi
push str.expected_aesGcmAuthTag
mov ecx, edi
call fcn.004b2c20
mov esi, dword [ebp - 0x17c]
push 0x10
lea ecx, [esi + 0x4d0]
call fcn.004a4d80
mov ecx, dword [ebp - 0x158]
push edi
push dword [ebp - 0x164]
lea eax, [ecx + 0xf8]
mov ecx, dword [ecx + 0x730]
push eax
call fcn.0060b7b0
test al, al
jne 0x58e642
mov eax, dword [edi]
mov ecx, edi
push str.GCM_decrypt_setup_failed.
call dword [eax + 0x14]
jmp 0x58e1f7
cmp eax, 7
jne 0x58e642
lea ecx, [esi + 0x4d0]
call fcn.0046e290
mov dword [ebp - 0x180], eax
cmp eax, 0x10
jae 0x58e480
mov eax, dword [edi]
mov ecx, edi
push str.AEAD_fragment_not_large_enough.
call dword [eax + 0x14]
jmp 0x58e1f7
mov eax, dword [ebp - 0x158]
add eax, 0x6b0
mov ecx, eax
mov dword [ebp - 0x164], eax
call fcn.004a0bb0
lea ecx, [esi + 0x4d0]
call fcn.0046e290
cmp byte [ebp - 0x151], 0
je 0x58e4b0
mov ecx, eax
jmp 0x58e4d2
mov ecx, dword [ebp - 0x164]
sub eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x158]
push 8
add eax, 0xec
push eax
call fcn.0049f210
mov ecx, dword [ebp - 0x18]
mov al, byte [esi + 0x4c0]
mov byte [ebp - 0x18], al
mov al, byte [esi + 0x4c4]
mov byte [ebp - 0x17], al
mov al, byte [esi + 0x4c8]
mov byte [ebp - 0x16], al
mov eax, ecx
shr eax, 8
mov byte [ebp - 0x15], al
lea eax, [ebp - 0x18]
push 5
mov byte [ebp - 0x14], cl
mov ecx, dword [ebp - 0x164]
push eax
call fcn.0049f210
mov edx, dword [ebp - 0x158]
mov dword [ebp - 0x24], 0
mov eax, dword [edx + 0xec]
mov ecx, dword [edx + 0xf0]
mov dword [ebp - 0x20], eax
lea eax, [edx + 0xd0]
mov dword [ebp - 0x1c], ecx
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.0046e290
cmp eax, 0xc
je 0x58e556
mov eax, dword [edi]
mov ecx, edi
push str.m_fixedIv_should_be_12_bytes
call dword [eax + 0x14]
lea ecx, [ebp - 0x40]
call fcn.0049ecf0
jmp 0x58edb7
mov ecx, dword [ebp - 0x18]
call fcn.004a2ca0
mov edi, eax
xor edx, edx
lea eax, [ebp - 0x24]
sub edi, eax
lea ecx, [ebp - 0x24]
add ecx, edx
inc edx
mov al, byte [ecx + edi]
xor byte [ecx], al
cmp edx, 0xc
jl 0x58e567
mov eax, dword [ebp - 0x158]
lea ecx, [ebp - 0x24]
push 0xc
push ecx
lea ecx, [eax + 0x660]
call fcn.0057a790
lea ecx, [esi + 0x4d0]
call fcn.004a2ca0
mov esi, dword [ebp - 0x158]
mov edi, dword [ebp - 0x180]
add edi, 0xfffffff0
add edi, eax
lea ecx, [esi + 0x6cc]
call fcn.004a0bb0
push 0x10
push edi
lea ecx, [esi + 0x6cc]
call fcn.0049f210
mov ecx, dword [ebp - 0x17c]
push 0x10
add ecx, 0x4d0
call fcn.004a4d80
push dword [ebp - 0x174]
mov edx, esi
mov ecx, dword [edx + 0x730]
lea esi, [edx + 0xf8]
push esi
lea edi, [edx + 0x660]
push edi
mov eax, dword [ecx]
push 0
call dword [eax + 0xc]
mov eax, dword [ebp - 0x158]
push dword [ebp - 0x174]
push edi
mov ecx, dword [eax + 0x730]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
test al, al
jne 0x58e636
mov esi, dword [ebp - 0x174]
mov ecx, esi
push str.AEAD_decrypt_setup_failed.
mov eax, dword [esi]
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x17c]
push esi
jmp 0x58e1fa
mov edi, dword [ebp - 0x174]
mov esi, dword [ebp - 0x17c]
mov al, byte [edi + 0x129]
lea ecx, [esi + 0x4d0]
mov byte [ebp - 0x12b], al
mov al, byte [edi + 0x12a]
mov byte [edi + 0x129], al
mov eax, dword [ebp - 0x158]
push edi
cmp dword [eax + 0xac], 6
lea edx, [eax + 0x660]
mov dword [ebp - 0x174], edx
lea edx, [eax + 0xf8]
lea eax, [ebp - 0x40]
mov dword [ebp - 0x128], edx
push eax
jne 0x58e7a7
call fcn.0046e290
cmp byte [ebp - 0x151], 0
lea ecx, [esi + 0x4d0]
je 0x58e758
push eax
call fcn.004a2ca0
push eax
mov eax, dword [ebp - 0x158]
push dword [ebp - 0x174]
push dword [ebp - 0x128]
mov ecx, dword [eax + 0x730]
call fcn.00578370
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x151], al
call fcn.0046e290
test eax, eax
je 0x58e702
nop
lea ecx, [ebp - 0x40]
call fcn.004a3200
test al, al
jne 0x58e702
push 1
lea ecx, [ebp - 0x40]
call fcn.004a4d80
lea ecx, [ebp - 0x40]
call fcn.0046e290
test eax, eax
jne 0x58e6e0
lea ecx, [ebp - 0x40]
call fcn.004a3200
movzx ecx, al
sub al, 0x14
mov dword [ebp - 0x164], ecx
cmp al, 3
ja 0x58e72e
push 1
lea ecx, [ebp - 0x40]
call fcn.004a4d80
mov eax, dword [ebp - 0x164]
jmp 0x58e83a
mov eax, dword [ebp - 0x15c]
mov ecx, edi
push str.Invalid_TLS_1.3_actual_content_type..
mov dword [eax + 0x2c], 0x7f
mov eax, dword [edi]
call dword [eax + 0x14]
mov eax, dword [ebp - 0x164]
push eax
push str.actualContentType
jmp 0x58e1f0
sub eax, 8
push eax
call fcn.004a2ca0
add eax, 8
push eax
mov eax, dword [ebp - 0x158]
push dword [ebp - 0x174]
push dword [ebp - 0x128]
mov ecx, dword [eax + 0x730]
call fcn.00578370
mov cl, byte [ebp - 0x12b]
mov byte [edi + 0x129], cl
test al, al
jne 0x58e87c
mov eax, dword [edi]
mov ecx, edi
push str.Failed_to_decrypt_SSL_TLS_record.
call dword [eax + 0x14]
jmp 0x58e1f7
call fcn.0046e290
push eax
lea ecx, [esi + 0x4d0]
call fcn.004a2ca0
cmp byte [ebp - 0x151], 0
je 0x58e764
push eax
mov eax, dword [ebp - 0x158]
push dword [ebp - 0x174]
push dword [ebp - 0x128]
mov ecx, dword [eax + 0x730]
call fcn.00578370
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x151], al
call fcn.0046e290
test eax, eax
je 0x58e813
lea ecx, [ebp - 0x40]
call fcn.004a3200
test al, al
jne 0x58e813
push 1
lea ecx, [ebp - 0x40]
call fcn.004a4d80
lea ecx, [ebp - 0x40]
call fcn.0046e290
test eax, eax
jne 0x58e7f1
lea ecx, [ebp - 0x40]
call fcn.004a3200
movzx ecx, al
sub al, 0x14
mov dword [ebp - 0x164], ecx
cmp al, 3
ja 0x58e85f
push 1
lea ecx, [ebp - 0x40]
call fcn.004a4d80
mov eax, dword [ebp - 0x164]
mov dword [esi + 0x4c0], eax
mov al, byte [ebp - 0x151]
mov dword [esi + 0x4c4], 3
mov dword [esi + 0x4c8], 4
jmp 0x58e782
mov eax, dword [edi]
mov ecx, edi
push str.Invalid_TLS_1.3_actual_content_type.
call dword [eax + 0x14]
mov eax, dword [ebp - 0x164]
push eax
push str.actualContentType
jmp 0x58e1f0
mov ecx, dword [ebp - 0x158]
mov eax, dword [ecx + 0xac]
cmp eax, 6
jne 0x58e933
lea eax, [ecx + 0x660]
push edi
push eax
lea eax, [ecx + 0xf8]
mov ecx, dword [ecx + 0x730]
push eax
call fcn.0060b6f0
test al, al
jne 0x58e8c0
mov eax, dword [edi]
mov ecx, edi
push str.GCM_decrypt_finalize_failed.
call dword [eax + 0x14]
jmp 0x58e1f7
cmp byte [edi + 0x12b], 0
je 0x58e8d5
mov eax, dword [edi]
mov ecx, edi
push str.gcm_decrypt_finalize_success.
call dword [eax + 0x18]
lea eax, [ebp - 0x40]
push eax
lea ecx, [esi + 0x4d0]
call fcn.004a4df0
mov eax, dword [ebp - 0x158]
mov byte [esi + 0x4cc], 1
mov eax, dword [eax + 0xac]
cmp eax, 6
je 0x58e992
cmp eax, 0x63
je 0x58e992
cmp eax, 7
je 0x58e992
push edi
lea ecx, [esi + 0x4d0]
call fcn.004a5400
test al, al
jne 0x58e977
mov eax, dword [edi]
mov ecx, edi
push str.Invalid_block_cipher_padding_detected.
call dword [eax + 0x14]
jmp 0x58e1f7
cmp eax, 7
jne 0x58e8d5
mov ecx, dword [ecx + 0x730]
mov eax, dword [ebp - 0x158]
add eax, 0x660
push edi
mov edx, dword [ecx]
push eax
mov eax, dword [ebp - 0x158]
add eax, 0xf8
push eax
mov eax, dword [edx + 0x30]
call eax
test al, al
jne 0x58e8d5
mov eax, dword [edi]
mov ecx, edi
push str.AEAD_decrypt_finalize_failed.
call dword [eax + 0x14]
jmp 0x58e1f7
lea ecx, [esi + 0x4d0]
call fcn.004a3200
movzx eax, al
lea ecx, [esi + 0x4d0]
inc eax
push eax
call fcn.004a4d80
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.0049ecf0
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax + 0xac]
cmp ecx, 6
je 0x58ec60
cmp ecx, 7
je 0x58ec60
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x58ec60
mov eax, 0x10
cmp ecx, 1
jne 0x58e9e0
mov dword [ebp - 0x168], 0x14
jmp 0x58ea02
cmp ecx, 7
jne 0x58e9f1
mov dword [ebp - 0x168], 0x20
jmp 0x58ea02
cmp ecx, 2
mov edx, 0x30
cmove eax, edx
mov dword [ebp - 0x168], eax
lea ecx, [esi + 0x4d0]
call fcn.0046e290
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x168]
jae 0x58ea3f
mov eax, dword [edi]
mov ecx, edi
push str.SSL_TLS_record_shorter_than_MAC_length_
call dword [eax + 0x14]
push edi
push dword [ebp - 0x160]
mov ecx, esi
push 0x14
push dword [ebp - 0x15c]
call fcn.0059fe70
jmp 0x58edb7
xorps xmm0, xmm0
mov dword [ebp - 0x28], 0
lea ecx, [ebp - 0x40]
movq qword [ebp - 0x30], xmm0
movups xmmword [ebp - 0x40], xmm0
call fcn.0049ead0
mov eax, dword [ebp - 0x168]
mov ecx, dword [ebp - 0x18]
push eax
sub ecx, eax
mov byte [ebp - 4], 4
push ecx
lea eax, [esi + 0x4d0]
push eax
lea ecx, [ebp - 0x40]
call fcn.004a02a0
push dword [ebp - 0x168]
lea ecx, [esi + 0x4d0]
call fcn.004a4d80
cmp dword [esi + 0x4c4], 3
mov dword [ebp - 0x170], 0
jne 0x58eb49
cmp dword [esi + 0x4c8], 2
jl 0x58eb49
mov eax, dword [ebp - 0x158]
cmp dword [eax + 0xc4], 0
jbe 0x58eb49
lea ecx, [esi + 0x4d0]
call fcn.0046e290
mov ecx, dword [ebp - 0x158]
cmp eax, dword [ecx + 0xc4]
jb 0x58eb0b
lea ecx, [esi + 0x4d0]
call fcn.0046e290
mov ecx, dword [ebp - 0x158]
push edi
mov edx, dword [ecx + 0xc4]
lea ecx, [ebp - 0xa4]
push ecx
sub eax, edx
lea ecx, [esi + 0x4d0]
push eax
push edx
call fcn.004a2cb0
jmp 0x58eb68
mov eax, dword [edi]
mov ecx, edi
push str.Message_not_long_enough_for_the_MAC.
call dword [eax + 0x14]
lea ecx, [esi + 0x4d0]
call fcn.0046e290
push eax
push str.tlsMsgSize
mov ecx, edi
call fcn.004b2d90
mov eax, dword [ebp - 0x158]
mov ecx, edi
push dword [eax + 0xc4]
push str.cipherSuiteRecordIvLen
call fcn.004b2d90
jmp 0x58eb8e
push edi
lea eax, [ebp - 0xa4]
push eax
lea ecx, [esi + 0x4d0]
call fcn.0046e290
push eax
lea ecx, [esi + 0x4d0]
call fcn.004a2ca0
mov ecx, dword [ebp - 0x158]
push eax
push dword [esi + 0x4c8]
push dword [esi + 0x4c4]
push dword [esi + 0x4c0]
push 0
call fcn.0058ae80
mov dword [ebp - 0x170], eax
lea ecx, [ebp - 0x40]
call fcn.004a2ca0
mov ecx, eax
lea edx, [ebp - 0xa4]
mov eax, dword [ebp - 0x168]
sub eax, 4
mov dword [ebp - 0x128], eax
jb 0x58ebcd
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x58ebd6
mov eax, dword [ebp - 0x128]
add ecx, 4
add edx, 4
sub eax, 4
mov dword [ebp - 0x128], eax
jae 0x58ebb0
cmp eax, 0xfffffffc
je 0x58ec52
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x58ec0f
cmp dword [ebp - 0x128], 0xfffffffd
je 0x58ec52
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x58ec0f
cmp dword [ebp - 0x128], 0xfffffffe
je 0x58ec52
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x58ec0f
cmp dword [ebp - 0x128], 0xffffffff
je 0x58ec52
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x58ec52
mov eax, dword [edi]
mov ecx, edi
push str.Invalid_MAC
call dword [eax + 0x14]
push dword [ebp - 0x168]
mov ecx, edi
push str.macLen
call fcn.004b2d90
push dword [ebp - 0x170]
mov ecx, edi
push str.macLen2
call fcn.004b2d90
lea ecx, [ebp - 0x40]
call fcn.0046e290
push eax
push str.dbMacSize
jmp 0x58e1f0
lea ecx, [ebp - 0x40]
call fcn.0049ecf0
mov eax, dword [ebp - 0x158]
mov edx, 0xffffff14
lea ecx, [eax + 0xf3]
sub edx, eax
nop dword [eax]
add byte [ecx], 1
jne 0x58ec7d
dec ecx
lea eax, [edx + ecx]
test eax, eax
jns 0x58ec70
lea ecx, [ebp - 0x13c]
call fcn.004b2630
mov al, 1
jmp 0x58edc4
cmp byte [edi + 0x134], 0
mov ecx, edi
mov eax, dword [edi]
mov eax, dword [eax + 0x14]
je 0x58ecab
push str.Aborted_because_the_application_set_the_AbortCurrent_property..
call eax
jmp 0x58edb7
push str.Failed_to_read_TLS_record__2_
call eax
lea ecx, [esi + 0x4d0]
call fcn.0046e290
push eax
push str.tlsRec_msg
mov ecx, edi
call fcn.004b2d90
push dword [ebp - 0x128]
mov ecx, edi
push str.msgLen
call fcn.004b2d90
push dword [ebp - 0x150]
mov ecx, edi
push str.nReadNBytes
call fcn.004b2d90
movzx eax, byte [ebp - 0x12b]
mov ecx, edi
push eax
push str.status
call fcn.004b2d90
jmp 0x58edb7
mov esi, dword [ebp - 0x15c]
mov ecx, esi
call fcn.004d90b0
test al, al
je 0x58ed25
cmp byte [esi + 0xb0], 0
je 0x58edb7
mov eax, dword [edi]
mov ecx, edi
push str.Failed_to_read_beginning_of_SSL_TLS_record.
call dword [eax + 0x14]
movzx eax, byte [ebp - 0x12b]
mov ecx, edi
push eax
push 0x67c638
call fcn.004b2d90
mov ecx, dword [ebp - 0x130]
call fcn.0046e290
push eax
push str.dbSize
mov ecx, edi
call fcn.004b2d90
push dword [ebp - 0x150]
mov ecx, edi
push str.nReadNBytes
call fcn.004b2d90
mov eax, dword [ebp + 0x10]
mov ecx, edi
push eax
push str.idleTimeoutMs
call fcn.004b2d90
mov al, byte [esi + 0xb0]
mov ecx, esi
push edi
push str.readTlsRecord
mov byte [ebp - 0x12b], al
mov byte [esi + 0xb0], 1
call fcn.004d9190
mov al, byte [ebp - 0x12b]
mov ecx, edi
mov byte [esi + 0xb0], al
mov eax, dword [edi]
push str.See_https:__cknotes.com_failed_to_read_beginning_of_ssl_tls_record_can_be_caused_by_external_firewall_
call dword [eax + 0x14]
lea ecx, [ebp - 0x13c]
call fcn.004b2630
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00622073
mov esp, ebp
pop ebp
ret 0x14