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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
movzx eax, word [ecx + 0x158]
cmp dword [ecx + 0x218], eax
jae 0x420c9c
push 0x128
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
test eax, eax
je 0x420ca8
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [eax + 0xe8], xmm0
movups xmmword [eax + 0x118], xmm0
movups xmmword [eax + 0x108], xmm0
movups xmmword [eax + 0xf8], xmm0
movups xmmword [eax + 0xd8], xmm0
movups xmmword [eax + 0xc8], xmm0
movups xmmword [eax + 0xb8], xmm0
movups xmmword [eax + 0xa8], xmm0
movups xmmword [eax + 0x98], xmm0
movups xmmword [eax + 0x88], xmm0
movups xmmword [eax + 0x78], xmm0
movups xmmword [eax + 0x68], xmm0
movups xmmword [eax + 0x58], xmm0
movups xmmword [eax + 0x48], xmm0
add eax, 0x118
mov word [ecx + 0xf0], 5
mov dword [ecx + 0x11c], eax
mov esi, dword [0x570338]
mov edx, 0x4c957f2d
mov eax, esi
mov dword [esp + 0x18], ecx
mul edx
imul ebx, esi, 0x5851f42d
add ebx, edx
mov ecx, dword [0x57033c]
imul edi, ecx, 0x4c957f2d
add edi, ebx
mov edx, dword [0x570340]
mov dword [esp + 0xc], edx
add eax, edx
mov dword [esp + 0x1c], eax
mov edx, dword [0x570344]
mov dword [esp + 0x14], edx
adc edi, edx
mov ebx, ecx
shr ebx, 0xd
shrd esi, ecx, 0x1b
mov edx, 0x4c957f2d
mul edx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
xor esi, ebx
mov edx, dword [esp + 0x1c]
imul eax, edx, 0x5851f42d
add eax, dword [esp + 8]
imul ebx, edi, 0x4c957f2d
add ebx, eax
shr ecx, 0x1b
ror esi, cl
mov dword [esp + 8], esi
mov esi, dword [esp + 4]
add esi, dword [esp + 0xc]
adc ebx, dword [esp + 0x14]
mov eax, edi
mov dword [esp + 0x10], edi
shld edi, edx, 5
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 0x10c]
mov dword [ecx + 0x110], edx
shr eax, 0xd
xor edi, eax
mov ecx, esi
mov dword [esp + 4], esi
mov eax, esi
mov edx, 0x4c957f2d
mul edx
mov esi, eax
imul ecx, ecx, 0x5851f42d
add ecx, edx
imul eax, ebx, 0x4c957f2d
add ecx, eax
mov edx, ecx
mov eax, dword [esp + 0x18]
mov word [eax + 0xb8], 1
mov dword [eax + 0xbc], 4
mov ecx, dword [esp + 8]
mov dword [eax + 0xc0], ecx
mov ecx, dword [esp + 0x10]
shr ecx, 0x1b
ror edi, cl
mov word [eax + 0xc4], di
shr edi, 0x10
mov eax, esi
add eax, dword [esp + 0xc]
mov dword [esp + 0x10], eax
adc edx, dword [esp + 0x14]
mov dword [esp + 8], edx
mov esi, ebx
mov ecx, ebx
mov edx, dword [esp + 4]
shld ebx, edx, 5
shr esi, 0xd
mov edx, 0x4c957f2d
mul edx
mov dword [esp + 4], eax
xor ebx, esi
imul esi, dword [esp + 0x10], 0x5851f42d
add esi, edx
imul eax, dword [esp + 8], 0x4c957f2d
add esi, eax
mov edx, dword [esp + 0x18]
mov word [edx + 0xc6], di
shr ecx, 0x1b
ror ebx, cl
mov eax, ebx
shr eax, 4
mov byte [edx + 0xc8], bl
mov byte [edx + 0xc9], al
mov byte [edx + 0xca], bh
mov eax, ebx
shr eax, 0xc
mov ecx, dword [esp + 0xc]
add dword [esp + 4], ecx
adc esi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov edx, ebx
mov ecx, ebx
mov edi, dword [esp + 0x10]
shld ebx, edi, 5
shr edx, 0xd
xor ebx, edx
mov edx, dword [esp + 0x18]
mov byte [edx + 0xcb], al
shr ecx, 0x1b
ror ebx, cl
mov eax, ebx
shr eax, 4
mov ecx, edx
mov byte [edx + 0xcc], bl
mov byte [edx + 0xcd], al
mov byte [edx + 0xce], bh
shr ebx, 0xc
mov byte [edx + 0xcf], bl
mov ecx, dword [esp + 4]
mov eax, ecx
mov edx, 0x4c957f2d
mul edx
imul edi, ecx, 0x5851f42d
add edi, edx
mov edx, esi
imul ecx, esi, 0x4c957f2d
add edi, ecx
add eax, dword [esp + 0xc]
mov dword [esp + 8], eax
adc edi, dword [esp + 0x14]
mov ecx, esi
mov ebx, esi
mov esi, dword [esp + 4]
shld edx, esi, 5
mov esi, edx
mov edx, 0x4c957f2d
mul edx
mov dword [esp + 4], eax
mov eax, edx
shr ecx, 0xd
xor esi, ecx
mov edx, dword [esp + 8]
imul ecx, edx, 0x5851f42d
add ecx, eax
imul eax, edi, 0x4c957f2d
add ecx, eax
mov eax, ecx
shr ebx, 0x1b
mov ecx, ebx
ror esi, cl
mov dword [esp + 0x10], esi
mov esi, dword [esp + 4]
add esi, dword [esp + 0xc]
mov dword [esp + 4], esi
adc eax, dword [esp + 0x14]
mov ecx, eax
mov ebx, edi
mov dword [esp + 0x1c], edi
shld edi, edx, 5
mov eax, esi
mov edx, 0x4c957f2d
mul edx
mov dword [esp + 8], eax
shr ebx, 0xd
xor edi, ebx
imul ebx, esi, 0x5851f42d
add ebx, edx
imul eax, ecx, 0x4c957f2d
mov edx, ecx
add ebx, eax
mov esi, dword [esp + 0x18]
mov word [esi + 0x4c], 1
mov dword [esi + 0x50], 4
mov eax, dword [esp + 0x10]
mov dword [esi + 0x54], eax
mov ecx, dword [esp + 0x1c]
shr ecx, 0x1b
ror edi, cl
mov word [esi + 0x58], di
shr edi, 0x10
mov dword [esp + 0x10], edi
mov eax, dword [esp + 8]
add eax, dword [esp + 0xc]
adc ebx, dword [esp + 0x14]
mov edi, edx
mov ecx, edx
mov esi, dword [esp + 4]
shld edx, esi, 5
shr edi, 0xd
xor edx, edi
mov dword [esp + 4], edx
mov esi, eax
mov dword [esp + 8], eax
mov edx, 0x4c957f2d
mul edx
imul edi, esi, 0x5851f42d
add edi, edx
shr ecx, 0x1b
mov edx, dword [esp + 4]
ror edx, cl
mov dword [esp + 4], edx
imul ecx, ebx, 0x4c957f2d
add edi, ecx
mov ecx, edx
shr ecx, 4
mov dword [esp + 0x3c], ecx
mov ecx, edx
shr ecx, 0xc
mov dword [esp + 0x1c], ecx
add eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
adc edi, dword [esp + 0x14]
mov eax, ebx
mov ecx, ebx
mov edx, dword [esp + 8]
shld ebx, edx, 5
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov word [esi + 0x5a], dx
mov edx, dword [esp + 4]
mov byte [esi + 0x5c], dl
mov edx, dword [esp + 0x3c]
mov byte [esi + 0x5d], dl
shr eax, 0xd
xor ebx, eax
shr ecx, 0x1b
ror ebx, cl
mov ecx, esi
mov eax, dword [esp + 4]
mov byte [esi + 0x5e], ah
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x5f], al
mov eax, ebx
shr eax, 4
mov byte [esi + 0x60], bl
mov byte [esi + 0x61], al
mov byte [esi + 0x62], bh
shr ebx, 0xc
mov byte [esi + 0x63], bl
mov eax, dword [esp + 0xc]
mov dword [0x570338], eax
mov esi, dword [ebp + 8]
mov dword [0x57033c], edi
mov eax, dword [ebp + 0x10]
movsd xmm0, qword [eax + 0xc0]
lea edi, [ecx + 0x48]
mov eax, ecx
movsd xmm1, qword [esi + 0x160]
xorpd xmm2, xmm2
cmpltsd xmm2, xmm0
movapd xmm3, xmm2
andpd xmm3, xmm0
andnpd xmm2, xmm1
orpd xmm2, xmm3
cmplesd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
mov ebx, ecx
movlpd qword [ecx + 0xd8], xmm0
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x420bad
push eax
push edi
call fcn.0040d0a0
add esp, 8
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
fild qword [esp + 0x58]
fstp qword [esp + 0x40]
movsd xmm0, qword [0x5232a0]
divsd xmm0, qword [esp + 0x40]
fild qword [esp + 0x50]
fstp qword [esp + 0x48]
mulsd xmm0, qword [esp + 0x48]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fnstcw word [esp + 0x22]
movzx eax, word [esp + 0x22]
or eax, 0xc00
mov word [esp + 0x26], ax
fldcw word [esp + 0x26]
fistp qword [esp + 0x30]
fldcw word [esp + 0x22]
mov edx, ebx
movsd xmm0, qword [ebx + 0xd8]
mulsd xmm0, qword [0x5232a8]
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fnstcw word [esp + 0x20]
movzx eax, word [esp + 0x20]
or eax, 0xc00
mov word [esp + 0x24], ax
fldcw word [esp + 0x24]
fistp qword [esp + 0x28]
fldcw word [esp + 0x20]
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
adc ecx, dword [esp + 0x34]
mov dword [ebx + 0xe0], eax
mov dword [ebx + 0xe4], ecx
lea eax, [esi + 0x214]
mov ecx, dword [esi + 0x214]
mov dword [ebx + 0x40], ecx
test ecx, ecx
je 0x420c84
mov edx, ebx
add edx, 0x40
mov dword [ecx + 0x44], edx
mov edx, ebx
mov dword [esi + 0x214], edx
mov dword [edx + 0x44], eax
inc dword [esi + 0x218]
mov eax, dword [ebp + 0x14]
mov dword [eax], edi
xor eax, eax
jmp 0x420ccf
mov eax, dword [edx + 0x60]
test eax, eax
je 0x420caf
mov eax, dword [eax + 8]
jmp 0x420cb1
mov eax, 0x80030000
jmp 0x420ccf
xor eax, eax
push 0x5239ff
push dword [edx + 0x28]
push eax
push str.Connection__i__SecureChannel__u__Could_not_create_a_Session___Server_limits_reached_.0s
push 1
push ecx
call fcn.0040aac0
add esp, 0x18
mov eax, 0x80560000
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret