Function at 0x180038bc0
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 [0x180059270]
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]
mov rbp, rax
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x180038c4d
mov dword [r14], 0xffffffff
add rsp, 0xab8
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [0x180059270]
xor edx, edx
mov r8d, 0x800
mov qword [rsp + 0xaf0], r13
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x180038c94
mov rcx, qword [0x180059270]
mov r8, rbp
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [r14], 0xffffffff
xor eax, eax
jmp 0x1800393e7
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 0x180038ce0
mov esi, dword [rsp + 0x30]
mov edi, r8d
jmp 0x180038ce0
mov edi, dword [rsp + 0xb00]
mov esi, dword [rsp + 0x30]
mov edx, 1
nop dword [rax]
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 0x18003939a
test eax, eax
je 0x18003939a
lea rdx, [rsp + 0x2b0]
xor r9d, r9d
mov r8d, 0x800
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_recv]
movsxd rbp, eax
mov dword [rsp + 0x64], ebp
test eax, eax
jle 0x180039395
test esi, esi
jne 0x180039013
lea ebx, [rbp + rdi]
xor r15d, r15d
xor r13d, r13d
cmp ebx, dword [rsp + 0x60]
jbe 0x180038da5
mov rdi, qword [rsp + 0x38]
mov rcx, qword [0x180059270]
mov r9d, ebx
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
test rax, rax
je 0x180039302
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
mov r8d, ebx
mov dword [rsp + 0xb00], ebx
mov rbx, qword [rsp + 0x68]
lea edx, [rcx + 1]
test r9d, r9d
jle 0x180038cc0
mov r10d, dword [rsp + 0x30]
mov rax, rbp
nop dword [rax + rax]
test r10d, r10d
jne 0x180038e90
movzx r8d, byte [rax]
cmp r8b, 0xd
jne 0x180038e42
inc rax
inc ecx
inc edx
cmp byte [rax], 0xa
jne 0x180038e65
mov r8d, dword [rsp + 0xb00]
inc ecx
inc edx
inc rax
cmp ecx, r8d
jge 0x180038e77
cmp byte [rax], 0xd
jne 0x180038e77
inc ecx
inc edx
inc rax
cmp ecx, r8d
jge 0x180038e77
cmp byte [rax], 0xa
jne 0x180038e77
mov r10d, edx
mov dword [rsp + 0x30], edx
jmp 0x180038e77
cmp r8b, 0xa
jne 0x180038e6f
inc edx
inc rax
inc ecx
cmp byte [rax], r8b
mov r8d, dword [rsp + 0xb00]
cmove r10d, edx
mov dword [rsp + 0x30], r10d
jmp 0x180038e77
mov r8d, dword [rsp + 0xb00]
jmp 0x180038e77
mov r8d, dword [rsp + 0xb00]
inc ecx
inc edx
inc rax
cmp ecx, r9d
jl 0x180038df0
test r10d, r10d
je 0x180038cc9
lea r14d, [r10 - 1]
xor ebx, ebx
xor edi, edi
test r14d, r14d
jle 0x180038fdc
mov r12d, dword [rsp + 0x58]
cmp esi, r15d
jg 0x180038ee0
cmp byte [rdi + rbp], 0x3a
jne 0x180038ee0
cmp ebx, r14d
mov esi, ebx
jge 0x180038ed7
nop dword [rax + rax]
movzx eax, byte [rdi + rbp + 1]
cmp al, 0x20
je 0x180038ecd
cmp al, 9
jne 0x180038ed7
inc ebx
inc rdi
cmp ebx, r14d
jl 0x180038ec0
lea r13d, [rbx + 1]
jmp 0x180038fbf
movzx eax, byte [rdi + rbp]
cmp al, 0xd
je 0x180038ef0
cmp al, 0xa
jne 0x180038fbf
cmp esi, r15d
jle 0x180038f9c
cmp r13d, esi
jle 0x180038f9c
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 0x180038f47
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 0x180038f9c
lea rdx, str.transfer_encoding
mov r8, rsi
mov rcx, rbp
call qword [sym.imp.ntdll.dll__memicmp]
test eax, eax
jne 0x180038f8f
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 0x180038f9c
mov rbp, qword [rsp + 0x38]
mov r8d, dword [rsp + 0xb00]
cmp ebx, r8d
jge 0x180038fb7
movzx eax, byte [rdi + rbp]
cmp al, 0xd
je 0x180038fad
cmp al, 0xa
jne 0x180038fb7
inc ebx
inc rdi
cmp ebx, r8d
jl 0x180038fa1
mov r15d, ebx
mov esi, ebx
xor r13d, r13d
inc ebx
inc rdi
cmp ebx, r14d
jl 0x180038ea6
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 0x1800392c1
mov r14d, dword [rsp + 0x40]
jmp 0x180039018
mov r13, qword [rsp + 0x38]
cmp dword [rsp + 0x58], 0
je 0x180039217
xor ebx, ebx
test ebp, ebp
jle 0x1800392b7
nop dword [rax]
test r12d, r12d
jne 0x180039181
test r14d, r14d
jne 0x180039064
cmp ebx, ebp
jge 0x180039064
movsxd rax, ebx
cmp byte [rsp + rax + 0x2b0], 0xd
jne 0x180039051
inc ebx
cmp ebx, ebp
jge 0x180039064
movsxd rax, ebx
cmp byte [rsp + rax + 0x2b0], 0xa
jne 0x180039064
inc ebx
movsxd rdi, ebx
movsxd rsi, ebp
cmp rdi, rsi
jge 0x1800390ca
mov rbp, qword [rsp + 0x70]
nop word [rax + rax]
movsx ecx, byte [rsp + rdi + 0x2b0]
call qword [sym.imp.ntdll.dll_isxdigit]
test eax, eax
je 0x1800390bc
cmp r14d, 0x1f
jae 0x1800390bc
movzx eax, byte [rsp + rdi + 0x2b0]
inc rbp
inc rdi
mov byte [rsp + rbp + 0x7f], al
inc r14d
inc ebx
cmp rdi, rsi
mov byte [rsp + rbp + 0x80], 0
jl 0x180039080
mov qword [rsp + 0x70], rbp
mov ebp, dword [rsp + 0x64]
mov dword [rsp + 0x40], r14d
movsxd rax, ebx
cmp rax, rsi
jge 0x1800390ee
movzx ecx, byte [rsp + rax + 0x2b0]
cmp cl, 0xd
je 0x1800390ee
cmp cl, 0xa
je 0x1800390ee
inc rax
inc ebx
cmp rax, rsi
jl 0x1800390d2
cmp ebx, ebp
jge 0x1800392a3
movsxd rax, ebx
cmp byte [rsp + rax + 0x2b0], 0xd
jne 0x180039105
inc ebx
cmp ebx, ebp
jge 0x1800392ad
movsxd rax, ebx
cmp byte [rsp + rax + 0x2b0], 0xa
jne 0x180039202
test r14d, r14d
je 0x18003915f
lea rcx, [rsp + 0x80]
mov edx, r14d
nop
movzx eax, byte [rcx]
cmp al, 0x30
jl 0x180039148
cmp al, 0x39
jg 0x180039148
add r12d, r12d
movsx eax, al
lea r12d, [rax + r12*8 - 0x30]
jmp 0x180039156
movsx eax, al
or eax, 0x20
add r12d, r12d
lea r12d, [rax + r12*8 - 0x57]
inc rcx
sub rdx, 1
jne 0x180039130
xor r14d, r14d
xor eax, eax
inc ebx
mov byte [rsp + 0x80], 0
mov dword [rsp + 0x40], r14d
mov qword [rsp + 0x70], rax
test r12d, r12d
je 0x18003938c
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 0x1800391d2
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 [0x180059270]
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
test rax, rax
je 0x18003931b
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 0x180039030
mov r15d, dword [rsp + 0xb08]
jmp 0x1800392c9
mov ecx, dword [rsp + 0x44]
test ecx, ecx
jle 0x180039234
mov esi, dword [rsp + 0xb08]
lea eax, [rbp + rsi]
cmp eax, ecx
jle 0x18003923b
mov ebp, ecx
sub ebp, esi
jmp 0x18003923b
mov esi, dword [rsp + 0xb08]
lea ebx, [rbp + rsi]
cmp ebx, dword [rsp + 0x48]
jbe 0x18003927d
mov rdi, qword [rsp + 0x50]
cmp ecx, ebx
mov eax, ebx
cmovge eax, ecx
mov rcx, qword [0x180059270]
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 0x180039355
mov r13, rax
mov qword [rsp + 0x50], rax
jmp 0x180039282
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 0x1800392c9
mov r15d, dword [rsp + 0xb08]
jmp 0x1800392c9
mov r15d, dword [rsp + 0xb08]
jmp 0x1800392c9
mov r15d, dword [rsp + 0xb08]
jmp 0x1800392c9
mov r15d, dword [rsp + 0xb08]
mov eax, dword [rsp + 0x44]
mov r14d, dword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
mov edi, dword [rsp + 0xb00]
mov esi, dword [rsp + 0x30]
mov rbx, qword [rsp + 0x68]
mov edx, 1
test eax, eax
jle 0x180038ce0
cmp r15d, eax
jge 0x180039393
jmp 0x180038ce0
mov rcx, qword [0x180059270]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r8, qword [rsp + 0x50]
jmp 0x18003936a
mov rcx, qword [0x180059270]
mov r8, r15
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x180059270]
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 0x1800393df
mov rcx, qword [0x180059270]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r8, r13
mov rcx, qword [0x180059270]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r11, qword [rsp + 0xaf8]
xor eax, eax
mov dword [r11], 0xffffffff
jmp 0x1800393df
mov rbp, qword [rsp + 0x38]
jmp 0x18003939a
jmp 0x18003939a
mov rbp, qword [rsp + 0x38]
mov rcx, qword [0x180059270]
mov r8, rbp
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rsp + 0xb08]
mov r11, qword [rsp + 0xaf8]
mov dword [r11], eax
test eax, eax
jne 0x1800393da
mov r8, qword [rsp + 0x50]
mov rcx, qword [0x180059270]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
jmp 0x1800393df
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