Function at 0x180038d90
Capabilities:
Get socket status
Receive data
Receive data on socket

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0xab8
xor esi, esi
movsxd rbx, ecx
mov rcx, qword [0x180052eb0]
mov r14, rdx
xor r12d, r12d
xor edi, edi
mov r8d, 0x800
xor edx, edx
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x44], 0xffffffff
mov dword [rsp + 0x5c], r12d
mov dword [rsp + 0x60], 0x800
mov dword [rsp + 0xb00], edi
mov dword [rsp + 0x48], 0x800
mov dword [rsp + 0xb08], esi
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov rbp, rax
mov qword [rsp + 0x38], rax
jne 0x180038e1d
mov dword [r14], 0xffffffff
add rsp, 0xab8
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [0x180052eb0]
xor edx, edx
mov r8d, 0x800
mov qword [rsp + 0xaf0], r13
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov qword [rsp + 0x50], rax
jne 0x180038e64
mov rcx, qword [0x180052eb0]
mov r8, rbp
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [r14], 0xffffffff
xor eax, eax
jmp 0x1800395d9
xor r14d, r14d
xor eax, eax
mov qword [rsp + 0xab0], r15
mov byte [rsp + 0x80], sil
mov qword [rsp + 0x68], rbx
lea edx, [rax + 1]
mov dword [rsp + 0x40], r14d
mov qword [rsp + 0x70], rax
jmp 0x180038eb0
mov esi, dword [rsp + 0x30]
mov edi, r8d
jmp 0x180038eb0
mov edi, dword [rsp + 0xb00]
mov esi, dword [rsp + 0x30]
mov edx, 1
nop
nop
xor r9d, r9d
mov dword [rsp + 0xa0], edx
lea rax, [rsp + 0x78]
lea rdx, [rsp + 0xa0]
lea ecx, [r9 + 0x40]
xor r8d, r8d
mov qword [rsp + 0xa8], rbx
mov dword [rsp + 0x78], 5
mov dword [rsp + 0x7c], 0
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
js 0x18003958c
test eax, eax
je 0x18003958c
lea rdx, [rsp + 0x2b0]
xor r9d, r9d
mov r8d, 0x800
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_recv]
test eax, eax
movsxd rbp, eax
mov dword [rsp + 0x64], ebp
jle 0x180039587
test esi, esi
jne 0x1800391f6
lea ebx, [rbp + rdi]
xor r15d, r15d
xor r13d, r13d
cmp ebx, dword [rsp + 0x60]
jbe 0x180038f75
mov rdi, qword [rsp + 0x38]
mov rcx, qword [0x180052eb0]
mov r9d, ebx
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
test rax, rax
je 0x1800394f4
mov edi, dword [rsp + 0xb00]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x60], ebx
mov r8, rbp
mov rbp, qword [rsp + 0x38]
mov ecx, edi
lea rdx, [rsp + 0x2b0]
add rcx, rbp
call sub.ntdll.dll_memcpy
lea r9d, [rbx - 1]
xor ecx, ecx
test r9d, r9d
mov r8d, ebx
mov dword [rsp + 0xb00], ebx
mov rbx, qword [rsp + 0x68]
lea edx, [rcx + 1]
jle 0x180038e90
mov r10d, dword [rsp + 0x30]
mov rax, rbp
nop
nop
test r10d, r10d
jne 0x18003906f
movzx r8d, byte [rax]
cmp r8b, 0xd
jne 0x18003901b
add rax, 1
add ecx, 1
add edx, 1
cmp byte [rax], 0xa
jne 0x180039041
mov r8d, dword [rsp + 0xb00]
add ecx, 1
add edx, 1
add rax, 1
cmp ecx, r8d
jge 0x180039053
cmp byte [rax], 0xd
jne 0x180039053
add ecx, 1
add edx, 1
add rax, 1
cmp ecx, r8d
jge 0x180039053
cmp byte [rax], 0xa
jne 0x180039053
mov r10d, edx
mov dword [rsp + 0x30], edx
jmp 0x180039053
cmp r8b, 0xa
jne 0x18003904b
add edx, 1
add rax, 1
add ecx, 1
cmp byte [rax], r8b
mov r8d, dword [rsp + 0xb00]
cmove r10d, edx
mov dword [rsp + 0x30], r10d
jmp 0x180039053
mov r8d, dword [rsp + 0xb00]
jmp 0x180039053
mov r8d, dword [rsp + 0xb00]
add ecx, 1
add edx, 1
add rax, 1
cmp ecx, r9d
jl 0x180038fc0
test r10d, r10d
je 0x180038e99
lea r14d, [r10 - 1]
xor ebx, ebx
xor edi, edi
test r14d, r14d
jle 0x1800391bf
mov r12d, dword [rsp + 0x58]
cmp esi, r15d
jg 0x1800390b9
cmp byte [rdi + rbp], 0x3a
jne 0x1800390b9
cmp ebx, r14d
mov esi, ebx
jge 0x1800390b0
movzx eax, byte [rdi + rbp + 1]
cmp al, 0x20
je 0x1800390a4
cmp al, 9
jne 0x1800390b0
add ebx, 1
add rdi, 1
cmp ebx, r14d
jl 0x180039097
lea r13d, [rbx + 1]
jmp 0x1800391a0
movzx eax, byte [rdi + rbp]
cmp al, 0xd
je 0x1800390c9
cmp al, 0xa
jne 0x1800391a0
cmp esi, r15d
jle 0x180039175
cmp r13d, esi
jle 0x180039175
movsxd rax, r15d
sub esi, r15d
lea rdx, str.content_length
add rbp, rax
movsxd rsi, esi
mov r8, rsi
mov rcx, rbp
call qword [sym.imp.ntdll.dll__memicmp]
test eax, eax
jne 0x180039120
mov rbp, qword [rsp + 0x38]
movsxd rcx, r13d
lea r8, [rsp + 0x44]
add rcx, rbp
xor edx, edx
call qword [sym.imp.SHLWAPI.dll_StrToIntExA]
mov r8d, dword [rsp + 0xb00]
jmp 0x180039175
lea rdx, str.transfer_encoding
mov r8, rsi
mov rcx, rbp
call qword [sym.imp.ntdll.dll__memicmp]
test eax, eax
jne 0x180039168
mov rbp, qword [rsp + 0x38]
movsxd rcx, r13d
lea r8d, [rax + 7]
lea rdx, str.chunked
add rcx, rbp
call qword [sym.imp.ntdll.dll__memicmp]
mov r8d, dword [rsp + 0xb00]
test eax, eax
mov eax, 1
cmove r12d, eax
jmp 0x180039175
mov rbp, qword [rsp + 0x38]
mov r8d, dword [rsp + 0xb00]
cmp ebx, r8d
jge 0x180039198
nop
nop
movzx eax, byte [rdi + rbp]
cmp al, 0xd
je 0x18003918c
cmp al, 0xa
jne 0x180039198
add ebx, 1
add rdi, 1
cmp ebx, r8d
jl 0x180039180
mov r15d, ebx
mov esi, ebx
xor r13d, r13d
add ebx, 1
add rdi, 1
cmp ebx, r14d
jl 0x180039085
mov r10d, dword [rsp + 0x30]
mov dword [rsp + 0x58], r12d
mov r12d, dword [rsp + 0x5c]
mov r13, qword [rsp + 0x38]
mov ebp, r8d
movsxd rdx, r10d
sub ebp, r10d
lea rcx, [rsp + 0x2b0]
add rdx, r13
movsxd r8, ebp
mov dword [rsp + 0x64], ebp
call sub.ntdll.dll_memcpy
cmp dword [rsp + 0x30], 0
je 0x1800394b3
mov r14d, dword [rsp + 0x40]
jmp 0x1800391fb
mov r13, qword [rsp + 0x38]
cmp dword [rsp + 0x58], 0
je 0x180039409
xor ebx, ebx
test ebp, ebp
jle 0x1800394a9
test r12d, r12d
jne 0x180039373
test r14d, r14d
jne 0x180039246
cmp ebx, ebp
jge 0x180039246
movsxd rax, ebx
cmp byte [rsp + rax + 0x2b0], 0xd
jne 0x180039232
add ebx, 1
cmp ebx, ebp
jge 0x180039246
movsxd rax, ebx
cmp byte [rsp + rax + 0x2b0], 0xa
jne 0x180039246
add ebx, 1
movsxd rdi, ebx
movsxd rsi, ebp
cmp rdi, rsi
jge 0x1800392ae
mov rbp, qword [rsp + 0x70]
nop
nop
nop
movsx ecx, byte [rsp + rdi + 0x2b0]
call qword [sym.imp.ntdll.dll_isxdigit]
test eax, eax
je 0x1800392a0
cmp r14d, 0x1f
jae 0x1800392a0
movzx eax, byte [rsp + rdi + 0x2b0]
add rbp, 1
add rdi, 1
mov byte [rsp + rbp + 0x7f], al
add r14d, 1
add ebx, 1
cmp rdi, rsi
mov byte [rsp + rbp + 0x80], 0
jl 0x180039260
mov qword [rsp + 0x70], rbp
mov ebp, dword [rsp + 0x64]
mov dword [rsp + 0x40], r14d
movsxd rax, ebx
cmp rax, rsi
jge 0x1800392de
nop
nop
nop
movzx ecx, byte [rsp + rax + 0x2b0]
cmp cl, 0xd
je 0x1800392de
cmp cl, 0xa
je 0x1800392de
add rax, 1
add ebx, 1
cmp rax, rsi
jl 0x1800392c0
cmp ebx, ebp
jge 0x180039495
movsxd rax, ebx
cmp byte [rsp + rax + 0x2b0], 0xd
jne 0x1800392f6
add ebx, 1
cmp ebx, ebp
jge 0x18003949f
movsxd rax, ebx
cmp byte [rsp + rax + 0x2b0], 0xa
jne 0x1800393f4
test r14d, r14d
je 0x180039350
lea rcx, [rsp + 0x80]
mov edx, r14d
nop
movzx eax, byte [rcx]
cmp al, 0x30
jl 0x180039338
cmp al, 0x39
jg 0x180039338
add r12d, r12d
movsx eax, al
lea r12d, [rax + r12*8 - 0x30]
jmp 0x180039346
movsx eax, al
or eax, 0x20
add r12d, r12d
lea r12d, [rax + r12*8 - 0x57]
add rcx, 1
sub rdx, 1
jne 0x180039320
xor r14d, r14d
xor eax, eax
add ebx, 1
test r12d, r12d
mov byte [rsp + 0x80], 0
mov dword [rsp + 0x40], r14d
mov qword [rsp + 0x70], rax
je 0x18003957e
mov esi, dword [rsp + 0xb08]
mov edi, ebp
sub edi, ebx
cmp r12d, edi
cmovl edi, r12d
add esi, edi
cmp esi, dword [rsp + 0x48]
jbe 0x1800393c4
mov eax, dword [rsp + 0x44]
mov r15, qword [rsp + 0x50]
mov ecx, esi
cmp eax, esi
mov r8, r15
cmovge ecx, eax
xor edx, edx
mov dword [rsp + 0x48], ecx
mov r9d, ecx
mov rcx, qword [0x180052eb0]
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
test rax, rax
je 0x18003950d
mov qword [rsp + 0x50], rax
mov ecx, dword [rsp + 0xb08]
movsxd rax, ebx
mov r8d, edi
add rcx, qword [rsp + 0x50]
lea rdx, [rsp + rax + 0x2b0]
call sub.ntdll.dll_memcpy
add ebx, edi
sub r12d, edi
mov dword [rsp + 0x5c], r12d
mov dword [rsp + 0xb08], esi
cmp ebx, ebp
jl 0x180039210
mov r15d, dword [rsp + 0xb08]
jmp 0x1800394bb
mov ecx, dword [rsp + 0x44]
test ecx, ecx
jle 0x180039426
mov esi, dword [rsp + 0xb08]
lea eax, [rbp + rsi]
cmp eax, ecx
jle 0x18003942d
mov ebp, ecx
sub ebp, esi
jmp 0x18003942d
mov esi, dword [rsp + 0xb08]
lea ebx, [rbp + rsi]
cmp ebx, dword [rsp + 0x48]
jbe 0x18003946f
mov rdi, qword [rsp + 0x50]
cmp ecx, ebx
mov eax, ebx
cmovge eax, ecx
mov rcx, qword [0x180052eb0]
mov r8, rdi
mov r9d, eax
xor edx, edx
mov dword [rsp + 0x48], eax
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
test rax, rax
je 0x180039547
mov r13, rax
mov qword [rsp + 0x50], rax
jmp 0x180039474
mov r13, qword [rsp + 0x50]
mov ecx, esi
lea rdx, [rsp + 0x2b0]
movsxd r8, ebp
add rcx, r13
call sub.ntdll.dll_memcpy
mov r15d, ebx
mov dword [rsp + 0xb08], ebx
jmp 0x1800394bb
mov r15d, dword [rsp + 0xb08]
jmp 0x1800394bb
mov r15d, dword [rsp + 0xb08]
jmp 0x1800394bb
mov r15d, dword [rsp + 0xb08]
jmp 0x1800394bb
mov r15d, dword [rsp + 0xb08]
mov eax, dword [rsp + 0x44]
mov r14d, dword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
test eax, eax
mov edi, dword [rsp + 0xb00]
mov esi, dword [rsp + 0x30]
mov rbx, qword [rsp + 0x68]
mov edx, 1
jle 0x180038eb0
cmp r15d, eax
jge 0x180039585
jmp 0x180038eb0
mov rcx, qword [0x180052eb0]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r8, qword [rsp + 0x50]
jmp 0x18003955c
mov rcx, qword [0x180052eb0]
mov r8, r15
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x180052eb0]
mov r8, r13
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r11, qword [rsp + 0xaf8]
xor eax, eax
mov dword [r11], 0xffffffff
jmp 0x1800395d1
mov rcx, qword [0x180052eb0]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r8, r13
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r11, qword [rsp + 0xaf8]
xor eax, eax
mov dword [r11], 0xffffffff
jmp 0x1800395d1
mov rbp, qword [rsp + 0x38]
jmp 0x18003958c
jmp 0x18003958c
mov rbp, qword [rsp + 0x38]
mov rcx, qword [0x180052eb0]
mov r8, rbp
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rsp + 0xb08]
mov r11, qword [rsp + 0xaf8]
test eax, eax
mov dword [r11], eax
jne 0x1800395cc
mov r8, qword [rsp + 0x50]
mov rcx, qword [0x180052eb0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
jmp 0x1800395d1
mov rax, qword [rsp + 0x50]
mov r15, qword [rsp + 0xab0]
mov r13, qword [rsp + 0xaf0]
add rsp, 0xab8
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret