Function at 0x591050
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x3d0
mov ebx, ecx
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], edx
call 0x591073
pop edx
cmp dword [ecx + 0x14], 1
jne 0x591144
mov dword [esp + 0x14], ebx
mov ebx, dword [ecx + 0x20]
mov dword [esp + 0x30], edx
test ebx, ebx
je 0x5910f4
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0x1c]
lea eax, [ebx + ebx*8]
lea eax, [eax + eax*2]
mov dword [esp + 0x10], eax
lea ecx, [ebx + eax - 0x1c]
mov eax, edx
mov dword [esp + 0x1c], edx
mov edx, dword [eax]
lea esi, [edx - 2]
cmp esi, 0xe
jb 0x5910f0
jmp 0x5910d0
add eax, 0x1c
add ecx, 0xffffffe4
mov edx, dword [eax]
lea esi, [edx - 2]
cmp esi, 0xe
jb 0x5910f0
test edx, edx
je 0x5910f0
cmp edx, 0x10
jne 0x591247
cmp word [eax + 0x10], 0xa
je 0x5910f4
nop word cs:[eax + eax]
nop
test ecx, ecx
jne 0x5910c0
mov eax, dword [ebp + 8]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0x60001
lea edx, [esp + 0x60]
mov esi, dword [eax]
xor eax, eax
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov eax, dword [esp + 0x14]
mov byte [esi + 0x249], 1
mov word [eax], 0x207
mov dword [eax + 4], 0
jmp 0x591184
mov esi, dword [eax]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0xd0001
xor eax, eax
lea edx, [esp + 0x60]
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov byte [esi + 0x249], 1
mov word [ebx], 0x2308
mov al, 1
mov dword [esp + 0x30], eax
mov bl, 1
cmp dword [edi], 0
je 0x5911a2
push dword [edi + 4]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
test bl, bl
mov ebx, dword [esp + 0xc]
je 0x5911ed
mov eax, dword [ebx + 0x28]
lock dec dword [eax]
jne 0x5911ba
lea ecx, [ebx + 0x28]
call fcn.0058f150
mov esi, dword [ebx + 0x20]
mov edi, dword [ebx + 0x24]
push esi
call dword [edi]
add esp, 4
cmp dword [edi + 4], 0
je 0x5911e4
cmp dword [edi + 8], 9
jb 0x5911d5
mov esi, dword [esi - 4]
push esi
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
test dword [ebx + 0xc], 0x7fffffff
jne 0x591227
cmp byte [esp + 0x30], 0
je 0x59123f
mov edi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x59120d
mov esi, edi
mov ecx, esi
call fcn.0056ed40
add esi, 0x14
dec ebx
jne 0x591200
mov eax, dword [esp + 0xc]
cmp dword [eax], 0
je 0x59123f
push edi
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x59123f
push dword [ebx + 0x10]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp byte [esp + 0x30], 0
jne 0x5911f4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x20], ebx
mov ebx, dword [edi + 8]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
test ebx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x50], eax
je 0x591297
mov ecx, dword [edi + 4]
xor eax, eax
jmp 0x591275
inc eax
cmp ebx, eax
je 0x591293
movzx edx, word [ecx + eax*4]
lea esi, [edx - 7]
cmp esi, 5
jb 0x591270
cmp edx, 3
je 0x591270
cmp edx, 5
je 0x591270
inc eax
mov ecx, 1
jmp 0x59129b
xor ecx, ecx
jmp 0x5912d6
xor eax, eax
xor ecx, ecx
mov edx, ebx
sub edx, eax
je 0x5912d6
shl eax, 2
add eax, dword [edi + 4]
jmp 0x5912b0
inc ecx
add eax, 4
dec edx
je 0x5912d6
movzx edi, word [eax]
cmp edi, 0xb
ja 0x5912a9
mov esi, 0xfa8
bt esi, edi
jae 0x5912a9
mov esi, dword [eax]
lea edi, [ecx*4]
neg edi
mov dword [eax + edi], esi
add eax, 4
dec edx
jne 0x5912b0
mov eax, dword [ebp + 0x18]
sub ebx, ecx
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x20]
lea eax, [eax + ecx - 0x1c]
mov ecx, 0xff7f
mov edi, dword [esi]
lea edx, [esi + 0x1c]
bt ecx, edi
jb 0x591320
jmp 0x59130f
add eax, 0xffffffe4
mov esi, edx
mov edi, dword [esi]
lea edx, [esi + 0x1c]
bt ecx, edi
jb 0x591320
cmp edi, 0x10
jne 0x591382
cmp word [esi + 0x10], 0x1f
je 0x591324
nop dword [eax + eax]
test eax, eax
jne 0x591300
mov eax, dword [ebp + 8]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0x60001
lea edx, [esp + 0x60]
mov esi, dword [eax]
xor eax, eax
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov eax, dword [esp + 0x14]
mov byte [esi + 0x249], 1
mov word [eax], 0x107
mov dword [eax + 4], 0
mov edi, dword [ebp + 0x18]
mov al, 1
mov bl, 1
mov dword [esp + 0x30], eax
jmp 0x59118c
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
lea eax, [eax + ecx - 0x1c]
mov ecx, 0xff7f
mov edi, dword [esi]
lea edx, [esi + 0x1c]
bt ecx, edi
jb 0x5913d0
jmp 0x5913c0
add eax, 0xffffffe4
mov esi, edx
mov edi, dword [esi]
lea edx, [esi + 0x1c]
bt ecx, edi
jb 0x5913d0
cmp edi, 0x10
jne 0x591c9e
cmp word [esi + 0x10], 0x1f
je 0x5913d4
test eax, eax
jne 0x5913b1
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x30], eax
xor eax, eax
jmp 0x5913fb
add eax, 0x1c
cmp dword [esp + 0x30], eax
je 0x591466
mov ecx, dword [edi + eax]
cmp ecx, 0xf
jb 0x5913f2
cmp ecx, 0x10
jne 0x591410
cmp word [edi + eax + 0x10], 0x16
jne 0x5913f2
cmp byte [esi + 0x74], 0
je 0x591dde
mov eax, dword [ebp + 8]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0xd0001
lea edx, [esp + 0x60]
mov esi, dword [eax]
xor eax, eax
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov eax, dword [esp + 0x14]
mov byte [esi + 0x249], 1
mov word [eax], 0x908
jmp 0x591372
lea ecx, [esi + 0x74]
mov dword [esp + 0x4c], 0
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x591591
test edx, edx
je 0x5915ef
shl edx, 4
lea eax, [esi + eax*8]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x54], ebx
mov dword [esp + 0xfc], eax
mov dword [esp + 0x24], edx
mov ebx, dword [esi + 4]
lea eax, [esi + 8]
mov ecx, dword [esi]
mov esi, edx
mov dword [esp + 0x100], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], eax
jmp 0x5914d7
add ebx, 0x10
add esi, 0xfffffff0
je 0x5914f6
push dword [esp + 0x2c]
call dword [esp + 0x2c]
add esp, 4
cmp word [ebx + 0xc], ax
jne 0x5914cf
cmp ax, 0xa
jne 0x59151f
cmp word [ebx + 0xe], dx
jne 0x5914cf
jmp 0x59151f
mov esi, dword [esp + 0x100]
mov edx, dword [esp + 0x24]
cmp esi, dword [esp + 0xfc]
jne 0x5914a9
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
jmp 0x5915fb
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x104], ebx
mov ecx, dword [esp + 0x10]
mov ebx, edi
mov dword [esp + 0x118], 0x80000000
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x20]
lea eax, [eax + ecx - 0x1c]
mov ecx, 0xfdff
jmp 0x591565
test eax, eax
je 0x591595
add eax, 0xffffffe4
mov ebx, edx
mov esi, dword [ebx]
lea edx, [ebx + 0x1c]
bt ecx, esi
jb 0x59155c
cmp esi, 0x10
jne 0x59200b
cmp word [ebx + 0x10], 0x15
mov dword [esp + 0x18], 0
je 0x592180
test eax, eax
jne 0x591560
jmp 0x59159d
xor eax, eax
jmp 0x5915fb
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x20]
mov ecx, edi
call fcn.00592c20
mov ebx, dword [esp + 0xc]
test al, al
je 0x5916e9
mov eax, dword [ebx + 0x28]
mov ecx, dword [esp + 0x118]
mov eax, dword [eax + 0x54]
cmp ecx, 0x80000000
mov dword [esp + 0x1c], ecx
mov dword [ebx + 0x70], eax
jne 0x591966
mov al, 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x1c], 0x80000000
mov dword [esp + 0x20], eax
jmp 0x5919dd
lea ecx, [eax*8]
add ecx, 0xfffffff8
jne 0x5915f6
mov edx, dword [esp + 0x18]
lea eax, [esi + eax*8]
mov dword [esp + 0x60], esi
lea ecx, [esp + 0x60]
mov dword [esp + 0x64], eax
push dword [esp + 0x50]
call fcn.005926a0
add esp, 4
test eax, eax
je 0x59168e
mov esi, dword [esp + 0xc]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [ebp + 0x10]
lea edi, [esi + 0xc]
mov dword [esp + 0x30], eax
mov ecx, edi
call fcn.00585460
cmp byte [esi + 0x74], 0
je 0x5917a0
mov eax, dword [ebp + 8]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0xd0001
lea edx, [esp + 0x60]
mov esi, dword [eax]
xor eax, eax
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov eax, dword [esp + 0x14]
mov byte [esi + 0x249], 1
mov word [eax], 0x2608
jmp 0x591372
mov eax, dword [esp + 0xc]
mov edx, dword [ebp + 0x10]
lea ecx, [eax + 0xc]
call fcn.00585460
mov eax, dword [ebp + 8]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0x60001
lea edx, [esp + 0x60]
mov esi, dword [eax]
xor eax, eax
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov eax, dword [esp + 0x14]
mov byte [esi + 0x249], 1
mov word [eax], 0x607
jmp 0x591372
mov eax, dword [0x94bfb4]
xor ecx, ecx
mov esi, dword [ebp + 0x14]
cmp eax, 4
mov eax, 0xff
setne cl
cmovbe eax, ecx
test al, al
je 0x59170f
movzx eax, al
cmp eax, 0xff
jne 0x591752
mov dword [esp + 0x60], str.Client_unwilling_to_resume__DHE_KE_not_offered
mov dword [esp + 0x64], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0x68], 0x93d1f8
mov dword [esp + 0x6c], 0
lea ecx, [esp + 0x60]
mov edx, 4
push 0x15a
push 0x8a1990
call fcn.004b74d0
add esp, 8
cmp dword [esp + 0x118], 0x80000000
mov dword [ebx + 0x70], 0
je 0x591772
lea ecx, [esp + 0x110]
call fcn.005931a0
mov al, 1
mov dword [esp + 0x118], 0x80000000
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0x80000000
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], eax
jmp 0x5919e0
mov eax, dword [esp + 0xc]
mov esi, dword [ebp + 0x14]
mov eax, dword [eax + 0x2c]
add esi, 0x48
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
push ebx
mov eax, dword [esp + 0x34]
call dword [eax + 0x14]
add esp, 4
mov ecx, dword [esp + 0x1c]
mov ebx, eax
mov eax, edx
mov edx, dword [ecx + 0x30]
movzx ecx, word [ecx + 0x32]
mov dword [esp + 0x30], ecx
mov ecx, edi
push eax
push ebx
mov ebx, dword [esp + 0x18]
push ebx
push esi
push dword [esp + 0x40]
call fcn.00592790
add esp, 0x14
cmp byte [ebx + 0x24c], 0
jne 0x591819
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000002
lea edx, [esp + 0x60]
mov ecx, ebx
push 0
call fcn.0057c7a0
add esp, 4
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [edi + 0x10]
mov edx, 0x4000
movsd xmm1, qword [edi + 8]
mov ebx, dword [ecx + 0x28]
mov eax, dword [ebx + 0x50]
movsd qword [esp + 0x7c], xmm0
movsd xmm0, qword [edi]
movsd qword [esp + 0x74], xmm1
test eax, eax
movsd qword [esp + 0x6c], xmm0
movsd xmm0, qword [ecx]
cmovne edx, eax
mov eax, dword [edi + 0x18]
mov edi, dword [ecx + 0x70]
mov dword [esp + 0x30], edx
mov edx, 0x58
mov dword [esp + 0x84], eax
mov eax, dword [ecx + 8]
movsd qword [esp + 0x60], xmm0
xor ecx, ecx
mov dword [esp + 0x68], eax
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x59262f
movsd xmm0, qword [esp + 0x80]
cmp byte [esp + 0x4c], 0
mov esi, eax
mov ecx, 0x8a1598
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [esp + 0x78]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [esp + 0x70]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [eax + 0x28], ebx
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x40], 0
mov dword [eax + 0x3c], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0
mov dword [eax + 0x4c], 0
mov dword [eax + 0x50], edi
mov word [eax + 0x54], pe_nt_image_headers32
je 0x591947
movzx eax, byte [0x94bfc5]
xor ecx, ecx
mov edx, 8
call fcn.0071ee80
test eax, eax
je 0x59263e
mov ecx, dword [esp + 0x30]
mov dword [eax], esi
mov esi, eax
mov dword [eax + 4], ecx
mov ecx, 0x8a1908
mov eax, dword [esp + 0x14]
mov edi, dword [ebp + 0x18]
mov dword [esp + 0x30], 0
xor ebx, ebx
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov byte [eax], 0x14
jmp 0x59118c
mov edx, dword [esp + 0x128]
lea ecx, [esp + 0x60]
push dword [esp + 0x12c]
call fcn.00419d70
add esp, 4
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
test dword [eax + 0x24], 0x7fffffff
lea esi, [eax + 0x24]
je 0x5919a6
push dword [eax + 0x28]
push 0
push dword [0x94bf18]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x68]
mov ecx, 0x224
mov dword [esi + 8], eax
movsd xmm0, qword [esp + 0x60]
movsd qword [esi], xmm0
add ecx, dword [edx]
lea edx, [esp + 0x130]
call fcn.005932c0
lea eax, [esp + 0x110]
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], eax
mov esi, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
lea ecx, [ebx + 0xc]
mov dword [esp + 0x10], ecx
call fcn.00585460
lea eax, [ebx + 0x30]
mov edi, dword [ebx + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x2c]
xor ebx, ebx
cmp byte [esp + 0x20], 0
mov dword [esp + 0x30], eax
lea eax, [esi + 0x48]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x120]
jne 0x591a1e
mov ebx, dword [esp + 0x11c]
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x10]
add edi, 8
mov esi, dword [ecx]
lea ecx, [esp + 0x60]
push edi
push eax
push ebx
push dword [esp + 0x30]
push dword [esp + 0x28]
lea eax, [esp + 0x118]
push eax
push dword [esp + 0x44]
mov dword [esp + 0x34], esi
push esi
push dword [esp + 0x50]
push dword [esp + 0x74]
call fcn.00593430
add esp, 0x28
mov eax, dword [esp + 0x60]
test eax, eax
sete cl
mov dword [esp + 0x30], ecx
je 0x591c6b
movsd xmm0, qword [esp + 0x64]
movsd xmm1, qword [esp + 0x6c]
lea esi, [esp + 0x74]
lea edi, [esp + 0x1d4]
mov ecx, 0x20
movsd qword [esp + 0x170], xmm1
movsd qword [esp + 0x168], xmm0
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0xf8]
movsd xmm0, qword [esp + 0x168]
movsd xmm1, qword [esp + 0x170]
mov esi, dword [esp + 0xc]
cmp byte [ecx], 0
movsd qword [esp + 0x1c4], xmm0
movsd qword [esp + 0x1cc], xmm1
mov dword [esp + 0x1c0], eax
jne 0x591b0c
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x24c], 0
jne 0x591b0c
mov ecx, dword [esp + 0x18]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000002
lea edx, [esp + 0x60]
push 0
call fcn.0057c7a0
add esp, 4
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
movsd xmm0, qword [esi]
mov edi, dword [esi + 0x28]
mov edx, dword [esp + 0x10]
lea ebx, [esp + 0x168]
mov dword [esp + 0x258], eax
mov dword [esp + 0x25c], ecx
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0x2c]
movsd qword [esp + 0x168], xmm0
add edi, 8
mov dword [esp + 0x170], ecx
lea ecx, [esp + 0x60]
movzx esi, word [eax + 0x32]
push edi
push ebx
push dword [esp + 0x30]
mov edi, dword [ebp + 0x14]
push dword [edi + 0x20]
push dword [edi + 0x1c]
lea edi, [esp + 0x26c]
push edi
push dword [ebp + 8]
push esi
push dword [eax + 0x30]
call fcn.00594560
add esp, 0x24
movzx eax, byte [esp + 0x60]
cmp al, 0x14
jne 0x591c42
cmp dword [esp + 0x1c], 0x80000000
movzx eax, byte [esp + 0x61]
mov byte [esp + 0x2c], al
jne 0x591d36
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x60]
mov eax, dword [eax + 0x28]
push dword [eax + 0x3c]
push dword [eax + 0x38]
push dword [ebp + 8]
call fcn.00594a30
add esp, 0xc
movzx eax, byte [esp + 0x60]
cmp al, 0x14
jne 0x591c42
mov ecx, dword [ebp + 0xc]
movzx eax, byte [esp + 0x61]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov esi, dword [ecx]
mov byte [esp + 0x28], al
mov ecx, edi
mov edx, ebx
push dword [esp + 0x25c]
push dword [esp + 0x25c]
push dword [esi + 8]
push dword [esi + 4]
call fcn.00594e00
add esp, 0x10
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
mov edx, dword [eax + 8]
dec edx
and edx, 0xfffffff8
lea esi, [edx + ecx + 8]
lea ecx, [esp + 0x60]
mov edx, edi
push dword [esp + 0x54]
mov edi, dword [ebp + 0x18]
push dword [edi + 4]
push eax
push esi
push ebx
call fcn.00595210
add esp, 0x14
movzx eax, byte [esp + 0x60]
cmp al, 0x14
jne 0x59215f
cmp byte [esp + 0x28], 0
setne bl
jmp 0x591d38
movzx ecx, byte [esp + 0x61]
movsd xmm0, qword [esp + 0x68]
mov edx, dword [esp + 0x14]
movsd xmm1, qword [esp + 0x62]
movsd qword [edx + 8], xmm0
movsd qword [edx + 2], xmm1
mov byte [edx], al
mov byte [edx + 1], cl
jmp 0x591fdd
movsd xmm0, qword [esp + 0x64]
movsd xmm1, qword [esp + 0x6c]
mov eax, dword [esp + 0x14]
mov edi, dword [ebp + 0x18]
movsd qword [esp + 0x170], xmm1
movsd qword [esp + 0x168], xmm0
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
jmp 0x591fec
mov dword [esp + 0x54], ebx
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov dword [esp + 0x60], 0
mov dword [esp + 0x68], 0
mov esi, eax
lea ecx, [eax + 0xe]
shl ebx, 4
jmp 0x591ce3
test ebx, ebx
je 0x591df0
movzx eax, word [esi + 0xc]
mov dx, 0x17
mov eax, dword [eax*4 + 0x592670]
add eax, dword [esp + 0x30]
jmp eax
xor ebx, ebx
movzx eax, byte [esp + 0x2c]
test eax, eax
je 0x591e57
cmp eax, 1
jne 0x591e98
mov eax, dword [0x94bfb4]
xor ecx, ecx
cmp eax, 4
mov eax, 0xff
setne cl
cmovbe eax, ecx
test al, al
je 0x591d71
movzx eax, al
cmp eax, 0xff
jne 0x591db4
mov dword [esp + 0x60], str.Client_requested_early_data__but_not_accepted:_switching_to_handshake_keys_with_trial_decryption
mov dword [esp + 0x64], 1
mov dword [esp + 0x70], 0
mov dword [esp + 0x68], 0x93d1f8
mov dword [esp + 0x6c], 0
lea ecx, [esp + 0x60]
mov edx, 4
push 0x1a4
push 0x8a1990
call fcn.004b74d0
add esp, 8
mov eax, dword [esp + 0xc]
mov esi, 0x4000
lea ecx, [esp + 0x1c0]
mov edx, 1
mov eax, dword [eax + 0x28]
mov eax, dword [eax + 0x50]
test eax, eax
cmovne esi, eax
push dword [esp + 0x18]
push esi
jmp 0x591e6b
mov esi, dword [esp + 0xc]
mov al, 1
mov dword [esp + 0x4c], eax
lea ecx, [esi + 0x74]
jmp 0x591471
lea ecx, [esp + 0x60]
call fcn.00585350
mov ebx, dword [esp + 0x54]
jmp 0x5913d4
sub esp, 8
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x1c8]
xor edx, edx
mov dword [esp + 4], eax
call fcn.005955f0
add esp, 8
mov eax, dword [ebp + 8]
mov esi, dword [eax + 4]
mov eax, dword [esi]
add eax, 0xfffffffe
cmp eax, 2
ja 0x591e88
cmp eax, 1
jne 0x591e90
lea ecx, [esi + 8]
call fcn.0057e660
mov dword [esi], 4
jmp 0x591ead
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x28]
mov edx, dword [eax + 0x50]
call fcn.005956c0
mov edx, dword [esp + 0x18]
lea edi, [esp + 0x60]
mov ecx, edi
call fcn.00595710
movzx eax, byte [esp + 0x60]
cmp al, 0x14
jne 0x591fc1
lea eax, [esp + 0x1c0]
push 0x94
push eax
push edi
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x2b0]
mov eax, dword [eax + 0x28]
add eax, 8
push eax
push edi
push dword [ebp + 8]
push dword [esp + 0x5c]
call fcn.00595770
add esp, 0x10
test bl, bl
je 0x592074
mov ecx, dword [esp + 0x10]
mov edx, 0x144
mov eax, dword [ecx + 0x18]
movsd xmm1, qword [ecx + 8]
movsd xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
xor ecx, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xc]
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x60], xmm2
movsd xmm1, qword [eax + 0x28]
mov esi, dword [eax + 0x70]
movaps xmmword [esp + 0x30], xmm1
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x59264d
mov edi, eax
mov eax, dword [esp + 0x78]
mov dword [edi + 0x18], eax
mov eax, edi
movsd xmm0, qword [esp + 0x70]
add eax, 0x24
movsd qword [edi + 0x10], xmm0
movsd xmm1, qword [esp + 0x68]
movsd xmm0, qword [esp + 0x60]
movsd qword [edi + 8], xmm1
movaps xmm1, xmmword [esp + 0x30]
movsd qword [edi], xmm0
movlps qword [edi + 0x1c], xmm1
push 0x11c
lea ecx, [esp + 0x2b4]
push ecx
push eax
call fcn.007bd9b0
add esp, 0xc
mov dword [edi + 0x140], esi
mov eax, 0x8a1a48
jmp 0x592239
movsd xmm0, qword [esp + 0x61]
movsd xmm1, qword [esp + 0x68]
mov ecx, dword [esp + 0x14]
movsd qword [ecx + 8], xmm1
movsd qword [ecx + 1], xmm0
mov byte [ecx], al
mov edi, dword [ebp + 0x18]
lea ecx, [esp + 0x1c0]
call fcn.00596300
cmp dword [esp + 0x1c], 0x80000000
je 0x59118a
lea ecx, [esp + 0x110]
call fcn.005931a0
jmp 0x59118a
mov ecx, dword [esp + 0x30]
mov edx, 0xfdff
lea eax, [edi + ecx - 0x1c]
mov ecx, dword [edi + ecx - 0x1c]
bt edx, ecx
jae 0x59226d
mov eax, dword [ebp + 8]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0xd0001
lea edx, [esp + 0x60]
mov esi, dword [eax]
xor eax, eax
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov eax, dword [esp + 0x14]
mov byte [esi + 0x249], 1
mov word [eax], 0x2408
mov edi, dword [ebp + 0x18]
jmp 0x591184
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x28]
cmp byte [eax + 0x5a], 0
je 0x59208a
mov ecx, dword [esp + 0x18]
call fcn.00596270
cmp byte [esp + 0x2c], 2
jne 0x592185
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x24c], 0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x30], eax
jne 0x592190
mov ecx, dword [esp + 0x10]
mov edx, 0x144
mov eax, dword [ecx + 0x18]
movsd xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
xor ecx, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xc]
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm2
mov esi, dword [eax + 0x2c]
mov ebx, dword [eax + 0x70]
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x59264d
mov edi, eax
mov eax, dword [esp + 0x78]
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x70]
movsd qword [edi + 0x10], xmm0
movsd xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
mov dword [edi + 0x1c], eax
mov eax, edi
mov dword [edi + 0x20], esi
add eax, 0x24
push 0x11c
lea ecx, [esp + 0x2b4]
push ecx
push eax
call fcn.007bd9b0
add esp, 0xc
mov eax, 0x8a1a10
mov dword [edi + 0x140], ebx
jmp 0x592239
movsd xmm0, qword [esp + 0x61]
movsd xmm1, qword [esp + 0x68]
mov ecx, dword [esp + 0x14]
movsd qword [ecx + 8], xmm1
movsd qword [ecx + 1], xmm0
mov byte [ecx], al
jmp 0x591fe0
jmp 0x59159d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x10]
mov edx, 0x144
mov eax, dword [ecx + 0x18]
movsd xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
xor ecx, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xc]
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm2
mov ebx, dword [eax + 0x2c]
mov esi, dword [eax + 0x70]
movzx eax, byte [0x94bfc5]
call fcn.0071ee80
test eax, eax
je 0x59264d
mov edi, eax
mov eax, dword [esp + 0x78]
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x70]
movsd qword [edi + 0x10], xmm0
movsd xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
mov dword [edi + 0x1c], eax
mov eax, edi
mov dword [edi + 0x20], ebx
add eax, 0x24
push 0x11c
lea ecx, [esp + 0x2b4]
push ecx
push eax
call fcn.007bd9b0
add esp, 0xc
mov dword [edi + 0x140], esi
mov eax, 0x8a1a2c
mov ecx, dword [esp + 0x14]
cmp byte [esp + 0x20], 0
mov dword [ecx + 4], edi
mov dword [ecx + 8], eax
mov byte [ecx], 0x14
jne 0x592259
lea ecx, [esp + 0x110]
call fcn.005931a0
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
je 0x59123f
mov edi, dword [eax + 4]
jmp 0x591216
cmp ecx, 9
je 0x59227d
cmp word [eax + 0x10], 0x15
jne 0x592025
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
lea ecx, [ecx + edx - 0x1c]
add eax, 0x10
mov edx, 0xfeff
mov esi, dword [eax - 0x10]
bt edx, esi
jb 0x5922b8
jmp 0x5922ad
add eax, 0x1c
add ecx, 0xffffffe4
mov esi, dword [eax - 0x10]
bt edx, esi
jb 0x5922b8
cmp esi, 0x10
jne 0x592308
cmp word [eax], 0x19
je 0x5922bc
test ecx, ecx
jne 0x59229f
mov eax, dword [ebp + 8]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0x190001
lea edx, [esp + 0x60]
mov esi, dword [eax]
xor eax, eax
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov eax, dword [esp + 0x14]
mov byte [esi + 0x249], 1
mov word [eax], 0x1e08
jmp 0x59206c
mov eax, dword [ebx + 0x18]
test eax, eax
mov dword [esp + 0x4c], eax
je 0x5924ba
mov eax, dword [esp + 0x4c]
cmp eax, dword [ebx + 0xc]
jne 0x592506
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x4c]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x24], 0
mov eax, dword [eax + 4]
lea edx, [esi - 1]
add ecx, 0xc
shl esi, 4
and edx, 0xfffffff
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], esi
inc edx
mov dword [esp + 0x58], edx
add eax, 0x30
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x60]
mov edx, dword [eax + 0x28]
mov eax, dword [esp + 0x30]
push dword [eax - 4]
push dword [eax - 8]
call fcn.00592ca0
add esp, 8
cmp dword [esp + 0x68], 0x80000000
jne 0x592393
mov dword [esp + 0x1c8], 0x80000000
jmp 0x592453
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x68]
mov ecx, 0x11
lea edi, [esp + 0x1c8]
mov esi, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x5c], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1c8]
movzx eax, byte [esp + 0xb0]
mov esi, dword [esp + 0xac]
mov byte [esp + 0x18], al
movzx eax, word [edx + 0x4e]
mov dword [esp + 0x28], esi
mov word [ecx + 0x4e], ax
mov eax, dword [edx + 0x4a]
mov dword [ecx + 0x4a], eax
mov eax, dword [esp + 0x30]
mov edi, dword [eax]
call fcn.005a1cb0
sub edi, esi
mov esi, dword [esp + 0x5c]
sub eax, dword [esp + 0x10]
mov ecx, 0
sbb edx, esi
mov dword [esp + 0x1c4], esi
mov esi, dword [esp + 0x10]
cmovb eax, ecx
mov ecx, 0x3e8
mul ecx
mov ecx, 0xffffffff
mov edx, dword [esp + 0x28]
cmovo eax, ecx
mov ecx, edi
sub ecx, eax
mov dword [esp + 0x1c0], esi
neg ecx
sub edi, eax
cmovb edi, ecx
movzx ecx, byte [esp + 0x18]
mov dword [esp + 0x20c], edx
cmp edi, 0xea61
mov byte [esp + 0x210], cl
setb byte [esp + 0x211]
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x168]
lea edx, [esp + 0x1c0]
mov eax, dword [eax + 0x2c]
movzx esi, word [eax + 0x32]
push dword [esp + 0x50]
push esi
push dword [eax + 0x30]
call fcn.00592db0
add esp, 0xc
cmp dword [esp + 0x170], 0x80000000
jne 0x592552
add dword [esp + 0x30], 0x10
inc dword [esp + 0x24]
add dword [esp + 0x2c], 0xfffffff0
mov dword [esp + 0x18], 0
jne 0x59235c
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
jmp 0x59159d
mov eax, dword [ebp + 8]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0x100001
lea edx, [esp + 0x60]
mov esi, dword [eax]
xor eax, eax
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov eax, dword [esp + 0x14]
mov byte [esi + 0x249], 1
mov word [eax], 0x1c08
jmp 0x59206c
mov eax, dword [ebp + 8]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0xd0001
lea edx, [esp + 0x60]
mov esi, dword [eax]
xor eax, eax
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov eax, dword [esp + 0x14]
mov byte [esi + 0x249], 1
mov word [eax], 0x2508
jmp 0x59206c
lea edi, [esp + 0x258]
lea esi, [esp + 0x168]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x24], eax
jae 0x59265c
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0xc]
mov eax, dword [ebx + 0x14]
lea esi, [ecx + ecx*2]
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 0x24]
push dword [eax + esi*4 + 8]
push dword [eax + esi*4 + 4]
push dword [esp + 0x270]
push dword [esp + 0x270]
push dword [ebp + 0x10]
push dword [edi + 0x2c]
call fcn.00592e60
add esp, 0x18
test al, al
je 0x5925d7
lea edi, [esp + 0x110]
lea esi, [esp + 0x258]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x18], 1
mov edi, dword [esp + 0x1c]
jmp 0x59159d
mov eax, dword [ebp + 8]
mov word [esp + 0xdc], 4
mov dword [esp + 0x60], 0x80000000
mov dword [esp + 0x64], 0x110001
lea edx, [esp + 0x60]
mov esi, dword [eax]
xor eax, eax
cmp byte [esi + 0x29], 2
mov ecx, esi
sete al
push eax
call fcn.0057c7a0
add esp, 4
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x258]
mov byte [esi + 0x249], 1
mov word [eax], 0x1608
call fcn.005931a0
jmp 0x59206c
mov ecx, 4
mov edx, 0x58
call fcn.007c1490
mov ecx, 4
mov edx, 8
call fcn.007c1490
mov ecx, 4
mov edx, 0x144
call fcn.007c1490
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x4c]
push 0x8a1924
call fcn.007c1be0
nop
push edx
or al, 0
add byte [ebp - 0x6cfffff4], cl
or al, 0
add byte [ecx - 0x60fffff4], bl
or al, 0
add byte [ebp - 0x54fffff4], ah
or al, 0
add byte [ecx - 0x48fffff4], dh
or al, 0
add byte [ebp + 0x4f00000c], bh
or al, 0
add ah, cl
int3