Function at 0x425c20
Capabilities:
Receive data
Receive data on socket

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
mov eax, dword [rsp + 0x1d8]
mov rbp, qword [rcx + 8]
xor esi, esi
mov rdi, rcx
mov qword [rsp + 0x1b8], rdx
mov r12d, r8d
mov ebx, r9d
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x1e0]
test rbp, rbp
mov dword [rsp + 0x24], eax
je 0x425cb7
lea r13, [rsp + 0x50]
nop word [rax + rax]
mov rdx, r13
mov rcx, rbp
call sym.multi_getsock
mov ecx, 0x10
xor edx, edx
bt eax, edx
jae 0x425ec0
add esi, 1
bt eax, ecx
mov r8, qword [r13 + rdx*8]
jb 0x425ece
cmp r8, 0xffffffffffffffff
je 0x425cae
add ecx, 1
add rdx, 1
cmp ecx, 0x15
jne 0x425c82
mov rbp, qword [rbp]
test rbp, rbp
jne 0x425c70
cmp qword [rdi + 0xb0], 0
lea rax, [rdi + 0xb0]
mov qword [rsp + 0x30], rax
je 0x425ed6
lea rdx, [rsp + 0x4c]
mov rcx, rax
call sym.multi_timeout.isra.1.part.2
mov eax, dword [rsp + 0x4c]
cmp eax, ebx
mov dword [rsp + 0x38], eax
jge 0x425ede
test eax, eax
js 0x425ede
cmp byte [rsp + 0x24], 0
lea ebp, [r12 + rsi]
mov eax, ebp
je 0x425d12
xor eax, eax
cmp qword [rdi + 0x178], 0xffffffffffffffff
setne al
add eax, ebp
cmp eax, 0xa
lea r15, [rsp + 0xc0]
mov byte [rsp + 0x2b], 0
ja 0x425fc4
xor ebx, ebx
test esi, esi
je 0x425dca
mov r14, qword [rdi + 8]
test r14, r14
je 0x425dca
lea r13, [rsp + 0x50]
mov rdx, r13
mov rcx, r14
call sym.multi_getsock
mov rcx, r13
xor edx, edx
bt eax, edx
mov r8, 0xffffffffffffffff
jae 0x425d81
mov r8d, ebx
mov r9, qword [rcx]
mov r11d, 1
shl r8, 4
add ebx, 1
add r8, r15
mov qword [r8], r9
mov word [r8 + 8], r11w
mov r8, qword [rcx]
lea r9d, [rdx + 0x10]
bt eax, r9d
jae 0x425dac
mov r8d, ebx
mov r9, qword [rcx]
mov r10d, 4
shl r8, 4
add ebx, 1
add r8, r15
mov qword [r8], r9
mov word [r8 + 8], r10w
mov r8, qword [rcx]
cmp r8, 0xffffffffffffffff
je 0x425dbe
add edx, 1
add rcx, 8
cmp edx, 5
jne 0x425d54
mov r14, qword [r14]
test r14, r14
jne 0x425d44
test r12d, r12d
je 0x42605a
mov rdx, qword [rsp + 0x1b8]
lea r10d, [r12 + rbx]
nop
mov rcx, qword [rdx]
mov eax, ebx
xor r9d, r9d
shl rax, 4
add rax, r15
mov qword [rax], rcx
mov word [rax + 8], r9w
movzx ecx, word [rdx + 8]
test cl, 1
je 0x425e0b
mov r8d, 1
mov word [rax + 8], r8w
test cl, 2
je 0x425e15
or word [rax + 8], 2
and ecx, 4
je 0x425e1f
or word [rax + 8], 4
add ebx, 1
add rdx, 0x10
cmp ebx, r10d
jne 0x425de0
cmp byte [rsp + 0x24], 0
je 0x425e59
mov rdx, qword [rdi + 0x178]
cmp rdx, 0xffffffffffffffff
je 0x425e59
mov eax, r10d
add r10d, 1
shl rax, 4
add rax, r15
mov qword [rax], rdx
mov edx, 1
mov word [rax + 8], dx
test r10d, r10d
jne 0x425ee7
xor ebx, ebx
cmp byte [rsp + 0x2b], 0
jne 0x425fee
cmp qword [rsp + 0x1d0], 0
je 0x425e84
mov rax, qword [rsp + 0x1d0]
mov dword [rax], ebx
test r10d, r10d
setne dl
xor eax, eax
cmp byte [rsp + 0x2c], dl
jbe 0x425eab
cmp dword [rdi], 0xbab1e
mov dword [rsp + 0x80], 0
je 0x426009
xor eax, eax
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
bt eax, ecx
jae 0x425cae
mov r8, qword [r13 + rdx*8]
add esi, 1
jmp 0x425c9c
mov dword [rsp + 0x4c], 0xffffffff
mov dword [rsp + 0x38], ebx
jmp 0x425cf6
movsxd r8, dword [rsp + 0x38]
mov edx, r10d
mov rcx, r15
mov dword [rsp + 0x3c], r10d
call sym.Curl_poll
test eax, eax
mov ebx, eax
mov r10d, dword [rsp + 0x3c]
jle 0x425e62
mov rax, qword [rsp + 0x1b8]
test r12d, r12d
lea rcx, [rax + 0xa]
je 0x425f5c
nop dword [rax]
mov eax, esi
shl rax, 4
movzx edx, word [r15 + rax + 0xa]
mov eax, edx
and eax, 1
mov r8d, eax
or r8d, 4
test dl, 4
cmovne eax, r8d
mov r8d, eax
or r8d, 2
and edx, 2
cmovne eax, r8d
add esi, 1
add rcx, 0x10
mov word [rcx - 0x10], ax
cmp ebp, esi
jne 0x425f20
cmp byte [rsp + 0x24], 0
je 0x425e64
mov rcx, qword [rdi + 0x178]
cmp rcx, 0xffffffffffffffff
je 0x425e64
mov eax, ebp
shl rax, 4
test byte [r15 + rax + 0xa], 1
je 0x425e64
lea rbp, [rsp + 0x80]
mov rsi, qword [sym.imp.WS2_32.dll_recv]
mov r12d, r10d
jmp 0x425fa7
mov rcx, qword [rdi + 0x178]
xor r9d, r9d
mov r8d, 0x40
mov rdx, rbp
call rsi
test eax, eax
jg 0x425fa0
mov r10d, r12d
sub ebx, 1
jmp 0x425e64
mov ecx, eax
mov rax, qword [0x0048e0f0]
shl rcx, 4
call qword [rax]
mov r15, rax
mov eax, 3
test r15, r15
je 0x425eab
mov byte [rsp + 0x2b], 1
jmp 0x425d28
mov rax, qword [0x0048e0e0]
mov dword [rsp + 0x24], r10d
mov rcx, r15
call qword [rax]
mov r10d, dword [rsp + 0x24]
jmp 0x425e6f
cmp byte [rdi + 0x18a], 0
jne 0x425ea9
cmp qword [rdi + 0xb0], 0
je 0x426062
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x80]
call sym.multi_timeout.isra.1.part.2
mov eax, dword [rsp + 0x80]
test eax, eax
je 0x425ea9
cmp dword [rsp + 0x38], eax
jl 0x426062
test eax, eax
js 0x426062
movsxd rcx, eax
call sym.Curl_wait_ms
xor eax, eax
jmp 0x425eab
mov r10d, ebx
jmp 0x425e2b
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x80], eax
jmp 0x42604b