Function at 0x53cf70
Capabilities:
Access peb ldr_data
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x74affb
mov eax, dword fs:[0]
push eax
sub esp, 0x140
mov eax, dword [0x899944]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x1c]
mov dword [ebp - 0xfc], eax
movzx eax, byte [esi + 0xae]
mov edi, ecx
mov ecx, dword [ebp + 0xc]
push eax
push str.readTlsRecord
mov dword [ebp - 0xf4], ecx
push esi
lea ecx, [ebp - 0x130]
mov dword [ebp - 0xf0], edx
mov dword [ebp - 0x134], ebx
call fcn.00474f30
lea eax, [ebx + 4]
mov dword [ebp - 0x11c], eax
mov dword [eax], 0
lea eax, [ebx + 8]
mov dword [ebp - 0x118], eax
mov dword [eax], 0
lea eax, [ebx + 0xc]
lea ecx, [ebx + 0x30]
mov dword [ebp - 4], 0
mov dword [ebp - 0x120], eax
mov dword [eax], 0
mov byte [ebx + 0x10], 0
call fcn.0040fb90
lea ecx, [ebx + 0x14]
mov dword [ebp - 0x104], ecx
call fcn.0040fb90
lea ecx, [ebx + 0x4c]
call fcn.0040fb90
lea ebx, [edi + 0x78]
mov ecx, ebx
mov dword [ebp - 0x144], 0
call fcn.0040fb90
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x144]
push ecx
mov ecx, dword [ebp - 0xf4]
push esi
push edx
push eax
push ebx
push 5
call fcn.0050fa60
mov byte [ebp - 0xf7], al
test al, al
je 0x53e033
mov ecx, ebx
call fcn.004033b0
cmp eax, 5
jne 0x53e033
lea ecx, [edi + 0x78]
call fcn.0040fbb0
mov ebx, eax
mov al, byte [ebx]
test al, al
jns 0x53d614
cmp byte [ebx + 2], 1
jne 0x53d614
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.Received_SSL_2.0_ClientHello.
mov ecx, esi
call eax
cmp byte [ebx + 2], 1
jne 0x53d0f1
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 [ebp - 0xf4]
push esi
mov esi, dword [ebp - 0xf0]
push ecx
mov ecx, dword [ebp - 0xfc]
push 0x47
push esi
call fcn.00534910
mov dword [esi + 0x24], 0x7d
jmp 0x53e0a6
movzx eax, byte [ebx]
movzx edx, byte [ebx + 1]
and eax, 0x7f
shl eax, 8
or eax, edx
cmp byte [esi + 0xae], 0
mov dword [ebp - 0x108], eax
je 0x53d122
push eax
push str.recLen
mov ecx, esi
call fcn.00474a80
mov eax, dword [ebp - 0x108]
test byte [ebx], 0x80
mov dword [ebp - 0x114], 2
jne 0x53d17d
mov cl, byte [ebx + 3]
mov dl, byte [ebx + 4]
movzx ebx, byte [ebx + 2]
add eax, 0xfffffffe
cmp byte [esi + 0xae], 0
mov byte [ebp - 0x100], cl
mov byte [ebp - 0xff], dl
mov dword [ebp - 0x10c], eax
je 0x53d1d7
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
push str.3_byte_record_header...
mov ecx, esi
call edx
push ebx
push str.paddingLen
mov ecx, esi
call fcn.00474a80
mov eax, dword [ebp - 0x10c]
push eax
jmp 0x53d1cb
movzx ecx, byte [ebx + 2]
mov dl, byte [ebx + 3]
mov byte [ebp - 0x100], cl
movzx ecx, byte [ebx + 4]
add eax, 0xfffffffd
cmp byte [esi + 0xae], 0
mov byte [ebp - 0xff], dl
mov byte [ebp - 0xfe], cl
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x114], 3
je 0x53d1d7
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
push str.2_byte_record_header...
mov ecx, esi
call eax
mov ecx, dword [ebp - 0x10c]
push ecx
push str.nToRead
mov ecx, esi
call fcn.00474a80
lea ebx, [edi + 0x78]
mov ecx, ebx
call fcn.0040fb90
mov edx, dword [ebp - 0x114]
push edx
lea eax, [ebp - 0x100]
push eax
mov ecx, ebx
call fcn.00411260
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x144]
push ecx
mov ecx, dword [ebp - 0x10c]
push esi
push edx
push eax
push ebx
push ecx
mov ecx, dword [ebp - 0xf4]
call fcn.0050fa60
mov byte [ebp - 0xf7], al
test al, al
je 0x53d5cd
mov ecx, ebx
call fcn.004033b0
cmp eax, dword [ebp - 0x108]
jne 0x53d5cd
lea ecx, [edi + 0x78]
call fcn.0040fbb0
mov edx, dword [ebp - 0x134]
mov ecx, dword [ebp - 0xfc]
mov ebx, eax
lea eax, [edi + 0x78]
push eax
add ecx, 0x15c
mov byte [edx + 0x68], 1
call fcn.00412840
cmp byte [esi + 0xae], 0
je 0x53d28d
lea ecx, [edi + 0x78]
call fcn.004033b0
push eax
lea ecx, [edi + 0x78]
call fcn.0040fbb0
push eax
push str.fullRecord
mov ecx, esi
call fcn.004741d0
mov eax, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x118]
mov dword [eax], 0x16
movzx ecx, byte [ebx + 1]
mov dword [edx], ecx
movzx eax, byte [ebx + 2]
mov ecx, dword [ebp - 0x120]
mov dword [ecx], eax
call fcn.00535fb0
mov dword [ebp - 0x10c], eax
test eax, eax
je 0x53e0a6
lea ecx, [ebp - 0x2c]
call fcn.00449010
mov eax, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x118]
mov ecx, dword [edx]
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0x24], eax
mov dword [eax + 0x2c], ecx
mov ecx, dword [edx]
mov dword [eax + 0x30], ecx
movzx eax, byte [ebx + 3]
movzx edx, byte [ebx + 4]
movzx ecx, byte [ebx + 6]
shl eax, 8
or eax, edx
movzx edx, byte [ebx + 8]
mov dword [ebp - 0x124], eax
movzx eax, byte [ebx + 5]
shl eax, 8
or eax, ecx
mov dword [ebp - 0x108], eax
movzx eax, byte [ebx + 7]
shl eax, 8
or eax, edx
cmp byte [esi + 0xae], 0
mov byte [ebp - 4], 1
mov dword [ebp - 0x114], eax
je 0x53d36a
mov eax, dword [ebp - 0x124]
push eax
push str.cipherListLen
mov ecx, esi
call fcn.00474a80
mov ecx, dword [ebp - 0x108]
push ecx
push str.sessionIdLen
mov ecx, esi
call fcn.00474a80
mov edx, dword [ebp - 0x114]
push edx
push str.challengeLen
mov ecx, esi
call fcn.00474a80
mov ecx, dword [ebp - 0x124]
lea eax, [ecx - 3]
cmp eax, 0xbd
ja 0x53d5c3
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
jne 0x53d5c3
cmp dword [ebp - 0x108], 0x20
jbe 0x53d3d6
push str.Invalid_session_ID_length
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xf0]
push esi
push ecx
mov ecx, dword [ebp - 0xfc]
push 0xa
push edx
call fcn.00534910
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.00449330
jmp 0x53e0a6
mov eax, dword [ebp - 0x114]
add eax, 0xfffffff8
cmp eax, 0x18
ja 0x53d588
add ebx, 9
test edx, edx
je 0x53d4f6
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x110], edx
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x14c]
mov eax, 2
movzx ecx, byte [eax + ecx]
mov eax, 1
movzx eax, byte [eax + edx]
movzx edx, byte [edx]
shl edx, 8
or eax, edx
cmp byte [esi + 0xae], 0
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x18], eax
je 0x53d459
mov eax, ecx
push eax
push str.cipherKind
mov ecx, esi
call fcn.00474a80
mov ecx, dword [ebp - 0x18]
push ecx
push str.key_len
mov ecx, esi
call fcn.00474a80
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov word [ebp - 0xf8], 0x400
mov word [ebp - 0x140], 0x500
mov word [ebp - 0x138], 0xa00
mov word [ebp - 0x13c], 0x2f00
mov word [ebp - 0x148], 0x3500
test eax, eax
jne 0x53d4e3
cmp ecx, 4
jne 0x53d49a
push 2
lea edx, [ebp - 0xf8]
push edx
jmp 0x53d4d5
cmp ecx, 5
jne 0x53d4a7
lea eax, [ebp - 0x140]
jmp 0x53d4d2
cmp ecx, 0xa
jne 0x53d4b7
push 2
lea ecx, [ebp - 0x138]
push ecx
jmp 0x53d4d5
cmp ecx, 0x2f
jne 0x53d4c7
push 2
lea edx, [ebp - 0x13c]
push edx
jmp 0x53d4d5
cmp ecx, 0x35
jne 0x53d4e3
lea eax, [ebp - 0x148]
push 2
push eax
mov ecx, dword [ebp - 0x10c]
add ecx, 0x6c
call fcn.00411260
add dword [ebp - 0x14c], 3
dec dword [ebp - 0x110]
jne 0x53d3ff
mov ecx, dword [ebp - 0x108]
add ebx, dword [ebp - 0x124]
push ecx
mov ecx, dword [ebp - 0x10c]
push ebx
add ecx, 0x50
call fcn.00411260
mov edx, dword [ebp - 0x114]
add ebx, dword [ebp - 0x108]
push edx
push ebx
mov ebx, dword [ebp - 0x10c]
lea ecx, [ebx + 0x34]
call fcn.00411260
push 0
lea ecx, [ebx + 0x88]
call fcn.00410ec0
lea ecx, [ebp - 0x48]
call fcn.0040fe80
mov eax, dword [ebp - 0x104]
push esi
push eax
mov eax, dword [ebp - 0xfc]
movzx ecx, byte [eax + 0x7e]
push ecx
sub eax, 0xffffff80
push eax
lea edx, [ebp - 0x48]
push edx
push 0
mov ecx, ebx
mov byte [ebp - 4], 2
call fcn.00533370
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 1
call fcn.004105c0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.00449330
jmp 0x53d7aa
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Invalid_challenge_length
mov ecx, esi
call edx
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf0]
push esi
push eax
push 0xa
push ecx
mov ecx, dword [ebp - 0xfc]
call fcn.00534910
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.00449330
jmp 0x53e0a6
push str.Invalid_cipher_list_length
jmp 0x53d3a0
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 [ebp - 0xf7]
push eax
push 0x7a7ff8
mov ecx, esi
call fcn.00474a80
mov ecx, dword [ebp - 0x108]
push ecx
push str.recLen
mov ecx, esi
call fcn.00474a80
mov ecx, ebx
call fcn.004033b0
push eax
push str.dbSize
jmp 0x53e09f
movzx edx, al
mov eax, dword [ebp - 0x11c]
mov dword [eax], edx
movzx ecx, byte [ebx + 1]
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x120]
mov dword [edx], ecx
movzx ecx, byte [ebx + 2]
mov dword [eax], ecx
movzx eax, byte [ebx + 3]
movzx edx, byte [ebx + 4]
and eax, 0x7f
shl eax, 8
or eax, edx
cmp byte [esi + 0xae], 0
mov dword [ebp - 0x108], eax
je 0x53d756
mov edx, dword [ebp - 0x118]
mov eax, dword [edx]
cmp eax, 3
jne 0x53d6a4
test ecx, ecx
jne 0x53d672
mov ebx, str.SSL_3.0
jmp 0x53d6c4
cmp eax, 3
jne 0x53d6a4
cmp ecx, 1
jne 0x53d683
mov ebx, str.TLS_1.0
jmp 0x53d6c4
cmp eax, 3
jne 0x53d6a4
cmp ecx, 2
jne 0x53d694
mov ebx, str.TLS_1.1
jmp 0x53d6c4
cmp eax, 3
jne 0x53d6a4
cmp ecx, eax
jne 0x53d6a4
mov ebx, str.TLS_1.2
jmp 0x53d6c4
mov eax, dword [ebp - 0x120]
push eax
mov ecx, edx
push ecx
push str.v_d._d
lea edx, [ebp - 0x6c]
push 0x20
push edx
call fcn.00421b80
add esp, 0x14
lea ebx, [ebp - 0x6c]
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax]
cmp eax, 0x14
jne 0x53d6d8
mov eax, str.ChangeCipherSpec
jmp 0x53d719
cmp eax, 0x15
jne 0x53d6e4
mov eax, str.Alert
jmp 0x53d719
cmp eax, 0x16
jne 0x53d6f0
mov eax, str.Handshake
jmp 0x53d719
cmp eax, 0x17
jne 0x53d6fc
mov eax, str.Application
jmp 0x53d719
mov ecx, dword [ebp - 0x11c]
push ecx
push str.ct_d
lea edx, [ebp - 0x4c]
push 0x20
push edx
call fcn.00421b60
add esp, 0x10
lea eax, [ebp - 0x4c]
mov ecx, dword [ebp - 0x11c]
cmp dword [ecx], 0x17
je 0x53d756
lea edx, [ebp - 0x108]
push edx
push eax
push ebx
push str._s___s__sz_d
lea eax, [ebp - 0xec]
push 0x80
push eax
call fcn.00421bb0
mov edx, dword [esi]
mov edx, dword [edx + 0x18]
add esp, 0x18
lea eax, [ebp - 0xec]
push eax
mov ecx, esi
call edx
mov ebx, dword [ebp - 0x104]
mov ecx, ebx
call fcn.0040fb90
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp + 0x10]
lea eax, [ebp - 0x144]
push eax
mov eax, dword [ebp - 0x108]
push esi
push ecx
mov ecx, dword [ebp - 0xf4]
push edx
push ebx
push eax
call fcn.0050fa60
mov bl, al
test bl, bl
je 0x53dfdc
mov ecx, dword [ebp - 0x104]
call fcn.004033b0
cmp eax, dword [ebp - 0x108]
jne 0x53dfdc
cmp byte [edi + 0x98], 0
je 0x53dcc9
lea ecx, [ebp - 0x48]
call fcn.0040fe80
mov eax, dword [edi + 0xac]
mov ebx, dword [ebp - 0x104]
mov byte [ebp - 4], 3
cmp eax, 6
jne 0x53d97b
mov ecx, ebx
call fcn.004033b0
lea ecx, [edi + 0x10684]
mov dword [ebp - 0x110], eax
call fcn.0040fb90
push 8
lea ecx, [edi + 0xec]
push ecx
lea ecx, [edi + 0x10684]
call fcn.00411260
cmp dword [ebp - 0x110], 0x18
jae 0x53d848
push str.GCM_fragment_not_large_enough.
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
call eax
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xf0]
push esi
push ecx
push 0x14
push edx
mov ecx, dword [ebp - 0xfc]
call fcn.00534910
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0
call fcn.004105c0
jmp 0x53e0a6
mov ecx, ebx
call fcn.004033b0
mov ecx, dword [ebp - 0x11c]
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x118]
mov byte [ebp - 0x18], dl
movzx edx, byte [ecx]
mov ecx, dword [ebp - 0x120]
mov byte [ebp - 0x17], dl
movzx edx, byte [ecx]
sub eax, 0x18
mov ecx, eax
shr ecx, 8
mov byte [ebp - 0x16], dl
push 5
lea edx, [ebp - 0x18]
mov byte [ebp - 0x15], cl
push edx
lea ecx, [edi + 0x10684]
mov byte [ebp - 0x14], al
call fcn.00411260
lea ecx, [edi + 0xd0]
call fcn.004033b0
cmp eax, 4
je 0x53d8dd
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.GCM_fixed_IV_not_equal_to_4.
mov ecx, esi
call edx
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf0]
push esi
push eax
push 0x14
push ecx
mov ecx, dword [ebp - 0xfc]
call fcn.00534910
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0
call fcn.004105c0
jmp 0x53e0a6
lea ecx, [edi + 0xd0]
call fcn.0040fbb0
mov edx, dword [eax]
mov ecx, ebx
mov dword [ebp - 0x2c], edx
call fcn.0040fbb0
mov ecx, dword [eax]
mov dword [ebp - 0x28], ecx
mov edx, dword [eax + 4]
push 0xc
lea eax, [ebp - 0x2c]
lea ecx, [edi + 0x10638]
push eax
mov dword [ebp - 0x24], edx
call fcn.004e18a0
mov ecx, ebx
call fcn.0040fbb0
mov ecx, dword [ebp - 0x110]
lea edx, [eax + ecx - 0x10]
lea ecx, [edi + 0x106a0]
mov dword [ebp - 0x110], edx
call fcn.0040fb90
mov eax, dword [ebp - 0x110]
push 0x10
push eax
lea ecx, [edi + 0x106a0]
call fcn.00411260
push 0x10
mov ecx, ebx
call fcn.0040fde0
push esi
lea eax, [edi + 0x10638]
push eax
lea ecx, [edi + 0xf8]
push ecx
mov ecx, dword [edi + 0x106c8]
call fcn.0055c0f0
test al, al
jne 0x53db84
push str.GCM_decrypt_setup_failed.
jmp 0x53d812
cmp eax, 7
jne 0x53db84
mov ecx, ebx
call fcn.004033b0
mov dword [ebp - 0x18], eax
cmp eax, 0x10
jae 0x53d9b7
push str.AEAD_fragment_not_large_enough.
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
mov ecx, esi
call edx
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf0]
push esi
push eax
push 0x14
push ecx
jmp 0x53d82c
mov ecx, ebx
call fcn.004033b0
sub eax, 0x10
lea ecx, [edi + 0x10684]
mov dword [ebp - 0x110], eax
call fcn.0040fb90
lea eax, [edi + 0xec]
push 8
push eax
lea ecx, [edi + 0x10684]
call fcn.00411260
mov edx, dword [ebp - 0x11c]
mov al, byte [edx]
mov ecx, dword [ebp - 0x118]
mov dl, byte [ecx]
mov byte [ebp - 0x20], al
mov eax, dword [ebp - 0x120]
mov cl, byte [eax]
mov eax, dword [ebp - 0x110]
mov byte [ebp - 0x1f], dl
mov edx, eax
mov byte [ebp - 0x1c], al
push 5
lea eax, [ebp - 0x20]
mov byte [ebp - 0x1e], cl
shr edx, 8
push eax
lea ecx, [edi + 0x10684]
mov byte [ebp - 0x1d], dl
call fcn.00411260
mov ecx, dword [edi + 0xec]
mov edx, dword [edi + 0xf0]
mov dword [ebp - 0x28], ecx
lea ecx, [edi + 0xd0]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x24], edx
call fcn.004033b0
cmp eax, 0xc
je 0x53da71
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.m_fixedIv_should_be_12_bytes
mov ecx, esi
call edx
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0
call fcn.004105c0
jmp 0x53e0a6
lea ecx, [edi + 0xd0]
call fcn.0040fbb0
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x104], eax
xor edx, edx
sub eax, ecx
mov dword [ebp - 0x110], eax
jmp 0x53da97
mov eax, dword [ebp - 0x110]
lea ecx, [ebp + edx - 0x2c]
movzx eax, byte [ecx + eax]
xor byte [ecx], al
mov eax, dword [ebp - 0x104]
movzx eax, byte [eax + edx + 1]
xor byte [ecx + 1], al
mov eax, dword [ebp - 0x104]
movzx eax, byte [eax + edx + 2]
xor byte [ecx + 2], al
mov eax, dword [ebp - 0x104]
movzx eax, byte [eax + edx + 3]
xor byte [ecx + 3], al
mov eax, dword [ebp - 0x104]
movzx eax, byte [eax + edx + 4]
xor byte [ecx + 4], al
mov eax, dword [ebp - 0x104]
movzx eax, byte [eax + edx + 5]
xor byte [ecx + 5], al
add edx, 6
cmp edx, 0xc
jl 0x53da91
push 0xc
lea edx, [ebp - 0x2c]
lea ecx, [edi + 0x10638]
push edx
call fcn.004e18a0
mov ecx, ebx
call fcn.0040fbb0
mov ecx, dword [ebp - 0x18]
lea edx, [eax + ecx - 0x10]
lea ecx, [edi + 0x106a0]
mov dword [ebp - 0x110], edx
call fcn.0040fb90
mov eax, dword [ebp - 0x110]
push 0x10
push eax
lea ecx, [edi + 0x106a0]
call fcn.00411260
push 0x10
mov ecx, ebx
call fcn.0040fde0
mov ecx, dword [edi + 0x106c8]
mov edx, dword [ecx]
push esi
lea eax, [edi + 0xf8]
push eax
lea eax, [edi + 0x10638]
push eax
mov eax, dword [edx + 0xc]
push 0
call eax
mov ecx, dword [edi + 0x106c8]
mov edx, dword [ecx]
push esi
lea eax, [edi + 0x10638]
push eax
lea eax, [edi + 0xf8]
push eax
mov eax, dword [edx + 0x2c]
call eax
test al, al
jne 0x53db84
push str.AEAD_decrypt_setup_failed.
jmp 0x53d812
mov cl, byte [esi + 0xae]
mov al, byte [esi + 0xad]
mov byte [esi + 0xad], cl
cmp dword [edi + 0xac], 6
mov byte [ebp - 0xf7], al
push esi
mov ecx, ebx
jne 0x53dbc1
lea edx, [ebp - 0x48]
push edx
call fcn.004033b0
sub eax, 8
push eax
mov ecx, ebx
call fcn.0040fbb0
add eax, 8
jmp 0x53dbd2
lea eax, [ebp - 0x48]
push eax
call fcn.004033b0
push eax
mov ecx, ebx
call fcn.0040fbb0
mov ecx, dword [edi + 0x106c8]
push eax
lea eax, [edi + 0x10638]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.004e1bc0
mov cl, byte [ebp - 0xf7]
mov byte [esi + 0xad], cl
test al, al
jne 0x53dc06
push str.Failed_to_decrypt_SSL_TLS_record.
jmp 0x53d812
mov eax, dword [edi + 0xac]
cmp eax, 6
jne 0x53dc39
mov ecx, dword [edi + 0x106c8]
push esi
lea eax, [edi + 0x10638]
push eax
lea eax, [edi + 0xf8]
push eax
call fcn.0055c1e0
test al, al
jne 0x53dc68
push str.GCM_decrypt_finalize_failed.
jmp 0x53d998
cmp eax, 7
jne 0x53dc68
mov ecx, dword [edi + 0x106c8]
mov edx, dword [ecx]
push esi
lea eax, [edi + 0x10638]
push eax
lea eax, [edi + 0xf8]
push eax
mov eax, dword [edx + 0x30]
call eax
test al, al
jne 0x53dc68
push str.AEAD_decrypt_finalize_failed.
jmp 0x53d812
lea eax, [ebp - 0x48]
push eax
mov ecx, ebx
call fcn.00410920
mov ecx, dword [ebp - 0x134]
mov byte [ecx + 0x10], 1
mov eax, dword [edi + 0xac]
cmp eax, 6
je 0x53dcbb
cmp eax, 0x63
je 0x53dcbb
cmp eax, 7
je 0x53dcbb
push esi
mov ecx, ebx
call fcn.004117c0
test al, al
jne 0x53dca8
push str.Invalid_block_cipher_padding_detected.
jmp 0x53d812
mov ecx, ebx
call fcn.0040fc40
movzx eax, al
inc eax
push eax
mov ecx, ebx
call fcn.0040fde0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0
call fcn.004105c0
jmp 0x53dccf
mov ebx, dword [ebp - 0x104]
mov eax, dword [edi + 0xac]
cmp eax, 6
je 0x53dfaa
cmp eax, 7
je 0x53dfaa
mov eax, dword [edi + 0xb0]
test eax, eax
je 0x53dfaa
mov dword [ebp - 0x100], 0x10
cmp eax, 1
jne 0x53dd10
mov dword [ebp - 0x100], 0x14
jmp 0x53dd30
cmp eax, 7
jne 0x53dd21
mov dword [ebp - 0x100], 0x20
jmp 0x53dd30
cmp eax, 2
jne 0x53dd30
mov dword [ebp - 0x100], 0x30
mov ecx, ebx
call fcn.004033b0
mov dword [ebp - 0x134], eax
cmp eax, dword [ebp - 0x100]
jae 0x53dd74
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 [ebp - 0xf4]
mov ecx, dword [ebp - 0xf0]
push esi
push eax
push 0x14
push ecx
mov ecx, dword [ebp - 0xfc]
call fcn.00534910
jmp 0x53e0a6
lea ecx, [ebp - 0x68]
call fcn.0040fe80
mov ecx, dword [ebp - 0x100]
mov eax, dword [ebp - 0x134]
push ecx
sub eax, ecx
push eax
push ebx
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 4
call fcn.00412860
mov edx, dword [ebp - 0x100]
push edx
mov ecx, ebx
call fcn.0040fde0
mov eax, dword [ebp - 0x118]
cmp dword [eax], 3
mov dword [ebp - 0x124], 0
jne 0x53de6e
mov ecx, dword [ebp - 0x120]
cmp dword [ecx], 2
jl 0x53de6e
cmp dword [edi + 0xc4], 0
jbe 0x53de6e
mov ecx, ebx
call fcn.004033b0
cmp eax, dword [edi + 0xc4]
jb 0x53de37
mov edx, dword [edi + 0xc4]
push esi
lea eax, [ebp - 0xac]
push eax
mov ecx, ebx
mov dword [ebp - 0x134], edx
call fcn.004033b0
mov ecx, eax
mov eax, dword [ebp - 0x134]
sub ecx, eax
push ecx
push eax
mov ecx, ebx
call fcn.0040fbe0
mov edx, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x118]
push eax
mov eax, dword [edx]
mov edx, dword [ecx]
push eax
mov eax, dword [ebp - 0x11c]
mov ecx, dword [eax]
push edx
push ecx
jmp 0x53dea1
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Message_not_long_enough_for_the_MAC.
mov ecx, esi
call eax
mov ecx, ebx
call fcn.004033b0
push eax
push str.tlsMsgSize
mov ecx, esi
call fcn.00474a80
mov ecx, dword [edi + 0xc4]
push ecx
push str.cipherSuiteRecordIvLen
mov ecx, esi
call fcn.00474a80
jmp 0x53deb0
push esi
lea edx, [ebp - 0xac]
push edx
mov ecx, ebx
call fcn.004033b0
push eax
mov ecx, ebx
call fcn.0040fbb0
mov edx, dword [ebp - 0x118]
push eax
mov eax, dword [ebp - 0x120]
mov ecx, dword [eax]
mov eax, dword [edx]
push ecx
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ecx]
push eax
push edx
push 0
mov ecx, edi
call fcn.00533c30
mov dword [ebp - 0x124], eax
mov ebx, dword [ebp - 0x100]
lea eax, [ebp - 0xac]
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x114], eax
call fcn.0040fbb0
cmp ebx, 4
jb 0x53def2
nop
mov edx, dword [eax]
mov ecx, dword [ebp - 0x114]
cmp edx, dword [ecx]
jne 0x53df28
sub ebx, 4
add ecx, 4
add eax, 4
mov dword [ebp - 0x114], ecx
cmp ebx, 4
jae 0x53ded0
jmp 0x53def8
mov ecx, dword [ebp - 0x114]
test ebx, ebx
je 0x53df9e
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x53df28
cmp ebx, 1
jbe 0x53df9e
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x53df28
cmp ebx, 2
jbe 0x53df9e
mov cl, byte [ecx + 2]
cmp cl, byte [eax + 2]
je 0x53df9e
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push str.Invalid_MAC
mov ecx, esi
call eax
mov ecx, dword [ebp - 0x100]
push ecx
push str.macLen
mov ecx, esi
call fcn.00474a80
mov edx, dword [ebp - 0x124]
push edx
push str.macLen2
mov ecx, esi
call fcn.00474a80
lea ecx, [ebp - 0x68]
call fcn.004033b0
push eax
push str.dbMacSize
mov ecx, esi
call fcn.00474a80
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf0]
push esi
push eax
push 0x14
push ecx
mov ecx, dword [ebp - 0xfc]
call fcn.00534910
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.004105c0
jmp 0x53e0a6
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0
call fcn.004105c0
mov ecx, 0xffffff14
lea eax, [edi + 0xf3]
sub ecx, edi
inc byte [eax]
jne 0x53dfc3
dec eax
lea edx, [ecx + eax]
test edx, edx
jns 0x53dfb7
lea ecx, [ebp - 0x130]
mov dword [ebp - 4], 0xffffffff
call fcn.00474f80
mov al, 1
jmp 0x53e0ba
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Failed_to_read_TLS_record__2_
mov ecx, esi
call edx
mov ecx, dword [ebp - 0x104]
call fcn.004033b0
push eax
push str.tlsRec_msg
mov ecx, esi
call fcn.00474a80
mov eax, dword [ebp - 0x108]
push eax
push str.msgLen
mov ecx, esi
call fcn.00474a80
mov ecx, dword [ebp - 0x144]
push ecx
push str.nReadNBytes
mov ecx, esi
call fcn.00474a80
movzx edx, bl
push edx
push str.status
jmp 0x53e09f
mov edi, dword [ebp - 0xf0]
mov ecx, edi
call fcn.004a7190
test al, al
je 0x53e04d
cmp byte [edi + 0xa8], 0
je 0x53e0a6
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 [ebp - 0xf7]
push eax
push 0x7a7ff8
mov ecx, esi
call fcn.00474a80
mov ecx, ebx
call fcn.004033b0
push eax
push str.dbSize
mov ecx, esi
call fcn.00474a80
mov ecx, dword [ebp - 0x144]
push ecx
push str.nReadNBytes
mov ecx, esi
call fcn.00474a80
mov edx, dword [ebp + 0x10]
push edx
push str.idleTimeoutMs
mov ecx, esi
call fcn.00474a80
lea ecx, [ebp - 0x130]
mov dword [ebp - 4], 0xffffffff
call fcn.00474f80
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0070bb4c
mov esp, ebp
pop ebp
ret 0x18