Function at 0x1012e490
Capabilities:
Check os version
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x101a5b87
mov eax, dword fs:[0]
push eax
sub esp, 0x134
mov eax, dword [0x1026d48c]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1026d48c]
xor eax, esp
push eax
lea eax, [esp + 0x148]
mov dword fs:[0], eax
mov esi, dword [esp + 0x168]
mov eax, dword [esp + 0x15c]
mov ebp, dword [esp + 0x158]
mov edi, dword [esp + 0x164]
mov ebx, ecx
movzx ecx, byte [esi + 0x127]
push ecx
push str.readTlsRecord
push esi
lea ecx, [esp + 0x54]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], edi
call fcn.10061660
xor eax, eax
lea ecx, [ebp + 0x4e8]
mov dword [esp + 0x150], eax
mov dword [ebp + 0x4bc], eax
mov dword [ebp + 0x4c0], eax
mov dword [ebp + 0x4c4], eax
mov byte [ebp + 0x4c8], al
call fcn.10017ff0
lea ecx, [ebp + 0x4cc]
call fcn.10017ff0
lea ecx, [ebp + 0x504]
call fcn.10017ff0
lea ebp, [ebx + 0x78]
mov ecx, ebp
mov dword [esp + 0x54], 0
call fcn.10017ff0
mov eax, dword [esp + 0x160]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x54]
push edx
push esi
push edi
push eax
push ebp
push 5
call fcn.1014a9a0
test al, al
mov byte [esp + 0x14], al
je 0x1012f898
mov ecx, ebp
call fcn.100f6330
cmp eax, 5
jne 0x1012f898
mov ecx, ebp
call fcn.1008bea0
mov edi, eax
mov cl, byte [edi]
test cl, cl
jns 0x1012eaa1
cmp byte [edi + 2], 1
jne 0x1012eaa1
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 0x1012e5f8
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 + 0x24]
push esi
mov esi, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x20]
push 0x47
push esi
call fcn.10121240
mov dword [esi + 0x28], 0x7d
jmp 0x1012f937
movzx eax, byte [edi]
movzx edx, byte [edi + 1]
and eax, 0x7f
shl eax, 8
or eax, edx
cmp byte [esi + 0x127], 0
mov dword [esp + 0x34], eax
je 0x1012e625
push eax
push str.recLen
mov ecx, esi
call fcn.100612a0
mov eax, dword [esp + 0x34]
test byte [edi], 0x80
mov cl, byte [edi + 3]
mov dword [esp + 0x30], 2
jne 0x1012e675
cmp byte [esi + 0x127], 0
mov dl, byte [edi + 4]
mov byte [esp + 0x2c], cl
movzx ecx, byte [edi + 2]
mov byte [esp + 0x2d], dl
mov dword [esp + 0x1c], ecx
lea edi, [eax - 2]
je 0x1012e6b8
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.3_byte_record_header...
mov ecx, esi
call eax
mov ecx, dword [esp + 0x1c]
push ecx
push str.paddingLen
mov ecx, esi
call fcn.100612a0
jmp 0x1012e6ab
cmp byte [esi + 0x127], 0
movzx edx, byte [edi + 2]
mov byte [esp + 0x2c], dl
movzx edx, byte [edi + 4]
mov byte [esp + 0x2d], cl
mov byte [esp + 0x2e], dl
lea edi, [eax - 3]
mov dword [esp + 0x30], 3
je 0x1012e6b8
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.100612a0
mov ecx, ebp
call fcn.10017ff0
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebp
call fcn.10019380
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x160]
lea edx, [esp + 0x54]
push edx
push esi
push eax
push ecx
mov ecx, dword [esp + 0x34]
push ebp
push edi
call fcn.1014a9a0
test al, al
mov byte [esp + 0x14], al
je 0x1012ea57
mov ecx, ebp
call fcn.100f6330
cmp eax, dword [esp + 0x34]
jne 0x1012ea57
mov ecx, ebp
call fcn.1008bea0
mov edi, eax
mov eax, dword [esp + 0x18]
push ebp
lea ecx, [eax + 0x324]
mov byte [eax + 0x520], 1
call fcn.1001b160
cmp byte [esi + 0x127], 0
je 0x1012e750
mov ecx, ebp
call fcn.100f6330
push eax
mov ecx, ebp
call fcn.1008bea0
push eax
push str.fullRecord
mov ecx, esi
call fcn.100606d0
mov eax, dword [esp + 0x18]
lea ecx, [eax + 0x4bc]
mov dword [ecx], 0x16
movzx edx, byte [edi + 1]
mov dword [esp + 0x40], ecx
lea ecx, [eax + 0x4c0]
mov dword [esp + 0x3c], ecx
mov dword [ecx], edx
movzx ecx, byte [edi + 2]
add eax, 0x4c4
mov dword [esp + 0x38], eax
mov dword [eax], ecx
call fcn.10124730
mov ebp, eax
test ebp, ebp
je 0x1012f937
lea ecx, [esp + 0x68]
call fcn.100490e0
mov edx, dword [esp + 0x3c]
mov eax, dword [edx]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x70], ebp
mov dword [ebp + 0x2c], eax
mov edx, dword [ecx]
mov dword [ebp + 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 + 0x127], 0
mov dh, byte [edi + 4]
mov byte [esp + 0x150], 1
mov al, byte [edi + 1]
mov cl, byte [edi + 3]
mov dl, byte [edi + 5]
mov dword [esp + 0x64], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], edx
je 0x1012e817
push eax
push str.cipherListLen
mov ecx, esi
call fcn.100612a0
mov ecx, dword [esp + 0x34]
push ecx
push str.sessionIdLen
mov ecx, esi
call fcn.100612a0
mov edx, dword [esp + 0x30]
push edx
push str.challengeLen
mov ecx, esi
call fcn.100612a0
mov ecx, dword [esp + 0x64]
lea eax, [ecx - 3]
cmp eax, 0xbd
ja 0x1012ea37
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
jne 0x1012ea37
cmp dword [esp + 0x34], 0x20
jbe 0x1012e87e
push str.Invalid_session_ID_length
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push esi
push ecx
push 0xa
push edx
mov ecx, dword [esp + 0x28]
call fcn.10121240
lea ecx, [esp + 0x68]
mov byte [esp + 0x150], 0
call fcn.10049340
jmp 0x1012f937
mov eax, dword [esp + 0x30]
add eax, 0xfffffff8
cmp eax, 0x18
ja 0x1012ea2d
add edi, 6
test edx, edx
jbe 0x1012e982
mov dword [esp + 0x60], edi
mov dword [esp + 0x1c], edx
cmp byte [esi + 0x127], 0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
mov eax, 2
movzx ecx, byte [eax + ecx]
mov eax, 1
movzx eax, byte [eax + edx]
mov ah, byte [edx]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x74], eax
je 0x1012e8f0
push ecx
push str.cipherKind
mov ecx, esi
call fcn.100612a0
mov edx, dword [esp + 0x74]
push edx
push str.key_len
mov ecx, esi
call fcn.100612a0
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x74], 0
mov byte [esp + 0x44], 0
mov byte [esp + 0x45], 4
mov byte [esp + 0x28], 0
mov byte [esp + 0x29], 5
mov byte [esp + 0x14], 0
mov byte [esp + 0x15], 0xa
mov byte [esp + 0x58], 0
mov byte [esp + 0x59], 0x2f
mov byte [esp + 0x5c], 0
mov byte [esp + 0x5d], 0x35
jne 0x1012e972
cmp ecx, 4
jne 0x1012e937
push 2
lea eax, [esp + 0x48]
push eax
jmp 0x1012e96a
cmp ecx, 5
jne 0x1012e942
lea ecx, [esp + 0x28]
jmp 0x1012e967
cmp ecx, 0xa
jne 0x1012e950
push 2
lea edx, [esp + 0x18]
push edx
jmp 0x1012e96a
cmp ecx, 0x2f
jne 0x1012e95e
push 2
lea eax, [esp + 0x5c]
push eax
jmp 0x1012e96a
cmp ecx, 0x35
jne 0x1012e972
lea ecx, [esp + 0x5c]
push 2
push ecx
lea ecx, [ebp + 0x6c]
call fcn.10019380
add dword [esp + 0x60], 3
sub dword [esp + 0x1c], 1
jne 0x1012e8a1
mov edx, dword [esp + 0x34]
add edi, dword [esp + 0x64]
push edx
push edi
lea ecx, [ebp + 0x50]
call fcn.10019380
mov eax, dword [esp + 0x30]
add edi, dword [esp + 0x34]
push eax
push edi
lea ecx, [ebp + 0x34]
call fcn.10019380
push 0
lea ecx, [ebp + 0x88]
call fcn.10018f60
lea ecx, [esp + 0x84]
call fcn.100182e0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
movzx edx, byte [eax + 0x86]
push esi
lea edi, [eax + 0x4cc]
push edi
push ecx
movzx ecx, byte [eax + 0xb8]
push edx
push ecx
lea edx, [eax + 0x130]
push edx
lea ecx, [esp + 0x9c]
push ecx
push 0
push 0
push eax
mov ecx, ebp
mov byte [esp + 0x178], 2
call fcn.1012dba0
lea ecx, [esp + 0x84]
mov byte [esp + 0x150], 1
call fcn.10018a90
lea ecx, [esp + 0x68]
mov byte [esp + 0x150], 0
call fcn.10049340
jmp 0x1012ec4d
push str.Invalid_challenge_length
jmp 0x1012e849
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Invalid_cipher_list_length
mov ecx, esi
call edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push esi
push eax
push 0xa
push ecx
jmp 0x1012e85f
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Failed_to_read_TLS_record__1_
mov ecx, esi
call eax
movzx ecx, byte [esp + 0x14]
push ecx
push 0x101e9198
mov ecx, esi
call fcn.100612a0
mov edx, dword [esp + 0x34]
push edx
push str.recLen
mov ecx, esi
call fcn.100612a0
mov ecx, ebp
call fcn.100f6330
push eax
push str.dbSize
mov ecx, esi
call fcn.100612a0
jmp 0x1012f937
mov eax, dword [esp + 0x18]
lea edx, [eax + 0x4bc]
movzx ecx, cl
mov dword [edx], ecx
lea ebp, [eax + 0x4c0]
mov dword [esp + 0x40], edx
movzx edx, byte [edi + 1]
mov dword [ebp], edx
movzx ecx, byte [edi + 2]
add eax, 0x4c4
mov dword [eax], ecx
movzx edx, byte [edi + 4]
mov dword [esp + 0x38], eax
movzx eax, byte [edi + 3]
and eax, 0x7f
shl eax, 8
or eax, edx
cmp byte [esi + 0x127], 0
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x34], eax
je 0x1012ebfd
mov eax, dword [ebp]
cmp eax, 3
jne 0x1012eb4b
test ecx, ecx
jne 0x1012eb08
mov edi, str.SSL_3.0
jmp 0x1012eb6f
cmp eax, 3
jne 0x1012eb4b
cmp ecx, 1
jne 0x1012eb19
mov edi, str.TLS_1.0
jmp 0x1012eb6f
cmp eax, 3
jne 0x1012eb4b
cmp ecx, 2
jne 0x1012eb2a
mov edi, str.TLS_1.1
jmp 0x1012eb6f
cmp eax, 3
jne 0x1012eb4b
cmp ecx, eax
jne 0x1012eb3a
mov edi, str.TLS_1.2
jmp 0x1012eb6f
cmp eax, 3
jne 0x1012eb4b
cmp ecx, 4
jne 0x1012eb4b
mov edi, str.TLS_1.3
jmp 0x1012eb6f
mov eax, dword [esp + 0x38]
push eax
push ebp
push str.v_d._d
lea ecx, [esp + 0xb0]
push 0x20
push ecx
call fcn.1002b500
add esp, 0x14
lea edi, [esp + 0xa4]
mov ebp, dword [esp + 0x40]
mov eax, dword [ebp]
cmp eax, 0x14
jne 0x1012eb82
mov eax, str.ChangeCipherSpec
jmp 0x1012ebc5
cmp eax, 0x15
jne 0x1012eb8e
mov eax, str.Alert
jmp 0x1012ebc5
cmp eax, 0x16
jne 0x1012eb9a
mov eax, str.Handshake
jmp 0x1012ebc5
cmp eax, 0x17
jne 0x1012eba6
mov eax, str.Application
jmp 0x1012ebc5
push ebp
push str.ct_d
lea edx, [esp + 0x8c]
push 0x20
push edx
call fcn.1002b4e0
add esp, 0x10
lea eax, [esp + 0x84]
cmp dword [ebp], 0x17
je 0x1012ebfd
lea ecx, [esp + 0x34]
push ecx
push eax
push edi
push str._s___s__sz_d
lea edx, [esp + 0xd4]
push 0x80
push edx
call fcn.1002b540
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
add esp, 0x18
lea ecx, [esp + 0xc4]
push ecx
mov ecx, esi
call edx
mov edi, dword [esp + 0x18]
add edi, 0x4cc
mov ecx, edi
call fcn.10017ff0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x160]
lea eax, [esp + 0x54]
push eax
mov eax, dword [esp + 0x38]
push esi
push ecx
mov ecx, dword [esp + 0x30]
push edx
push edi
push eax
call fcn.1014a9a0
test al, al
mov byte [esp + 0x14], al
je 0x1012f82a
mov ecx, edi
call fcn.100f6330
cmp eax, dword [esp + 0x34]
jne 0x1012f82a
mov ecx, dword [esp + 0x40]
cmp dword [ecx], 0x14
mov ebp, dword [esp + 0x18]
jne 0x1012ec6a
cmp dword [ebp + 0x44], 3
jne 0x1012ec6a
cmp dword [ebp + 0x48], 4
je 0x1012f80f
cmp byte [ebx + 0x98], 0
je 0x1012f514
lea ecx, [esp + 0x84]
call fcn.100182e0
cmp dword [ebp + 0x44], 3
mov byte [esp + 0x150], 3
jne 0x1012ec9c
cmp dword [ebp + 0x48], 4
mov byte [esp + 0x14], 1
je 0x1012eca1
mov byte [esp + 0x14], 0
mov eax, dword [ebx + 0xac]
cmp eax, 6
jne 0x1012ef9a
cmp byte [esp + 0x14], 0
mov dword [esp + 0x1c], 0x18
je 0x1012ecc7
mov dword [esp + 0x1c], 0x10
mov ecx, edi
call fcn.100f6330
lea ebp, [ebx + 0x6b0]
mov ecx, ebp
mov dword [esp + 0x30], eax
call fcn.10017ff0
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x30], edx
jae 0x1012ed37
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.GCM_fragment_not_large_enough.
mov ecx, esi
call edx
mov eax, dword [esp + 0x30]
push eax
push str.tlsMsgLen
mov ecx, esi
call fcn.100612a0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push esi
push ecx
push 0x14
push edx
mov ecx, dword [esp + 0x28]
call fcn.10121240
lea ecx, [esp + 0x84]
mov byte [esp + 0x150], 0
call fcn.10018a90
jmp 0x1012f937
mov ecx, edi
call fcn.100f6330
cmp byte [esp + 0x14], 0
je 0x1012ed4b
mov dword [esp + 0x1c], eax
jmp 0x1012ed62
sub eax, 0x18
mov dword [esp + 0x1c], eax
push 8
lea eax, [ebx + 0xec]
push eax
mov ecx, ebp
call fcn.10019380
mov ecx, dword [esp + 0x40]
mov dl, byte [ecx]
mov eax, dword [esp + 0x3c]
mov cl, byte [eax]
mov byte [esp + 0x74], dl
mov edx, dword [esp + 0x38]
mov al, byte [edx]
mov byte [esp + 0x75], cl
mov byte [esp + 0x76], al
mov eax, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 8
push 5
lea edx, [esp + 0x78]
mov byte [esp + 0x7b], cl
push edx
mov ecx, ebp
mov byte [esp + 0x80], al
call fcn.10019380
cmp byte [esi + 0x128], 0
je 0x1012edb8
push ebp
push str.aesGcmAad
mov ecx, esi
call fcn.10061870
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x44], 3
jne 0x1012eeb3
cmp dword [eax + 0x48], 4
jne 0x1012eeb3
mov ecx, dword [ebx + 0xf0]
mov eax, dword [ebx + 0xec]
mov dword [esp + 0x70], ecx
lea ebp, [ebx + 0xd0]
mov ecx, ebp
mov byte [esp + 0x68], 0
mov byte [esp + 0x69], 0
mov byte [esp + 0x6a], 0
mov byte [esp + 0x6b], 0
mov dword [esp + 0x6c], eax
call fcn.100f6330
cmp eax, 0xc
je 0x1012ee31
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 + 0x84]
mov byte [esp + 0x150], 0
call fcn.10018a90
jmp 0x1012f937
mov ecx, ebp
call fcn.1008bea0
lea ecx, [esp + 0x68]
mov ebp, eax
xor edx, edx
sub eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x1012ee50
mov eax, dword [esp + 0x1c]
lea ecx, [esp + edx + 0x68]
movzx eax, byte [eax + ecx]
xor byte [ecx], al
movzx eax, byte [edx + ebp + 1]
xor byte [ecx + 1], al
movzx eax, byte [edx + ebp + 2]
xor byte [ecx + 2], al
movzx eax, byte [edx + ebp + 3]
xor byte [ecx + 3], al
movzx eax, byte [edx + ebp + 4]
xor byte [ecx + 4], al
movzx eax, byte [edx + ebp + 5]
xor byte [ecx + 5], al
add edx, 6
cmp edx, 0xc
jl 0x1012ee50
cmp byte [esi + 0x128], 0
je 0x1012eeaa
push 0xc
lea ecx, [esp + 0x6c]
push ecx
push str.aesGcmNonce
mov ecx, esi
call fcn.100606d0
push 0xc
lea edx, [esp + 0x6c]
push edx
jmp 0x1012ef0d
lea ebp, [ebx + 0xd0]
mov ecx, ebp
call fcn.100f6330
cmp eax, 4
je 0x1012eee5
push str.GCM_fixed_IV_not_equal_to_4.
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
mov ecx, esi
call edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push esi
push eax
push 0x14
push ecx
jmp 0x1012ed15
mov ecx, ebp
call fcn.1008bea0
mov edx, dword [eax]
mov ecx, edi
mov dword [esp + 0x68], edx
call fcn.1008bea0
mov ecx, dword [eax]
mov dword [esp + 0x6c], ecx
mov edx, dword [eax + 4]
push 0xc
lea eax, [esp + 0x6c]
mov dword [esp + 0x74], edx
push eax
lea ecx, [ebx + 0x660]
call fcn.100c70e0
mov ecx, edi
call fcn.1008bea0
mov ecx, dword [esp + 0x30]
lea edx, [eax + ecx - 0x10]
lea ebp, [ebx + 0x6cc]
mov ecx, ebp
mov dword [esp + 0x1c], edx
call fcn.10017ff0
mov eax, dword [esp + 0x1c]
push 0x10
push eax
mov ecx, ebp
call fcn.10019380
cmp byte [esi + 0x128], 0
je 0x1012ef5c
push ebp
push str.expected_aesGcmAuthTag
mov ecx, esi
call fcn.10061870
push 0x10
mov ecx, edi
call fcn.10018240
push esi
lea eax, [ebx + 0x660]
push eax
lea ecx, [ebx + 0xf8]
push ecx
mov ecx, dword [ebx + 0x730]
call fcn.10177a10
test al, al
jne 0x1012f1a0
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.GCM_decrypt_setup_failed.
mov ecx, esi
call eax
jmp 0x1012ed08
cmp eax, 7
jne 0x1012f1a0
mov ecx, edi
call fcn.100f6330
cmp eax, 0x10
mov dword [esp + 0x74], eax
jae 0x1012efd5
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.AEAD_fragment_not_large_enough.
mov ecx, esi
call edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push esi
push eax
push 0x14
push ecx
mov ecx, ebp
jmp 0x1012ed19
lea ebp, [ebx + 0x6b0]
mov ecx, ebp
call fcn.10017ff0
mov ecx, edi
call fcn.100f6330
cmp byte [esp + 0x14], 0
je 0x1012eff6
mov dword [esp + 0x1c], eax
jmp 0x1012f00d
push 8
lea edx, [ebx + 0xec]
sub eax, 0x10
push edx
mov ecx, ebp
mov dword [esp + 0x24], eax
call fcn.10019380
mov eax, dword [esp + 0x40]
mov cl, byte [eax]
mov edx, dword [esp + 0x3c]
mov al, byte [edx]
mov byte [esp + 0x7c], cl
mov ecx, dword [esp + 0x38]
mov dl, byte [ecx]
mov byte [esp + 0x7d], al
mov eax, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x7e], dl
push 5
lea edx, [esp + 0x80]
mov byte [esp + 0x83], cl
push edx
mov ecx, ebp
mov byte [esp + 0x88], al
call fcn.10019380
mov ecx, dword [ebx + 0xf0]
mov eax, dword [ebx + 0xec]
mov dword [esp + 0x70], ecx
lea ebp, [ebx + 0xd0]
mov ecx, ebp
mov byte [esp + 0x68], 0
mov byte [esp + 0x69], 0
mov byte [esp + 0x6a], 0
mov byte [esp + 0x6b], 0
mov dword [esp + 0x6c], eax
call fcn.100f6330
cmp eax, 0xc
je 0x1012f0b4
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 + 0x84]
mov byte [esp + 0x150], 0
call fcn.10018a90
jmp 0x1012f937
mov ecx, ebp
call fcn.1008bea0
lea ecx, [esp + 0x68]
mov ebp, eax
xor edx, edx
sub eax, ecx
mov dword [esp + 0x1c], eax
lea esp, [esp]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + edx + 0x68]
movzx eax, byte [ecx + eax]
xor byte [ecx], al
movzx eax, byte [edx + ebp + 1]
xor byte [ecx + 1], al
movzx eax, byte [edx + ebp + 2]
xor byte [ecx + 2], al
movzx eax, byte [edx + ebp + 3]
xor byte [ecx + 3], al
movzx eax, byte [edx + ebp + 4]
xor byte [ecx + 4], al
movzx eax, byte [edx + ebp + 5]
xor byte [ecx + 5], al
add edx, 6
cmp edx, 0xc
jl 0x1012f0d0
push 0xc
lea ecx, [esp + 0x6c]
lea ebp, [ebx + 0x660]
push ecx
mov ecx, ebp
call fcn.100c70e0
mov ecx, edi
call fcn.1008bea0
mov edx, dword [esp + 0x74]
lea eax, [eax + edx - 0x10]
lea ecx, [ebx + 0x6cc]
mov dword [esp + 0x1c], eax
call fcn.10017ff0
mov ecx, dword [esp + 0x1c]
push 0x10
push ecx
lea ecx, [ebx + 0x6cc]
call fcn.10019380
push 0x10
mov ecx, edi
call fcn.10018240
mov ecx, dword [ebx + 0x730]
mov edx, dword [ecx]
push esi
lea eax, [ebx + 0xf8]
push eax
mov eax, dword [edx + 0xc]
push ebp
push 0
call eax
mov ecx, dword [ebx + 0x730]
mov edx, dword [ecx]
push esi
push ebp
lea eax, [ebx + 0xf8]
push eax
mov eax, dword [edx + 0x2c]
call eax
test al, al
jne 0x1012f1a0
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.AEAD_decrypt_setup_failed.
mov ecx, esi
call eax
jmp 0x1012ed08
mov al, byte [esi + 0x125]
mov cl, byte [esi + 0x127]
mov byte [esi + 0x125], cl
cmp dword [ebx + 0xac], 6
mov byte [esp + 0x44], al
lea ebp, [ebx + 0x660]
push esi
jne 0x1012f2e3
cmp byte [esp + 0x18], 0
mov ecx, edi
je 0x1012f2c3
lea edx, [esp + 0x88]
push edx
call fcn.100f6330
push eax
mov ecx, edi
call fcn.1008bea0
mov ecx, dword [ebx + 0x730]
push eax
push ebp
lea eax, [ebx + 0xf8]
push eax
call fcn.100c7420
lea ecx, [esp + 0x84]
mov byte [esp + 0x14], al
call fcn.100f6330
test eax, eax
jbe 0x1012f242
lea ecx, [esp + 0x84]
call fcn.10018090
test al, al
jne 0x1012f242
push 1
lea ecx, [esp + 0x88]
call fcn.10018240
lea ecx, [esp + 0x84]
call fcn.100f6330
test eax, eax
ja 0x1012f214
lea ecx, [esp + 0x84]
call fcn.10018090
mov byte [esp + 0x28], al
sub al, 0x14
cmp al, 3
ja 0x1012f28a
push 1
lea ecx, [esp + 0x88]
call fcn.10018240
movzx eax, byte [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov dword [ecx], eax
mov eax, dword [esp + 0x38]
mov dword [edx], 3
mov dword [eax], 4
jmp 0x1012f3f0
mov edi, dword [esp + 0x20]
mov dword [edi + 0x28], 0x7f
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Invalid_TLS_1.3_actual_content_type..
mov ecx, esi
call eax
movzx ecx, byte [esp + 0x28]
push ecx
push str.actualContentType
mov ecx, esi
call fcn.100612a0
mov edx, dword [esp + 0x24]
push esi
push edx
push 0x14
push edi
jmp 0x1012ed15
lea eax, [esp + 0x88]
push eax
call fcn.100f6330
sub eax, 8
push eax
mov ecx, edi
call fcn.1008bea0
add eax, 8
jmp 0x1012f3d8
cmp byte [esp + 0x18], 0
je 0x1012f3c1
lea ecx, [esp + 0x88]
push ecx
mov ecx, edi
call fcn.100f6330
push eax
mov ecx, edi
call fcn.1008bea0
mov ecx, dword [ebx + 0x730]
push eax
push ebp
lea eax, [ebx + 0xf8]
push eax
call fcn.100c7420
lea ecx, [esp + 0x84]
mov byte [esp + 0x14], al
call fcn.100f6330
test eax, eax
jbe 0x1012f35e
lea ecx, [ecx]
lea ecx, [esp + 0x84]
call fcn.10018090
test al, al
jne 0x1012f35e
push 1
lea ecx, [esp + 0x88]
call fcn.10018240
lea ecx, [esp + 0x84]
call fcn.100f6330
test eax, eax
ja 0x1012f330
lea ecx, [esp + 0x84]
call fcn.10018090
mov byte [esp + 0x28], al
sub al, 0x14
cmp al, 3
ja 0x1012f3a3
push 1
lea ecx, [esp + 0x88]
call fcn.10018240
movzx edx, byte [esp + 0x28]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov dword [eax], edx
mov edx, dword [esp + 0x38]
mov dword [ecx], 3
mov dword [edx], 4
jmp 0x1012f3f0
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Invalid_TLS_1.3_actual_content_type.
mov ecx, esi
call edx
movzx eax, byte [esp + 0x28]
push eax
push str.actualContentType
jmp 0x1012ed01
lea eax, [esp + 0x88]
push eax
mov ecx, edi
call fcn.100f6330
push eax
mov ecx, edi
call fcn.1008bea0
mov ecx, dword [ebx + 0x730]
push eax
push ebp
lea eax, [ebx + 0xf8]
push eax
call fcn.100c7420
mov byte [esp + 0x14], al
cmp byte [esp + 0x14], 0
mov cl, byte [esp + 0x44]
mov byte [esi + 0x125], cl
jne 0x1012f414
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Failed_to_decrypt_SSL_TLS_record.
mov ecx, esi
call eax
jmp 0x1012ed08
mov eax, dword [ebx + 0xac]
cmp eax, 6
jne 0x1012f4b9
mov ecx, dword [ebx + 0x730]
push esi
push ebp
lea eax, [ebx + 0xf8]
push eax
call fcn.10177a90
test al, al
jne 0x1012f445
push str.GCM_decrypt_finalize_failed.
jmp 0x1012eeca
cmp byte [esi + 0x128], 0
je 0x1012f45c
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.gcm_decrypt_finalize_success.
mov ecx, esi
call eax
lea eax, [esp + 0x84]
push eax
mov ecx, edi
call fcn.10018e70
mov ebp, dword [esp + 0x18]
mov byte [ebp + 0x4c8], 1
mov eax, dword [ebx + 0xac]
cmp eax, 6
je 0x1012f500
cmp eax, 0x63
je 0x1012f500
cmp eax, 7
je 0x1012f500
push esi
mov ecx, edi
call fcn.10019bf0
test al, al
jne 0x1012f4eb
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 + 0x24]
mov edx, dword [esp + 0x20]
push esi
push ecx
push 0x14
push edx
mov ecx, ebp
jmp 0x1012ed19
cmp eax, 7
jne 0x1012f45c
mov ecx, dword [ebx + 0x730]
mov edx, dword [ecx]
push esi
push ebp
lea eax, [ebx + 0xf8]
push eax
mov eax, dword [edx + 0x30]
call eax
test al, al
jne 0x1012f45c
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.AEAD_decrypt_finalize_failed.
mov ecx, esi
call eax
jmp 0x1012ed08
mov ecx, edi
call fcn.10018090
movzx eax, al
add eax, 1
push eax
mov ecx, edi
call fcn.10018240
lea ecx, [esp + 0x84]
mov byte [esp + 0x150], 0
call fcn.10018a90
mov eax, dword [ebx + 0xac]
cmp eax, 6
je 0x1012f7ec
cmp eax, 7
je 0x1012f7ec
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x1012f7ec
cmp eax, 1
mov dword [esp + 0x2c], 0x10
jne 0x1012f551
mov dword [esp + 0x2c], 0x14
jmp 0x1012f56d
cmp eax, 7
jne 0x1012f560
mov dword [esp + 0x2c], 0x20
jmp 0x1012f56d
cmp eax, 2
jne 0x1012f56d
mov dword [esp + 0x2c], 0x30
mov ecx, edi
call fcn.100f6330
mov ebp, eax
cmp ebp, dword [esp + 0x2c]
jae 0x1012f5a5
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 + 0x24]
mov ecx, dword [esp + 0x20]
push esi
push eax
push 0x14
push ecx
mov ecx, dword [esp + 0x28]
call fcn.10121240
jmp 0x1012f937
lea ecx, [esp + 0xa4]
call fcn.100182e0
mov eax, dword [esp + 0x2c]
push eax
sub ebp, eax
push ebp
push edi
lea ecx, [esp + 0xb0]
mov byte [esp + 0x15c], 4
call fcn.1001b180
mov edx, dword [esp + 0x2c]
push edx
mov ecx, edi
call fcn.10018240
mov eax, dword [esp + 0x3c]
cmp dword [eax], 3
mov dword [esp + 0x30], 0
jne 0x1012f688
mov ecx, dword [esp + 0x38]
cmp dword [ecx], 2
jl 0x1012f688
cmp dword [ebx + 0xc4], 0
jbe 0x1012f688
mov ecx, edi
call fcn.100f6330
cmp eax, dword [ebx + 0xc4]
jb 0x1012f651
mov ebp, dword [ebx + 0xc4]
push esi
lea edx, [esp + 0xc8]
push edx
mov ecx, edi
call fcn.100f6330
sub eax, ebp
push eax
push ebp
mov ecx, edi
call fcn.10018030
mov edx, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
mov eax, dword [edx]
push ecx
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
push eax
push edx
jmp 0x1012f6b6
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.100f6330
push eax
push str.tlsMsgSize
mov ecx, esi
call fcn.100612a0
mov eax, dword [ebx + 0xc4]
push eax
push str.cipherSuiteRecordIvLen
mov ecx, esi
call fcn.100612a0
jmp 0x1012f6c3
push esi
lea ecx, [esp + 0xc8]
push ecx
mov ecx, edi
call fcn.100f6330
push eax
mov ecx, edi
call fcn.1008bea0
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
push eax
mov eax, dword [edx]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
push edx
push ecx
push 0
mov ecx, ebx
call fcn.101203d0
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x2c]
lea ecx, [esp + 0xa4]
lea ebp, [esp + 0xc4]
call fcn.1008bea0
cmp edi, 4
jb 0x1012f6f5
nop
mov edx, dword [eax]
cmp edx, dword [ebp]
jne 0x1012f6f9
sub edi, 4
add ebp, 4
add eax, 4
cmp edi, 4
jae 0x1012f6e0
test edi, edi
je 0x1012f75a
movzx ecx, byte [eax]
movzx edx, byte [ebp]
sub ecx, edx
jne 0x1012f74c
sub edi, 1
add ebp, 1
add eax, 1
test edi, edi
je 0x1012f75a
movzx ecx, byte [eax]
movzx edx, byte [ebp]
sub ecx, edx
jne 0x1012f74c
sub edi, 1
add ebp, 1
add eax, 1
test edi, edi
je 0x1012f75a
movzx ecx, byte [eax]
movzx edx, byte [ebp]
sub ecx, edx
jne 0x1012f74c
sub edi, 1
add ebp, 1
add eax, 1
test edi, edi
je 0x1012f75a
movzx ecx, byte [eax]
movzx eax, byte [ebp]
sub ecx, eax
je 0x1012f75a
test ecx, ecx
mov eax, 1
jg 0x1012f75c
or eax, 0xffffffff
jmp 0x1012f75c
xor eax, eax
test eax, eax
je 0x1012f7d8
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Invalid_MAC
mov ecx, esi
call eax
mov ecx, dword [esp + 0x2c]
push ecx
push str.macLen
mov ecx, esi
call fcn.100612a0
mov edx, dword [esp + 0x30]
push edx
push str.macLen2
mov ecx, esi
call fcn.100612a0
lea ecx, [esp + 0xa4]
call fcn.100f6330
push eax
push str.dbMacSize
mov ecx, esi
call fcn.100612a0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push esi
push eax
push 0x14
push ecx
mov ecx, dword [esp + 0x28]
call fcn.10121240
lea ecx, [esp + 0xa4]
mov byte [esp + 0x150], 0
call fcn.10018a90
jmp 0x1012f937
lea ecx, [esp + 0xa4]
mov byte [esp + 0x150], 0
call fcn.10018a90
mov ecx, 0xffffff14
lea eax, [ebx + 0xf3]
sub ecx, ebx
lea esp, [esp]
add byte [eax], 1
jne 0x1012f80f
sub eax, 1
lea edx, [ecx + eax]
test edx, edx
jge 0x1012f800
lea ecx, [esp + 0x48]
mov dword [esp + 0x150], 0xffffffff
call fcn.100616a0
mov al, 1
jmp 0x1012f94d
cmp byte [esi + 0x131], 0
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
mov ecx, esi
je 0x1012f844
push str.Aborted_because_the_application_set_the_AbortCurrent_property..
jmp 0x1012f935
push str.Failed_to_read_TLS_record__2_
call edx
mov ecx, edi
call fcn.100f6330
push eax
push str.tlsRec_msg
mov ecx, esi
call fcn.100612a0
mov eax, dword [esp + 0x34]
push eax
push str.msgLen
mov ecx, esi
call fcn.100612a0
mov ecx, dword [esp + 0x54]
push ecx
push str.nReadNBytes
mov ecx, esi
call fcn.100612a0
movzx edx, byte [esp + 0x14]
push edx
push str.status
mov ecx, esi
call fcn.100612a0
jmp 0x1012f937
mov ecx, edi
call fcn.10095a90
test al, al
je 0x1012f8b0
cmp byte [edi + 0xac], 0
je 0x1012f937
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 0x101e9198
mov ecx, esi
call fcn.100612a0
mov ecx, ebp
call fcn.100f6330
push eax
push str.dbSize
mov ecx, esi
call fcn.100612a0
mov ecx, dword [esp + 0x54]
push ecx
push str.nReadNBytes
mov ecx, esi
call fcn.100612a0
mov edx, dword [esp + 0x160]
push edx
push str.idleTimeoutMs
mov ecx, esi
call fcn.100612a0
mov bl, byte [edi + 0xac]
push esi
push str.readTlsRecord
mov ecx, edi
mov byte [edi + 0xac], 1
call fcn.10095b30
mov byte [edi + 0xac], bl
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.See_https:__cknotes.com_failed_to_read_beginning_of_ssl_tls_record_can_be_caused_by_external_firewall_
mov ecx, esi
call edx
lea ecx, [esp + 0x48]
mov dword [esp + 0x150], 0xffffffff
call fcn.100616a0
xor al, al
mov ecx, dword [esp + 0x148]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x130]
xor ecx, esp
call fcn.1018f87e
add esp, 0x140
ret 0x14