Function at 0x46ea90
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, 0x1100009c
push edi
push esi
push ebx
sub esp, 0xac
mov ebx, dword [esp + 0xc0]
mov eax, dword [ebx + 0x1c]
cmp eax, 0x10
je 0x46ec90
mov dword [esp], eax
call fcn.004694a0
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 4], str.client_state:__d___s_
mov dword [esp + 8], eax
mov dword [esp], 2
call fcn.00473490
mov dword [esp], ebx
call fcn.00469f70
mov ebp, eax
test eax, eax
jne 0x46ec90
mov esi, dword [ebx + 0x1c]
cmp esi, 0xf
ja case.default.0x46eaf7
jmp dword [esi*4 + 0x48c44c]
mov eax, dword [ebx + 0x7c]
mov ecx, dword [eax + 0x2b0]
test ecx, ecx
je 0x46fc00
mov dword [esp + 4], str.read_new_session_ticket
mov dword [esp], 2
call fcn.00473490
mov dword [esp], ebx
call fcn.0046ab60
test eax, eax
jne 0x46fcd4
cmp dword [ebx + 0xa8], 0x16
jne 0x4703b0
mov eax, dword [ebx + 0xa0]
cmp byte [eax], 4
jne 0x46ff67
mov edx, dword [ebx + 0xb4]
cmp edx, 9
jbe 0x46ff67
movzx edi, word [eax + 8]
rol di, 8
movzx esi, di
lea ecx, [esi + 0xa]
cmp edx, ecx
jne 0x46ff67
mov eax, dword [eax + 4]
mov dword [esp + 8], esi
mov dword [esp + 4], str.ticket_length:__d
mov dword [esp], 3
mov dword [esp + 0x20], eax
call fcn.00473490
mov eax, dword [ebx + 0x7c]
mov dword [eax + 0x2b0], 0
test di, di
je 0x46ec90
mov ecx, dword [ebx + 0x78]
mov edx, dword [ecx + 0x6c]
mov eax, dword [ecx + 0x68]
cmp edx, 7
jbe 0x46ebda
lea edi, [edx - 8]
shr edi, 3
lea edi, [eax + edi*8 + 8]
mov dword [eax], 0
add eax, 8
mov dword [eax - 4], 0
cmp edi, eax
jne 0x46ebc3
and edx, 7
test edx, edx
je 0x46ec1a
mov byte [eax], 0
cmp edx, 1
je 0x46ec17
mov byte [eax + 1], 0
cmp edx, 2
je 0x46ec17
mov byte [eax + 2], 0
cmp edx, 3
je 0x46ec17
mov byte [eax + 3], 0
cmp edx, 4
je 0x46ec17
mov byte [eax + 4], 0
sub edx, 5
je 0x46ec17
mov byte [eax + 5], 0
cmp edx, 1
je 0x46ec17
mov byte [eax + 6], 0
mov ecx, dword [ebx + 0x78]
mov eax, dword [ecx + 0x68]
mov dword [esp], eax
call fcn.004758b8
mov edi, dword [ebx + 0x78]
mov dword [edi + 0x68], 0
mov dword [edi + 0x6c], 0
mov dword [esp], esi
call sub.msvcrt.dll_malloc
mov ebp, eax
test eax, eax
je 0x47099b
mov eax, dword [ebx + 0xa0]
mov dword [esp], ebp
mov dword [esp + 8], esi
add eax, 0xa
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x20]
mov dword [edi + 0x68], ebp
xor ebp, ebp
mov dword [edi + 0x6c], esi
bswap eax
mov dword [edi + 0x70], eax
mov dword [esp + 4], str.ticket_in_use__discarding_session_id
mov dword [esp], 3
call fcn.00473490
mov eax, dword [ebx + 0x78]
mov dword [eax + 0xc], 0
add esp, 0xac
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], str.handshake:_done
mov dword [esp], 2
call fcn.00473490
mov dword [ebx + 0x1c], 0xf
jmp 0x46ec90
mov dword [esp + 8], esi
mov ebp, 0x1100009c
mov dword [esp + 4], str.invalid_state__d
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp], ebx
call fcn.0046cae0
jmp 0x46ec90
mov dword [ebx + 0x1c], 1
mov ebp, esi
jmp 0x46ec90
mov dword [esp + 4], str.write_client_hello
mov dword [esp], 2
call fcn.00473490
mov eax, dword [ebx + 0x20]
test eax, eax
jne 0x46ed27
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x14]
mov dword [ebx + 8], eax
mov dword [ebx + 4], edx
mov eax, dword [ebx + 0xc]
movzx edx, al
test eax, eax
jne 0x46ed54
mov edi, dword [ebx + 0x10]
test edi, edi
jne 0x46fede
mov dword [ebx + 0xc], 3
mov eax, 3
mov edx, 3
mov dword [ebx + 0x10], 3
mov edi, dword [ebx + 0xd0]
mov byte [edi + 4], al
mov eax, dword [ebx + 0x10]
mov byte [edi + 5], al
movzx eax, al
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.client_hello__max_version:___d:_d_
mov dword [esp], 3
call fcn.00473490
mov dword [esp], 0
call sub.msvcrt.dll_time
mov edx, eax
bswap edx
mov dword [edi + 6], edx
mov dword [esp + 8], eax
mov dword [esp + 4], str.client_hello__current_time:__lu
mov dword [esp], 3
call fcn.00473490
lea eax, [edi + 0xa]
mov dword [esp + 4], 0x1c
mov dword [esp], eax
call sub.libgcrypt_20.dll_gcry_create_nonce
mov ecx, dword [ebx + 0x7c]
lea eax, [edi + 6]
mov dword [esp + 0x2c], edi
mov edi, dword [edi + 6]
lea edx, [ecx + 0x3c]
mov dword [ecx + 0x3c], edi
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [edx + 0xc], ecx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x14], ecx
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x18], ecx
mov ecx, dword [eax + 0x1c]
mov dword [edx + 0x1c], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x20
mov dword [esp + 4], str.client_hello__random_bytes
mov dword [esp], 3
call fcn.004736a0
mov eax, dword [esp + 0x2c]
mov edi, dword [ebx + 0x20]
add eax, 0x27
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
test edi, edi
jne 0x46fbd0
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax + 0x68]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x28], ecx
lea ecx, [edx - 0x10]
cmp ecx, 0x10
ja 0x46fcb0
mov ecx, dword [ebx + 0x7c]
mov ecx, dword [ecx + 0x2a0]
test ecx, ecx
je 0x46fcb0
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x470083
mov eax, dword [esp + 0x2c]
mov byte [eax + 0x26], dl
mov eax, dword [esp + 0x20]
lea esi, [esi]
nop
mov ecx, dword [ebx + 0x78]
add eax, 1
movzx ecx, byte [ecx + edi + 0x10]
add edi, 1
mov byte [eax - 1], cl
cmp edi, edx
jb 0x46ee80
mov dword [esp + 0x20], eax
mov dword [esp + 8], edx
mov dword [esp + 4], str.client_hello__session_id_len.:__d
mov dword [esp], 3
mov dword [esp + 0x28], edx
call fcn.00473490
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esp + 4], str.client_hello__session_id
mov dword [esp], 3
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.004736a0
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x20]
mov edi, dword [ebx + eax*4 + 0x120]
mov eax, dword [esp + 0x20]
test ecx, ecx
je 0x46fbe0
add eax, 2
xor esi, esi
xor edx, edx
mov dword [esp + 0x30], eax
test edi, edi
je 0x4700dd
mov eax, dword [edi]
test eax, eax
je 0x4700dd
mov dword [esp + 0x24], ebp
mov ebp, edi
mov edi, dword [esp + 0x30]
lea esi, [esi]
mov dword [esp], eax
call fcn.00470f70
test eax, eax
je 0x46ef82
mov ecx, dword [ebx + 0x10]
mov dword [esp + 8], ecx
mov ecx, dword [ebx + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00471070
test eax, eax
je 0x46ef82
mov eax, dword [ebp]
add esi, 1
add edi, 2
mov dword [esp], eax
call fcn.00470fa0
mov dword [esp + 0xc], eax
mov eax, dword [ebp]
mov dword [esp + 4], str.client_hello__add_ciphersuite:__5d__s
mov dword [esp + 8], eax
mov dword [esp], 5
call fcn.00473490
mov eax, dword [ebp]
mov byte [edi - 2], ah
mov eax, dword [ebp]
mov byte [edi - 1], al
add ebp, 4
mov eax, dword [ebp]
test eax, eax
jne 0x46ef20
mov dword [esp + 0x30], edi
mov eax, esi
mov ebp, dword [esp + 0x24]
lea edx, [esi + esi]
shr eax, 7
mov ecx, dword [esp + 0x20]
mov byte [ecx], al
mov byte [ecx + 1], dl
mov dword [esp + 8], esi
mov dword [esp + 4], str.client_hello__got__d_ciphersuites
mov dword [esp], 3
call fcn.00473490
mov dword [esp + 8], 2
mov dword [esp + 4], str.client_hello__compress_len.:__d
mov dword [esp], 3
call fcn.00473490
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], str.client_hello__compress_alg.:__d__d
mov dword [esp], 3
call fcn.00473490
mov edi, dword [esp + 0x30]
mov edx, 2
lea eax, [edi + 3]
mov byte [edi + 2], 0
mov dword [esp + 0x20], eax
mov eax, 0x102
mov word [edi], ax
mov eax, dword [ebx + 0x148]
test eax, eax
je 0x46f096
mov dword [esp + 8], eax
xor ebp, ebp
mov dword [esp + 4], str.client_hello__adding_server_name_extension:__s
mov dword [esp], 3
call fcn.00473490
mov eax, dword [ebx + 0x148]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov word [edi + 5], bp
mov esi, eax
lea eax, [eax + 5]
mov byte [edi + 0xb], 0
mov byte [edi + 7], ah
lea eax, [esi + 5]
lea ebp, [esi + 9]
mov byte [edi + 8], al
lea eax, [esi + 3]
mov byte [edi + 9], ah
lea eax, [esi + 3]
mov byte [edi + 0xa], al
mov eax, esi
rol ax, 8
mov word [edi + 0xc], ax
mov edx, dword [ebx + 0x148]
lea eax, [edi + 0xe]
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
lea edx, [esi + 0xb]
mov eax, dword [esp + 0x20]
cmp dword [ebx + 0x20], 1
lea edi, [eax + edx]
je 0x46fcfb
cmp dword [ebx + 0x10], 3
lea esi, [ebp + 0x1a]
je 0x46fd67
mov dword [esp + 4], str.client_hello__adding_supported_elliptic_curves_extension
mov dword [esp], 3
call fcn.00473490
mov eax, 0x1c00
mov dword [edi], 0xe000a00
mov word [edi + 0x10], ax
mov dword [edi + 4], 0x17000c00
mov dword [edi + 8], 0x19001800
mov dword [edi + 0xc], 0x1b001a00
mov edi, dword [esp + 0x20]
mov dword [esp + 4], str.client_hello__adding_supported_point_formats_extension
mov dword [esp], 3
lea edi, [edi + ebp + 0x14]
call fcn.00473490
mov edx, 1
mov dword [edi], 0x2000b00
lea eax, [ebp + 0x18]
mov word [edi + 4], dx
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
add esi, edi
cmp byte [ebx + 0xe4], 0
mov dword [esp + 0x28], esi
je 0x46f164
mov dword [esp + 4], str.client_hello__adding_max_fragment_length_extension
mov dword [esp], 3
call fcn.00473490
mov dword [esi], 0x1000100
movzx eax, byte [ebx + 0xe4]
mov byte [esi + 4], al
lea eax, [ebp + 0x1d]
mov dword [esp + 0x24], eax
lea eax, [edi + ebp + 0x1f]
mov dword [esp + 0x28], eax
mov esi, dword [ebx + 0x134]
test esi, esi
je 0x46f1a3
mov dword [esp + 4], str.client_hello__adding_truncated_hmac_extension
mov dword [esp], 3
call fcn.00473490
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov dword [eax], 0x400
mov eax, dword [esp + 0x24]
lea edx, [edx + eax + 6]
add eax, 4
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov ecx, dword [ebx + 0x138]
test ecx, ecx
je 0x46f250
mov eax, dword [ebx + 0x78]
mov ebp, 0x2300
movzx edi, word [eax + 0x6c]
mov esi, dword [eax + 0x6c]
mov dword [esp + 4], str.client_hello__adding_session_ticket_extension
mov dword [esp], 3
rol di, 8
call fcn.00473490
mov eax, dword [esp + 0x28]
mov word [eax], bp
mov word [eax + 2], di
mov eax, dword [ebx + 0x78]
mov edx, dword [eax + 0x68]
test edx, edx
je 0x46fdfc
mov edi, dword [eax + 0x6c]
test edi, edi
je 0x46fdfc
mov dword [esp + 8], esi
mov dword [esp + 4], str.sending_session_ticket_of_length__d
mov dword [esp], 3
call fcn.00473490
mov edx, dword [ebx + 0x78]
mov eax, dword [esp + 0x28]
mov edx, dword [edx + 0x68]
add eax, 4
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
lea eax, [eax + esi + 4]
mov dword [esp + 0x24], eax
lea eax, [edx + eax + 2]
mov dword [esp + 0x28], eax
lea esi, [esi]
mov ecx, dword [ebx + 0x15c]
test ecx, ecx
je 0x46fb2b
mov dword [esp + 4], str.client_hello__adding_alpn_extension
mov dword [esp], 3
call fcn.00473490
mov eax, dword [esp + 0x28]
mov edx, 0x1000
mov word [eax], dx
mov ebp, dword [ebx + 0x15c]
lea edx, [eax + 6]
mov eax, dword [ebp]
test eax, eax
je 0x46fb09
mov dword [esp + 0xc0], ebx
mov ebx, edx
jmp 0x46f2c3
test eax, eax
je 0x46f2b1
movzx edx, byte [esi]
mov byte [ecx], dl
test al, 2
jne 0x470002
add ebp, 4
lea ebx, [ebx + eax + 1]
mov eax, dword [ebp]
test eax, eax
je 0x46fb00
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ecx, [ebx + 1]
mov byte [ebx], al
movzx eax, al
mov esi, dword [ebp]
cmp eax, 4
jb 0x46f2a0
mov edx, dword [esi]
lea edi, [ebx + 5]
and edi, 0xfffffffc
mov dword [ebx + 1], edx
mov edx, dword [esi + eax - 4]
mov dword [ecx + eax - 4], edx
sub ecx, edi
sub esi, ecx
add ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x46f2b1
mov dword [esp + 4], str.read_server_hello
mov dword [esp], 2
call fcn.00473490
mov eax, dword [ebx + 0xa0]
mov dword [esp], ebx
mov dword [esp + 0x20], eax
call fcn.0046ab60
test eax, eax
jne 0x46fcd4
cmp dword [ebx + 0xa8], 0x16
jne 0x46fe18
mov esi, dword [esp + 0x20]
movzx eax, byte [esi + 5]
mov dword [esp + 0xc], eax
movzx eax, byte [esi + 4]
mov dword [esp + 4], str.server_hello__chosen_version:___d:_d_
mov dword [esp + 8], eax
mov dword [esp], 1
call fcn.00473490
cmp dword [ebx + 0xb4], 0x29
jbe 0x46f651
cmp byte [esi], 2
jne 0x46f651
cmp byte [esi + 4], 3
jne 0x46f651
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + 5]
cmp eax, dword [ebx + 0x10]
jg 0x46f651
mov dword [ebx + 8], eax
cmp eax, dword [ebx + 0x18]
jl 0x47067b
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 6]
mov dword [esp + 4], str.server_hello__current_time:__lu
mov dword [esp], 3
bswap eax
mov dword [esp + 8], eax
call fcn.00473490
mov ecx, dword [ebx + 0x7c]
mov esi, dword [edi + 6]
lea eax, [edi + 6]
mov dword [ecx + 0x5c], esi
lea edx, [ecx + 0x5c]
mov ecx, dword [edi + 0xa]
mov dword [edx + 4], ecx
mov ecx, dword [edi + 0xe]
mov dword [edx + 8], ecx
mov ecx, dword [edi + 0x12]
mov dword [edx + 0xc], ecx
mov ecx, dword [edi + 0x16]
mov dword [edx + 0x10], ecx
mov ecx, dword [edi + 0x1a]
mov dword [edx + 0x14], ecx
mov ecx, dword [edi + 0x1e]
mov dword [edx + 0x18], ecx
mov ecx, dword [edi + 0x22]
mov dword [edx + 0x1c], ecx
movzx edx, byte [edi + 0x26]
mov dword [esp + 0xc], 0x20
mov dword [esp + 8], eax
mov dword [esp + 4], str.server_hello__random_bytes
mov dword [esp], 3
mov dword [esp + 0x24], edx
call fcn.004736a0
mov edx, dword [esp + 0x24]
cmp edx, 0x20
ja 0x46f651
mov eax, dword [ebx + 0xb4]
lea ecx, [edx + 0x2a]
cmp eax, ecx
jbe 0x47066e
movzx ecx, word [edi + edx + 0x2a]
mov word [esp + 0x24], cx
rol cx, 8
movzx esi, cx
lea ecx, [esi - 1]
mov dword [esp + 0x2c], esi
cmp ecx, 2
jbe 0x46f651
lea ecx, [edx + esi + 0x2c]
cmp eax, ecx
jne 0x46f651
mov ecx, dword [esp + 0x20]
mov esi, dword [ebx + 0x8c]
mov dword [esp + 0x34], edx
movzx eax, word [ecx + edx + 0x27]
rol ax, 8
movzx edi, ax
lea eax, [ecx + edx + 0x29]
mov dword [esp + 0x30], eax
movzx eax, byte [eax]
mov dword [esp], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0x3b], al
mov dword [esp + 0x28], eax
call fcn.00470f70
mov edx, dword [esp + 0x34]
mov dword [esi], eax
mov eax, dword [ebx + 0x8c]
mov eax, dword [eax]
test eax, eax
je 0x470bca
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 0x34], edx
call fcn.0046ca70
mov edx, dword [esp + 0x34]
mov dword [esp + 4], str.server_hello__session_id_len.:__d
mov dword [esp], 3
mov dword [esp + 8], edx
call fcn.00473490
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
mov dword [esp + 4], str.server_hello__session_id
mov dword [esp], 3
lea esi, [eax + 0x27]
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
call fcn.004736a0
mov eax, dword [ebx + 0x20]
mov edx, dword [esp + 0x34]
mov ecx, dword [ebx + 0x7c]
mov edi, dword [ebx + 0x78]
test eax, eax
jne 0x46f532
mov eax, dword [ecx + 0x2a0]
test eax, eax
je 0x46f532
test edx, edx
jne 0x470a86
add dword [ebx + 0x1c], 1
mov dword [ecx + 0x2a0], 0
mov dword [esp], 0
mov dword [esp + 0x34], edx
call sub.msvcrt.dll_time
mov edx, dword [esp + 0x34]
mov dword [edi], eax
mov edi, dword [ebx + 0x78]
mov eax, dword [esp + 0x24]
mov dword [edi + 0xc], edx
lea ecx, [edi + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x28]
mov dword [edi + 8], eax
cmp edx, 4
jae 0x4706d0
test edx, edx
je 0x46f58e
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + 0x27]
mov byte [edi + 0x10], al
test dl, 2
jne 0x470d39
mov eax, dword [ebx + 0x7c]
mov dword [esp + 0x34], edx
mov ecx, 0x48b7f4
mov edx, dword [eax + 0x2a0]
mov eax, 0x48b7f2
mov dword [esp + 4], str._s_session_has_been_resumed
mov dword [esp], 3
test edx, edx
cmove eax, ecx
mov dword [esp + 8], eax
call fcn.00473490
mov esi, dword [esp + 0x24]
mov dword [esp], esi
call fcn.00470fa0
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.server_hello__chosen_ciphersuite:__d___s_
mov dword [esp], 1
call fcn.00473490
mov eax, dword [esp + 0x30]
movzx eax, byte [eax]
mov dword [esp + 4], str.server_hello__compress_alg.:__d
mov dword [esp], 3
mov dword [esp + 8], eax
call fcn.00473490
mov eax, dword [ebx + 8]
mov eax, dword [ebx + eax*4 + 0x120]
test eax, eax
je 0x46f651
mov edi, dword [eax]
test edi, edi
je 0x46f651
mov esi, dword [ebx + 0x78]
mov edx, dword [esp + 0x34]
mov ecx, dword [esi + 4]
cmp edi, ecx
je 0x4704ad
add eax, 4
jmp 0x46f64b
add eax, 4
cmp edi, ecx
je 0x4704ad
mov edi, dword [eax]
test edi, edi
jne 0x46f640
mov dword [esp + 4], 0x48bb88
mov ebp, 0x110000f5
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp], ebx
call fcn.0046c510
mov ebp, eax
jmp 0x46ec90
mov dword [esp + 4], str.read_server_hello_done
mov dword [esp], 2
call fcn.00473490
mov eax, dword [ebx + 0xbc]
test eax, eax
je 0x46fdc1
cmp dword [ebx + 0xb4], 4
mov dword [ebx + 0xbc], 0
jne 0x46fc90
mov eax, dword [ebx + 0xa0]
cmp byte [eax], 0xe
jne 0x46fc90
add dword [ebx + 0x1c], 1
jmp 0x46ec90
mov dword [esp], ebx
call fcn.0046c310
mov ebp, eax
jmp 0x46ec90
mov eax, dword [ebx + 0x8c]
mov esi, dword [eax]
mov dword [esp], esi
call fcn.00471010
mov edi, eax
cmp eax, 1
je 0x4700c0
lea eax, [eax - 9]
cmp eax, 1
jbe 0x46ffdc
mov dword [esp + 4], str.read_server_key_exchange
mov dword [esp], 2
call fcn.00473490
mov dword [esp], ebx
call fcn.0046ab60
mov ebp, eax
test eax, eax
jne 0x46ffbf
cmp dword [ebx + 0xa8], 0x16
jne 0x47003f
mov ecx, dword [ebx + 0xa0]
mov eax, edi
and eax, 0xfffffffd
cmp byte [ecx], 0xc
je 0x4700e4
cmp eax, 5
jne 0x4703ce
mov dword [ebx + 0xbc], 1
jmp 0x46f6c8
mov eax, dword [ebx + 0x8c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00471010
sub eax, 5
cmp eax, 3
jbe 0x46fbad
mov dword [esp + 4], str.read_certificate_request
mov dword [esp], 2
call fcn.00473490
mov eax, dword [ebx + 0xbc]
test eax, eax
je 0x470011
mov edx, dword [ebx + 0xa0]
add dword [ebx + 0x1c], 1
mov eax, 0x48b7f4
mov dword [ebx + 0x10c], 0
cmp byte [edx], 0xd
jne 0x46f7db
mov dword [ebx + 0x10c], 1
mov eax, 0x48b7f2
mov dword [esp + 8], eax
mov dword [esp + 4], str.got__s_certificate_request
mov dword [esp], 3
call fcn.00473490
mov eax, dword [ebx + 0x10c]
test eax, eax
je 0x46ec90
mov dword [ebx + 0xbc], 0
mov eax, dword [ebx + 0xa0]
mov dword [esp + 0x24], eax
movzx eax, byte [eax + 4]
mov dword [esp + 0x20], eax
add eax, 6
cmp dword [ebx + 0xb4], eax
jb 0x46fad8
mov eax, dword [esp + 0x24]
lea esi, [eax + 5]
mov eax, dword [esp + 0x20]
lea edi, [esi + eax]
test eax, eax
jne 0x46f856
jmp 0x46fa9f
cmp al, 0x40
je 0x46fa70
add esi, 1
cmp esi, edi
je 0x46fa9f
movzx eax, byte [esi]
cmp al, 1
jne 0x46f843
mov eax, dword [ebx + 0x7c]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x46f86a
mov eax, dword [eax + 8]
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00471ed0
test eax, eax
jne 0x47065f
movzx eax, byte [esi]
jmp 0x46f843
mov dword [esp], ebx
call fcn.0046c930
mov ebp, eax
jmp 0x46ec90
mov eax, dword [ebx + 0x8c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00471010
mov dword [esp + 4], str.write_client_key_exchange
mov dword [esp], 2
mov edi, eax
call fcn.00473490
cmp edi, 2
je 0x46fee7
lea eax, [edi - 3]
cmp eax, 1
jbe 0x46fc10
lea eax, [edi - 9]
cmp eax, 1
jbe 0x46fc10
mov ebp, edi
and ebp, 0xfffffffd
cmp ebp, 5
je 0x46fe36
lea eax, [edi - 6]
and eax, 0xfffffffd
je 0x46fe36
cmp edi, 1
jne 0x47071e
mov dword [esp], 0
lea ecx, [esp + 0x60]
mov edx, 4
mov eax, ebx
call fcn.0046e980
mov ebp, eax
test eax, eax
jne 0x46ec90
lea esi, [esi]
nop
mov esi, 4
mov dword [esp], ebx
call fcn.004694c0
mov ebp, eax
test eax, eax
jne 0x46ffa2
mov eax, dword [ebx + 0xd0]
add esi, dword [esp + 0x60]
mov dword [ebx + 0xd4], 0x16
mov dword [ebx + 0xd8], esi
mov byte [eax], 0x10
add dword [ebx + 0x1c], 1
mov dword [esp], ebx
call fcn.0046a0a0
mov ebp, eax
test eax, eax
je 0x46ec90
mov dword [esp + 8], eax
mov dword [esp + 4], str.write_record
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov eax, dword [ebx + 0x8c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00471010
sub eax, 5
cmp eax, 3
jbe 0x46fb90
mov eax, dword [ebx + 0x10c]
test eax, eax
je 0x46fb90
mov eax, dword [ebx + 0x7c]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x46fb90
mov edi, dword [eax + 4]
test edi, edi
je 0x46fb90
mov dword [esp + 4], str.write_certificate_verify
mov dword [esp], 2
call fcn.00473490
mov edx, dword [ebx + 0x7c]
mov eax, dword [edx + 0x18]
test eax, eax
je 0x470065
mov esi, dword [eax + 8]
test esi, esi
je 0x470065
lea eax, [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [edx + 0x2c]
cmp dword [ebx + 8], 3
je 0x47060c
mov dword [esp + 4], 0x789
mov ebp, 0x1100003f
mov dword [esp], str._home_wk_b_gnupg_2.2_dist_PLAY_release_gnupg_w32_2.2.19_PLAY_src_ntbtls_src_protocol_cli.c
call fcn.004735d0
jmp 0x46ec90
mov dword [esp], ebx
call fcn.0046cd60
mov ebp, eax
jmp 0x46ec90
mov dword [esp], ebx
call fcn.0046cec0
mov ebp, eax
jmp 0x46ec90
mov eax, dword [ebx + 0x7c]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x46fa7d
mov eax, dword [eax + 8]
mov dword [esp + 4], 0x12d
mov dword [esp], eax
call fcn.00471ed0
test eax, eax
je 0x46f84b
mov eax, dword [ebx + 0x7c]
mov dword [eax + 4], 0x40
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 0xb4]
movzx eax, word [eax + ecx + 5]
mov word [esp + 0x28], ax
rol ax, 8
cmp dword [ebx + 8], 3
movzx eax, ax
je 0x470411
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax + 7]
cmp eax, edx
je 0x46ec90
mov dword [esp + 4], str.bad_certificate_request_message
mov ebp, 0x110000f1
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov edx, ebx
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x28]
sub edx, esi
add dword [esp + 0x24], edx
lea eax, [edx - 6]
mov byte [esi + 4], ah
lea eax, [edx - 6]
mov byte [esi + 5], al
lea eax, [edx - 4]
mov byte [esi + 2], ah
lea eax, [edx - 4]
mov byte [esi + 3], al
mov esi, dword [esp + 0x24]
mov dword [esp + 4], str.client_hello__total_extension_length:__d
mov dword [esp], 3
mov dword [esp + 8], esi
call fcn.00473490
test esi, esi
je 0x46fb61
mov ecx, dword [esp + 0x30]
mov eax, esi
rol ax, 8
mov word [ecx + 3], ax
lea eax, [ecx + esi + 5]
mov dword [esp + 0x20], eax
mov dword [ebx + 0xd4], 0x16
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x2c]
mov dword [ebx + 0xd8], eax
mov eax, dword [ebx + 0xd0]
mov byte [eax], 1
jmp 0x46f964
mov dword [esp + 4], str.skipping_write_certificate_verify
mov dword [esp], 2
call fcn.00473490
add dword [ebx + 0x1c], 1
jmp 0x46ec90
mov dword [esp + 4], str.skipping_read_certificate_request
mov dword [esp], 2
call fcn.00473490
jmp 0x46f6c8
mov eax, dword [esp + 0x2c]
xor edx, edx
mov byte [eax + 0x26], 0
jmp 0x46ee99
lea edx, [eax + 4]
mov dword [esp + 0x30], edx
mov edx, 0xffffff00
mov word [eax + 2], dx
mov edx, 2
jmp 0x46eefd
mov dword [esp], ebx
call fcn.0046c9b0
mov ebp, eax
jmp 0x46ec90
lea eax, [esp + 0x60]
mov dword [esp + 8], 0x3e8
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xd0]
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x7c]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call fcn.00473030
mov ebp, eax
test eax, eax
jne 0x46ff85
mov eax, dword [ebx + 0x7c]
mov dword [esp + 8], 0x224
lea edx, [eax + 0x38]
mov dword [esp + 0xc], edx
lea edx, [eax + 0x7c]
mov dword [esp + 4], edx
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call fcn.00473280
mov ebp, eax
test eax, eax
je 0x46f930
mov dword [esp + 8], eax
mov dword [esp + 4], str.ecdh_calc_secret
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov dword [esp + 4], str.bad_server_hello_done_message
mov ebp, 0x110000f6
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov edx, dword [esp + 0x28]
test edx, edx
je 0x46fbd0
mov edx, dword [eax + 0x6c]
test edx, edx
jne 0x47008d
mov eax, dword [esp + 0x2c]
mov byte [eax + 0x26], 0
jmp 0x46ee99
mov dword [esp + 8], eax
mov dword [esp + 4], str.read_record
mov dword [esp], 1
mov dword [esp + 0x20], eax
call fcn.00473620
mov eax, dword [esp + 0x20]
mov ebp, eax
jmp 0x46ec90
mov dword [esp + 4], str.client_hello__adding_renegotiation_extension
mov esi, 0x1ff
mov dword [esp], 3
call fcn.00473490
mov word [edi], si
lea ecx, [edi + 5]
mov byte [edi + 2], 0
movzx eax, byte [ebx + 0x168]
add eax, 1
mov byte [edi + 3], al
mov eax, dword [ebx + 0x168]
mov byte [edi + 4], al
mov edx, dword [ebx + 0x168]
lea eax, [ebx + 0x16c]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 0x168]
lea ebp, [ebp + eax + 5]
mov eax, dword [esp + 0x20]
lea edi, [eax + ebp + 2]
jmp 0x46f0a7
mov dword [esp + 4], str.client_hello__adding_signature_algorithms_extension
mov dword [esp], 3
call fcn.00473490
mov eax, dword [esp + 0x20]
mov ecx, 0x302
mov dword [edi], 0x16000d00
mov dword [edi + 4], 0x1061400
mov dword [edi + 8], 0x1040105
mov dword [edi + 0xc], 0x1020103
mov dword [edi + 0x10], 0x3050306
mov dword [edi + 0x14], 0x3030304
mov word [edi + 0x18], cx
lea edi, [eax + ebp + 0x1c]
lea eax, [ebp + 0x34]
mov ebp, esi
mov esi, eax
jmp 0x46f0b4
mov dword [esp], ebx
call fcn.0046ab60
test eax, eax
jne 0x46fcd4
cmp dword [ebx + 0xa8], 0x16
je 0x46f6a2
mov dword [esp + 4], str.bad_server_hello_done_message
mov ebp, 0x110000e6
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
lea edx, [edx + eax + 6]
add eax, 4
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
jmp 0x46f250
mov dword [esp + 4], 0x48bb88
mov ebp, 0x110000e6
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov eax, dword [ebx + 0x14c]
test eax, eax
je 0x470079
mov eax, dword [ebx + 0x154]
test eax, eax
je 0x470079
mov eax, dword [ebx + 0x158]
mov edx, dword [ebx + 0xd0]
mov dword [esp + 0x60], eax
mov byte [edx + 4], ah
mov edx, dword [ebx + 0xd0]
mov byte [edx + 5], al
mov eax, dword [ebx + 0xd0]
mov edx, dword [ebx + 0x154]
mov ecx, dword [ebx + 0x158]
add eax, 6
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 0x158]
lea esi, [eax + 6]
cmp edi, 5
je 0x470472
cmp ebp, 5
je 0x47075b
cmp edi, 6
je 0x470bfa
cmp edi, 8
je 0x4706f8
mov dword [esp + 4], 0x70f
mov ebp, 0x1100003f
mov dword [esp], str._home_wk_b_gnupg_2.2_dist_PLAY_release_gnupg_w32_2.2.19_PLAY_src_ntbtls_src_protocol_cli.c
call fcn.004735d0
jmp 0x46ec90
xor edx, edx
xor eax, eax
jmp 0x46ed54
lea eax, [esp + 0x60]
mov dword [esp + 8], 0x202
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xd0]
add eax, 4
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x7c]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.004729f0
mov ebp, eax
test eax, eax
jne 0x4703f4
mov eax, dword [ebx + 0x7c]
mov dword [esp + 8], 0x224
lea edx, [eax + 0x38]
mov dword [esp + 0xc], edx
lea edx, [eax + 0x7c]
mov dword [esp + 4], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.00472c20
mov ebp, eax
test eax, eax
je 0x46f930
mov dword [esp + 8], eax
mov dword [esp + 4], str.dhm_calc_secret
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov dword [esp + 4], str.bad_new_session_ticket_message
mov ebp, 0x110000ee
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 8], eax
mov dword [esp + 4], str.ecdh_make_public
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov dword [esp + 8], eax
mov dword [esp + 4], str.derive_keys
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov dword [esp + 8], eax
mov dword [esp + 4], str.read_record
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov dword [esp + 8], 0x11000045
mov ebp, 0x11000045
mov dword [esp + 4], str.get_ecdh_params_from_cert
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
movzx edx, word [esi + eax - 2]
mov word [ecx + eax - 2], dx
jmp 0x46f2b1
mov dword [esp], ebx
call fcn.0046ab60
mov esi, eax
test eax, eax
jne 0x47073c
cmp dword [ebx + 0xa8], 0x16
jne 0x47077e
mov dword [ebx + 0xbc], 1
jmp 0x46f7ae
mov dword [esp + 8], 0x531
mov ebp, 0x110000e6
mov dword [esp + 4], str.bad_server_key_exchange_message___d_
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 4], str.got_no_private_key
mov dword [esp], 1
call fcn.00473490
mov ebp, 0x11000011
jmp 0x46ec90
cmp dword [eax + 0x6c], 0
je 0x46ee6d
add eax, 0x10
mov dword [esp + 4], 0x20
mov dword [esp], eax
call sub.libgcrypt_20.dll_gcry_create_nonce
mov eax, dword [ebx + 0x78]
mov edx, 0x20
mov dword [eax + 0xc], 0x20
mov eax, dword [esp + 0x2c]
mov byte [eax + 0x26], 0x20
mov eax, dword [esp + 0x20]
jmp 0x46ee80
mov dword [esp + 4], str.skipping_read_server_key_exchange
mov dword [esp], 2
call fcn.00473490
add dword [ebx + 0x1c], 1
jmp 0x46ec90
xor eax, eax
jmp 0x46ef9c
mov edx, dword [ebx + 0xb4]
mov dword [esp + 0x2c], eax
lea eax, [ecx + 4]
mov dword [esp + 0x20], eax
lea eax, [ecx + edx]
sub edx, 4
mov dword [esp + 4], str.server_key_exchange
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp], 3
mov dword [esp + 0x28], ecx
call fcn.004736a0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp eax, 5
je 0x47043a
lea edx, [edi - 6]
and edx, 0xfffffffd
je 0x47043a
mov eax, edi
and eax, 0xfffffffb
cmp eax, 2
je 0x4709e6
lea eax, [edi - 3]
cmp eax, 1
jbe 0x47015f
cmp edi, 8
jne 0x470d6e
lea eax, [esp + 0x60]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edx
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x7c]
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call fcn.00472dc0
test eax, eax
jne 0x470ddf
mov edx, dword [esp + 0x60]
add dword [esp + 0x20], edx
lea eax, [edi - 2]
cmp eax, 2
ja 0x46f6c8
cmp dword [ebx + 8], 3
jne 0x4709c8
mov edx, dword [esp + 0x20]
lea eax, [edx + 2]
cmp dword [esp + 0x24], eax
jb 0x470c7d
mov eax, dword [ebx + 0xa0]
mov dword [esp + 0x30], eax
movzx eax, byte [edx]
mov dword [esp], eax
call fcn.0046e790
test eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
je 0x470c62
movzx eax, byte [eax + 1]
mov dword [esp], eax
call fcn.0046e770
mov edi, eax
test eax, eax
je 0x470e96
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.libgcrypt_20.dll_gcry_md_algo_name
mov dword [esp + 4], str.Server_used_HashAlgo__s
mov dword [esp + 8], eax
mov dword [esp], 2
call fcn.00473490
mov dword [esp], edi
call sub.libgcrypt_20.dll_gcry_pk_algo_name
mov dword [esp + 4], str.Server_used_SignAlgo__s
mov dword [esp + 8], eax
mov dword [esp], 2
call fcn.00473490
mov dword [esp], esi
call fcn.00471030
mov dword [esp + 0x34], eax
cmp eax, edi
jne 0x470d03
mov eax, dword [esp + 0x20]
movzx edx, word [eax + 2]
add eax, 4
mov dword [esp + 0x2c], eax
mov esi, edx
rol si, 8
movzx esi, si
add eax, esi
cmp dword [esp + 0x24], eax
jne 0x470d48
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], esi
mov dword [esp + 4], str.signature
mov dword [esp + 8], eax
mov dword [esp], 3
call fcn.004736a0
lea edx, [esp + 0x40]
xor eax, eax
mov ecx, 6
mov edi, edx
mov edx, dword [esp + 0x20]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x7c]
mov dword [esp + 0x48], 0x40
add eax, 0x3c
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0xa0]
add eax, 4
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x30]
add eax, 4
sub edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x58], edx
mov dword [esp], eax
call sub.libgcrypt_20.dll_gcry_md_get_algo_dlen
mov edx, eax
mov dword [esp + 0x20], eax
mov eax, 0x1100003b
cmp edx, 0x40
ja 0x46fa68
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x40]
lea edi, [esp + 0x60]
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], edx
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.libgcrypt_20.dll_gcry_md_hash_buffers
test eax, eax
jne 0x46fa68
mov eax, dword [esp + 0x20]
mov dword [esp + 8], edi
mov dword [esp + 4], str.parameters_hash
mov dword [esp + 0xc], eax
mov dword [esp], 3
call fcn.004736a0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x78]
mov eax, dword [eax + 0x60]
mov dword [esp], eax
call fcn.00471100
mov dword [esp + 4], str.pk_verify
mov dword [esp + 8], eax
mov esi, eax
mov dword [esp], 1
call fcn.00473620
test esi, esi
je 0x46f6c8
mov ebp, esi
jmp 0x46ec90
mov dword [esp + 4], str.bad_new_session_ticket_message
mov ebp, 0x110000e6
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 8], 0x541
mov ebp, 0x110000e6
mov dword [esp + 4], str.bad_server_key_exchange_message___d_
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 8], eax
mov dword [esp + 4], str.dhm_make_public
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
add eax, ecx
lea ecx, [eax + 6]
cmp ecx, edx
ja 0x46fad8
lea ecx, [eax + 2]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x24]
movzx eax, word [ecx + eax + 7]
rol ax, 8
movzx eax, ax
jmp 0x46fac8
lea edx, [ecx + 5]
cmp dword [esp + 0x24], edx
ja 0x470ced
movzx edx, word [ecx + 4]
rol dx, 8
movzx edx, dx
lea edx, [ecx + edx + 6]
mov dword [esp + 0x20], edx
cmp dword [esp + 0x24], edx
jb 0x470cb3
cmp eax, 5
je 0x470197
jmp 0x470140
mov dword [esp + 0x60], 0
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00469da0
mov ebp, eax
test eax, eax
je 0x46f935
mov dword [esp + 8], eax
mov dword [esp + 4], str.psk_derive_premaster
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
cmp byte [esp + 0x3b], 1
ja 0x46f651
mov eax, dword [esp + 0x28]
mov dword [esi + 8], eax
mov esi, dword [esp + 0x2c]
mov dword [esp + 4], str.server_hello__total_extension_length:__d
mov eax, dword [esp + 0x20]
mov dword [esp + 8], esi
mov dword [esp], 2
lea edi, [eax + edx + 0x2c]
call fcn.00473490
mov ecx, esi
test esi, esi
je 0x470ebb
movzx edx, word [edi + 2]
movzx eax, word [edi]
rol dx, 8
rol ax, 8
movzx esi, dx
movzx eax, ax
lea edx, [esi + 4]
mov dword [esp + 0x20], edx
mov edx, ecx
lea ecx, [esi + 4]
cmp edx, ecx
jb 0x46f651
mov dword [esp + 0x24], 0
mov dword [esp + 0x30], ebp
mov ebp, edx
cmp eax, 0xb
je 0x4707d6
jbe 0x4705b0
cmp eax, 0x23
je 0x470957
cmp eax, 0xff01
je 0x47090f
cmp eax, 0x10
je 0x47083f
mov dword [esp + 8], eax
mov dword [esp + 4], str.unknown_extension_found:__d__ignoring_
mov dword [esp], 2
call fcn.00473490
mov eax, ebp
add edi, dword [esp + 0x20]
sub eax, esi
lea ebp, [eax - 4]
sub eax, 5
cmp eax, 2
jbe 0x46f651
test ebp, ebp
je 0x470d8c
movzx esi, word [edi + 2]
movzx eax, word [edi]
rol si, 8
rol ax, 8
movzx esi, si
movzx eax, ax
lea edx, [esi + 4]
mov dword [esp + 0x20], edx
cmp edx, ebp
jbe 0x470524
jmp 0x46f651
cmp eax, 1
je 0x47079c
cmp eax, 4
jne 0x470550
mov dword [esp + 4], str.found_truncated_hmac_extension
mov dword [esp], 2
call fcn.00473490
cmp dword [ebx + 0x134], 0
je 0x470602
test esi, esi
jne 0x470602
mov eax, dword [ebx + 0x78]
mov dword [eax + 0x78], 1
jmp 0x470568
mov dword [esp + 4], str.bad_server_hello_message
mov dword [esp], 1
call fcn.00473490
mov ebp, 0x110000f5
jmp 0x46ec90
mov eax, dword [ebx + 0x8c]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00471000
cmp eax, 0x68
mov eax, dword [ebx + 0xd0]
je 0x470992
mov byte [eax + 4], 4
mov eax, dword [ebx + 0xd0]
mov ebp, 0x11000045
mov byte [eax + 5], 0
mov dword [esp + 8], 0x11000045
mov dword [esp + 4], str.pk_sign
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov eax, dword [ebx + 0x7c]
mov dword [eax + 4], 1
jmp 0x46fa9f
mov dword [esp + 0x2c], 0
jmp 0x46f46d
mov ecx, dword [esp + 0x20]
mov ebp, 0x11000079
movzx edx, byte [ecx + 5]
mov dword [esp + 0x14], edx
movzx edx, byte [ecx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov eax, dword [ebx + 4]
mov dword [esp + 4], str.server_only_supports_TLS_smaller_than_minimum___d:_d______d:_d_
mov dword [esp + 8], eax
mov dword [esp], 1
call fcn.00473490
mov dword [esp + 8], 0x46
mov dword [esp + 4], 2
mov dword [esp], ebx
call fcn.0046c280
jmp 0x46ec90
mov eax, dword [esp + 0x20]
add edi, 0x14
mov eax, dword [eax + 0x27]
mov dword [edi - 4], eax
mov eax, dword [esi + edx - 4]
and edi, 0xfffffffc
mov dword [ecx + edx - 4], eax
sub ecx, edi
sub esi, ecx
add ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
jmp 0x46f58e
mov dword [esp + 8], 0x11000045
mov ebp, 0x11000045
mov dword [esp + 4], str.ecdh_make_public
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov dword [esp + 4], 0x723
mov ebp, 0x1100003f
mov dword [esp], str._home_wk_b_gnupg_2.2_dist_PLAY_release_gnupg_w32_2.2.19_PLAY_src_ntbtls_src_protocol_cli.c
call fcn.004735d0
jmp 0x46ec90
mov dword [esp + 8], eax
mov ebp, esi
mov dword [esp + 4], str.read_record
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov dword [esp], 2
lea ecx, [esp + 0x60]
mov edx, esi
mov eax, ebx
call fcn.0046e980
mov ebp, eax
test eax, eax
je 0x47047a
jmp 0x46ec90
mov dword [esp + 4], str.bad_certificate_request_message
mov ebp, 0x110000e6
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 4], str.found_max_fragment_length_extension
mov dword [esp], 2
call fcn.00473490
movzx eax, byte [ebx + 0xe4]
test al, al
je 0x470602
cmp esi, 1
jne 0x470602
cmp al, byte [edi + 4]
je 0x470568
jmp 0x470602
mov dword [esp + 4], str.found_supported_point_formats_extension
mov dword [esp], 2
call fcn.00473490
movzx edx, byte [edi + 4]
lea eax, [edx + 1]
cmp eax, esi
jne 0x4705ee
test edx, edx
je 0x470821
cmp byte [edi + 5], 0
je 0x470c41
lea eax, [edi + 6]
lea edx, [edi + edx + 5]
jmp 0x47081d
add eax, 1
cmp byte [eax - 1], 0
je 0x470c41
cmp eax, edx
jne 0x470810
mov dword [esp + 4], str.no_point_format_in_common
mov ebp, 0x110000f5
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 4], str.found_alpn_extension
mov dword [esp], 2
call fcn.00473490
mov ecx, dword [ebx + 0x15c]
test ecx, ecx
je 0x470602
cmp esi, 3
jbe 0x470602
movzx eax, word [edi + 4]
lea edx, [esi - 2]
rol ax, 8
movzx eax, ax
cmp eax, edx
jne 0x470602
movzx eax, byte [edi + 6]
mov edx, eax
mov dword [esp + 0x28], eax
lea eax, [esi - 3]
cmp edx, eax
jne 0x470602
mov edx, dword [ecx]
test edx, edx
je 0x470602
lea eax, [edi + 7]
mov dword [esp + 0x34], esi
mov esi, ecx
mov dword [esp + 0xc0], ebx
mov ebx, edx
mov dword [esp + 0x2c], eax
jmp 0x4708cd
add esi, 4
mov ebx, dword [esi]
test ebx, ebx
je 0x470602
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
cmp dword [esp + 0x28], eax
jne 0x4708c0
mov eax, dword [esp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4708c0
mov edx, ebx
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0x34]
mov dword [ebx + 0x160], edx
jmp 0x470568
mov dword [esp + 4], str.found_renegotiation_extension
mov dword [esp], 2
call fcn.00473490
cmp dword [ebx + 0x20], 0
jne 0x470b14
cmp esi, 1
jne 0x470bf0
cmp byte [edi + 4], 0
jne 0x470bf0
mov dword [ebx + 0x164], 1
mov dword [esp + 0x24], 1
jmp 0x470568
mov dword [esp + 4], str.found_session_ticket_extension
mov dword [esp], 2
call fcn.00473490
cmp dword [ebx + 0x138], 0
je 0x470602
test esi, esi
jne 0x470602
mov eax, dword [ebx + 0x7c]
mov dword [eax + 0x2b0], 1
jmp 0x470568
mov byte [eax + 4], 5
jmp 0x47062f
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
mov ebp, eax
test eax, eax
je 0x4709af
movzx ebp, ax
or ebp, 0x11000000
mov dword [esp + 4], str.ticket_malloc_failed
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 4], 0x592
mov ebp, 0x1100003f
mov dword [esp], str._home_wk_b_gnupg_2.2_dist_PLAY_release_gnupg_w32_2.2.19_PLAY_src_ntbtls_src_protocol_cli.c
call fcn.004735d0
jmp 0x46ec90
lea eax, [esp + 0x60]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], edx
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x7c]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.004726c0
test eax, eax
jne 0x470e08
mov eax, dword [ebx + 0x7c]
mov edx, dword [esp + 0x60]
add dword [esp + 0x20], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.004729c0
lea edx, [eax - 0x400]
cmp edx, 0xc00
jbe 0x470197
mov dword [esp + 8], eax
mov dword [esp + 4], str.bad_server_key_exchange_message__DHM_length:__u_
mov dword [esp], 1
call fcn.00473490
mov eax, 0x110000f8
mov dword [esp + 0x20], eax
mov dword [esp + 8], 0x55f
mov dword [esp + 4], str.bad_server_key_exchange_message___d_
mov dword [esp], 1
call fcn.00473490
mov eax, dword [esp + 0x20]
mov ebp, eax
jmp 0x46ec90
mov eax, dword [esp + 0x24]
cmp eax, dword [edi + 4]
jne 0x46f532
mov eax, dword [esp + 0x28]
cmp eax, dword [edi + 8]
jne 0x46f532
cmp edx, dword [edi + 0xc]
jne 0x46f532
lea eax, [edi + 0x10]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], edx
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
test eax, eax
jne 0x46f532
mov dword [ebx + 0x1c], 0xc
mov dword [esp], ebx
mov dword [esp + 0x34], edx
call fcn.004694c0
mov edx, dword [esp + 0x34]
test eax, eax
mov esi, eax
je 0x46f58e
mov dword [esp + 8], eax
mov ebp, esi
mov dword [esp + 4], str.derive_keys
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov eax, dword [ebx + 0x168]
mov dword [esp + 0x24], eax
add eax, eax
lea edx, [eax + 1]
cmp edx, esi
jne 0x470b9f
movzx edx, byte [edi + 4]
cmp eax, edx
jne 0x470b9f
xor eax, eax
xor ecx, ecx
jmp 0x470b4c
add eax, 1
movzx edx, byte [ebx + eax + 0x16b]
cmp byte [edi + eax + 4], dl
setne dl
movzx edx, dl
sub ecx, edx
cmp dword [esp + 0x24], eax
jne 0x470b35
test ecx, ecx
jne 0x470b9f
lea edx, [edi + eax]
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], edx
xor edx, edx
mov dword [esp + 0x2c], eax
jmp 0x470b84
mov esi, dword [esp + 0x24]
movzx eax, byte [ebx + edx + 0x190]
cmp byte [edx + esi + 5], al
setne al
add edx, 1
movzx eax, al
sub ecx, eax
cmp dword [esp + 0x2c], edx
jne 0x470b69
mov esi, dword [esp + 0x28]
test ecx, ecx
jne 0x470b9f
mov dword [esp + 0x24], 1
jmp 0x470568
mov dword [esp + 4], str.non_matching_renegotiated_connection_field
mov dword [esp], 1
call fcn.00473490
mov dword [esp], ebx
call fcn.0046c200
mov ebp, eax
test eax, eax
jne 0x46ec90
jmp 0x470602
mov eax, dword [esp + 0x24]
mov dword [esp + 4], str.ciphersuite_info_for__04x_not_found
mov ebp, 0x1100002d
mov dword [esp], 1
mov dword [esp + 8], eax
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 4], str.non_zero_length_renegotiated_connection_field
jmp 0x470ba7
mov edx, dword [ebx + 0xd0]
mov dword [esp + 0x60], 0
mov ebp, 0x11000045
mov byte [edx + eax + 6], 0
mov edx, dword [ebx + 0xd0]
mov ecx, dword [esp + 0x60]
mov byte [edx + eax + 7], cl
mov dword [esp + 8], 0x11000045
mov dword [esp + 4], str.dhm_make_public
mov dword [esp], 1
call fcn.00473620
jmp 0x46ec90
mov dword [esp + 8], 0
mov dword [esp + 4], str.point_format_selected:__d
mov dword [esp], 4
call fcn.00473490
jmp 0x470568
movzx eax, byte [eax]
mov dword [esp + 4], str.Server_used_unsupported_HashAlgorithm__d
mov dword [esp], 2
mov dword [esp + 8], eax
call fcn.00473490
mov dword [esp], 0x110000f8
mov ebp, 0x110000f8
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp + 8], 0x584
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.bad_server_key_exchange_message___d_:__s
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 4], str.bad_server_key_exchange_message__psk_identity_hint_too_long_
mov dword [esp], 1
call fcn.00473490
mov dword [esp + 8], 0x551
mov ebp, 0x110000f8
mov dword [esp + 4], str.bad_server_key_exchange_message___d_
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 4], str.bad_server_key_exchange_message__psk_identity_hint_too_short_
mov dword [esp], 1
call fcn.00473490
jmp 0x470cc7
mov dword [esp], 0
mov ebp, 0x110000f8
call sub.libgpg_error_0.dll_gpg_strerror
mov dword [esp + 8], 0x58b
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.bad_server_key_exchange_message___d_:__s
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
movzx eax, word [esi + edx - 2]
mov word [ecx + edx - 2], ax
jmp 0x46f58e
mov dword [esp + 8], 0x59e
mov ebp, 0x110000f8
mov dword [esp + 4], str.bad_server_key_exchange_message___d_
mov dword [esp], 1
call fcn.00473490
jmp 0x46ec90
mov dword [esp + 4], 0x570
mov ebp, 0x1100003f
mov dword [esp], str._home_wk_b_gnupg_2.2_dist_PLAY_release_gnupg_w32_2.2.19_PLAY_src_ntbtls_src_protocol_cli.c
call fcn.004735d0
jmp 0x46ec90
mov ebp, dword [esp + 0x30]
mov eax, dword [ebx + 0x164]
test eax, eax
jne 0x470e5f
mov eax, dword [ebx + 0x118]
cmp eax, 2
je 0x470e46
cmp dword [ebx + 0x20], 1
jne 0x46ec90
test eax, eax
je 0x470e2d
cmp dword [esp + 0x24], 0
je 0x46ec90
mov dword [esp + 4], str.renegotiation_info_extension_present__legacy_
mov dword [esp], 1
call fcn.00473490
jmp 0x470bb3
mov dword [esp + 8], eax
mov dword [esp + 4], str.ecdh_read_params
mov dword [esp], 1
mov dword [esp + 0x20], eax
call fcn.00473620
mov dword [esp + 8], 0x56a
jmp 0x470a67
mov dword [esp + 8], eax
mov dword [esp + 4], str.dhm_read_params
mov dword [esp], 2
mov dword [esp + 0x20], eax
call fcn.00473620
mov eax, dword [esp + 0x20]
jmp 0x470a5b
mov dword [esp + 4], str.legacy_renegotiation_not_allowed
mov dword [esp], 1
call fcn.00473490
jmp 0x470bb3
mov dword [esp + 4], str.legacy_renegotiation__breaking_off_handshake
mov dword [esp], 1
call fcn.00473490
jmp 0x470bb3
cmp dword [ebx + 0x20], 1
jne 0x46ec90
sub eax, 1
jne 0x46ec90
cmp dword [esp + 0x24], 0
jne 0x46ec90
mov dword [esp + 4], str.renegotiation_info_extension_missing__secure_
mov dword [esp], 1
call fcn.00473490
jmp 0x470bb3
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + 1]
mov dword [esp + 4], str.server_used_unsupported_SignatureAlgorithm__d
mov dword [esp], 2
mov dword [esp + 8], eax
call fcn.00473490
jmp 0x470c7d
mov dword [esp + 0x24], 0
jmp 0x470d90