Function at 0x4557c0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x38
mov eax, dword [ebp + 0xc]
push esi
lea esi, [edx + 0x1f]
mov dword [esp + 0x1c], eax
push edi
mov edi, ecx
shl esi, 4
add esi, edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], esi
mov ecx, dword [edi]
cmp dword [esi + 4], 2
mov eax, dword [edi + edx*4 + 0x1a8]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x28], eax
jne 0x455811
mov ecx, dword [esp + 0x20]
xor eax, eax
mov dword [ecx], 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 8], 0
jne 0x455900
mov edx, dword [esp + 0xc]
mov eax, 0x493e0
mov ecx, dword [ecx + 0x218]
xor edi, edi
mov dword [esp + 0x10], eax
xor eax, eax
test ecx, ecx
mov edx, dword [edx + 0x21c]
setg al
test edx, edx
jle 0x455844
or eax, 2
sub eax, 1
je 0x45585c
sub eax, 1
je 0x455955
sub eax, 1
jne 0x455865
cmp ecx, edx
cmovge ecx, edx
mov eax, ecx
cdq
mov dword [esp + 0x10], eax
mov edi, edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov dword [esp + 0x34], 0
mov eax, 0x10624dd3
sub esp, 0x10
mul esi
shr edx, 6
imul ecx, edx, 0x3e8
mov dword [esp + 0x40], edx
sub esi, ecx
mov ecx, dword [esp + 0x1c]
imul eax, esi, 0x3e8
movups xmm0, xmmword [ecx + 0x7e0]
mov dword [esp + 0x48], eax
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x50]
movups xmmword [eax], xmm0
call fcn.00449500
mov ecx, dword [esp + 0x30]
add esp, 0x20
sub ecx, eax
mov eax, ecx
sbb edi, edx
or eax, edi
je 0x455b2f
test edi, edi
jl 0x455b2f
jg 0x4558e1
test ecx, ecx
jb 0x455b2f
mov edi, dword [esp + 0x2c]
mov ecx, edi
mov edx, dword [esp + 0x1c]
call fcn.00454a80
test eax, eax
jne 0x455b45
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov eax, dword [esi + 8]
cmp eax, 1
je 0x455916
cmp eax, 2
je 0x455916
cmp eax, 3
jne 0x455a8a
mov eax, dword [ecx + 0x218]
xor edx, edx
mov dword [esp + 0x10], edx
xor ecx, ecx
mov edx, dword [esp + 0xc]
test eax, eax
mov edi, 0x493e0
setg cl
mov edx, dword [edx + 0x21c]
test edx, edx
jle 0x45593f
or ecx, 2
sub ecx, 1
je 0x45595e
sub ecx, 1
je 0x45595c
sub ecx, 1
jne 0x455965
cmp eax, edx
cmovge eax, edx
jmp 0x45595e
mov eax, edx
jmp 0x45585e
mov eax, edx
cdq
mov edi, eax
mov dword [esp + 0x10], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov dword [esp + 0x34], 0
mov eax, 0x10624dd3
sub esp, 0x10
mul esi
shr edx, 6
imul ecx, edx, 0x3e8
mov dword [esp + 0x40], edx
sub esi, ecx
mov ecx, dword [esp + 0x1c]
imul eax, esi, 0x3e8
movups xmm0, xmmword [ecx + 0x7e0]
mov dword [esp + 0x48], eax
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x50]
movups xmmword [eax], xmm0
call fcn.00449500
mov ecx, dword [esp + 0x30]
add esp, 0x20
sub edi, eax
mov eax, edi
sbb ecx, edx
or eax, ecx
je 0x455b2f
test ecx, ecx
jl 0x455b2f
jg 0x4559e1
test edi, edi
jb 0x455b2f
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 8]
cmp eax, 2
je 0x4559f2
cmp eax, 3
jne 0x455a43
or edx, 0xffffffff
mov dword [esp + 0x10], 0xffffffff
cmp eax, 3
cmove edx, dword [esp + 0x28]
cmp eax, 2
mov eax, dword [esp + 0x10]
cmove eax, dword [esp + 0x28]
cmp dword [ebp + 8], 0
je 0x455a28
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
push ecx
push edi
push edx
mov ecx, eax
call fcn.00443550
add esp, 0xc
test eax, eax
js 0x455b0c
je 0x455af4
mov edi, dword [esp + 0x2c]
mov ecx, edi
mov edx, dword [esp + 0x1c]
call fcn.00454ff0
test eax, eax
jne 0x455b45
mov ecx, dword [esp + 0xc]
cmp dword [ebp + 8], eax
je 0x455900
mov ecx, dword [esi + 8]
cmp ecx, 1
je 0x455b45
cmp ecx, 2
je 0x455b45
cmp ecx, 3
je 0x455b45
jmp 0x4558fc
cmp eax, 4
jne 0x455aa2
mov edx, dword [esp + 0x1c]
mov ecx, edi
call fcn.00455530
test eax, eax
jne 0x455b45
cmp dword [esi + 8], 5
jne 0x455ae3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esi + 4], 2
mov dword [edi + eax*4 + 0x1c0], 0x455ee0
mov dword [edi + eax*4 + 0x1c8], 0x455b50
mov eax, 1
mov dword [ecx], eax
xor eax, eax
mov dword [esi + 8], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x20]
xor eax, eax
mov dword [ecx], eax
mov dword [esi + 8], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 8], 0
je 0x455b2f
mov ecx, dword [esp + 0x20]
xor eax, eax
mov dword [ecx], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.select_poll_on_SSL_TLS_socket__errno:__d
push dword [esp + 0x14]
call fcn.004415c0
add esp, 0xc
mov eax, 0x23
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push str.SSL_TLS_connection_timeout
push dword [esp + 0x10]
call fcn.004415c0
add esp, 8
mov eax, 0x1c
pop edi
pop esi
mov esp, ebp
pop ebp
ret