Function at 0x432320
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, 0x88
mov eax, dword [rdx + 0x58]
mov rbx, rdx
mov r15, rcx
mov rsi, r8
mov edx, eax
and edx, 0xfffeffff
mov dword [rbx + 0x58], edx
mov ecx, dword [r8 + 0x40]
test ecx, ecx
js 0x4324e0
test eax, 0x40000
je 0x432450
mov esi, 0x21
lea rbp, [rsp + 0x40]
lea rdi, [rsp + 0x60]
lea r14, [rsp + 0x50]
lea r13, [rsp + 0x54]
mov r12, qword [sym.imp.WS2_32.dll_WSARecv]
jmp 0x432437
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call fcn.00410be0
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
mov r8, rdi
mov rcx, rbx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x60], rax
mov edx, 0x10000
call qword [rbx + 0x68]
cmp qword [rsp + 0x68], 0
je 0x4325e0
mov eax, dword [rsp + 0x60]
test eax, eax
je 0x4325e0
mov dword [rsp + 0x54], 0
mov rcx, qword [rbx + 0x110]
mov r9, r14
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov r8d, 1
mov qword [rsp + 0x20], r13
mov rdx, rdi
call r12
cmp eax, 0xffffffff
je 0x432780
mov edx, dword [rsp + 0x50]
test edx, edx
je 0x432805
mov r8, rdi
mov rcx, rbx
call qword [rbx + 0x70]
mov eax, dword [rsp + 0x50]
cmp dword [rsp + 0x60], eax
mov edx, dword [rbx + 0x58]
ja 0x43248e
test dh, 0x10
je 0x43248e
sub esi, 1
jne 0x432390
jmp 0x43248e
mov rdx, qword [r8 + 0x48]
test rdx, rdx
jne 0x432723
test ah, 0x10
jne 0x432591
mov rdx, 0xfffffffffffff001
mov qword [rsp + 0x68], 0
mov dword [rsp + 0x60], 0
lea r8, [rbx + 0x120]
mov rcx, rbx
call qword [rbx + 0x70]
mov edx, dword [rbx + 0x58]
mov eax, edx
and eax, 0x11000
cmp eax, 0x1000
je 0x432605
sub dword [rbx + 0x78], 1
jne 0x4324c2
test dl, 1
je 0x4324c2
test dl, 0x20
jne 0x4324c2
or edx, 0x20
mov dword [rbx + 0x58], edx
mov rax, qword [r15 + 0x50]
mov qword [rbx + 0x50], rax
mov qword [r15 + 0x50], rbx
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, eax
and ecx, 0x41000
cmp ecx, 0x40000
je 0x4324a0
mov edi, dword [rbx + 0x7c]
mov ecx, eax
and ecx, 0xfffeefff
mov dword [rbx + 0x58], ecx
lea edx, [rdi - 1]
test edx, edx
mov dword [rbx + 0x7c], edx
jne 0x432530
test al, 1
jne 0x432530
test al, 4
je 0x432530
mov ecx, eax
and ecx, 0xfffeeffb
test al, 8
mov dword [rbx + 0x58], ecx
je 0x432530
mov rax, qword [rbx + 8]
sub dword [rax + 8], 1
mov ecx, dword [rbx + 0x58]
nop word [rax + rax]
and ecx, 0x40000
jne 0x432750
mov rax, qword [rbx + 0x120]
mov rdx, qword [rbx + 0x128]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov rcx, qword [rsi + 0x40]
call fcn.0043e410
mov edx, 0x2746
cmp eax, 0x2745
mov rsi, qword [rbx + 0x70]
cmove eax, edx
and dword [rbx + 0x58], 0xffff3fff
mov ecx, eax
call fcn.00416500
lea r8, [rsp + 0x60]
movsxd rdx, eax
mov rcx, rbx
call rsi
mov edx, dword [rbx + 0x58]
jmp 0x4324a0
mov esi, dword [rbx + 0x7c]
mov edx, eax
and edx, 0xfffeefff
mov dword [rbx + 0x58], edx
lea edx, [rsi - 1]
test edx, edx
mov dword [rbx + 0x7c], edx
jne 0x432466
test al, 1
jne 0x432466
test al, 4
je 0x432466
mov edx, eax
and edx, 0xfffeeffb
test al, 8
mov dword [rbx + 0x58], edx
je 0x432466
mov rax, qword [rbx + 8]
sub dword [rax + 8], 1
jmp 0x432466
mov rdx, 0xfffffffffffff024
mov r8, rdi
mov rcx, rbx
call qword [rbx + 0x70]
mov edx, dword [rbx + 0x58]
mov eax, edx
and eax, 0x11000
cmp eax, 0x1000
jne 0x4324a0
lea rax, [rbx + 0xc0]
mov ecx, edx
lea rdi, [0x006e2540]
or ecx, 0x40000
and edx, 0x80000
mov qword [rbx + 0xc0], 0
mov dword [rbx + 0x58], ecx
lea rsi, [rbx + 0x80]
mov qword [rsp + 0x78], rdi
mov dword [rsp + 0x70], 0
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
je 0x43266f
mov rdx, qword [rbx + 0xf0]
or rdx, 1
mov qword [rbx + 0xd8], rdx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x5c]
lea rdx, [rsp + 0x70]
mov rcx, qword [rbx + 0x110]
mov dword [rsp + 0x5c], 0
lea r9, [rsp + 0x58]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x20], rax
mov r8d, 1
call qword [sym.imp.WS2_32.dll_WSARecv]
mov ecx, dword [rbx + 0x58]
add dword [rbx + 0x78], 1
mov edx, ecx
or edx, 0x10000
test eax, eax
mov dword [rbx + 0x58], edx
je 0x432860
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x4328aa
mov rdi, qword [sym.imp.WS2_32.dll_WSAGetLastError]
call rdi
test eax, eax
jle 0x432925
call rdi
movzx eax, ax
or eax, 0x80070000
cdqe
mov qword [rbx + 0xc0], rax
mov qword [rbx + 0xe8], 0
mov rax, qword [r15 + 0x48]
test rax, rax
jne 0x43288b
mov qword [rbx + 0xe8], rsi
mov qword [r15 + 0x48], rsi
jmp 0x4328f9
lea r8, [rbx + 0x120]
mov rcx, rbx
call qword [rbx + 0x70]
mov eax, dword [rbx + 0x120]
mov edx, dword [rbx + 0x58]
cmp qword [rsi + 0x48], rax
jb 0x43248e
jmp 0x432361
lea rcx, [rsp + 0x40]
xor edx, edx
xor r8d, r8d
call fcn.00410be0
mov rax, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
jmp 0x432554
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x432901
mov esi, dword [rbx + 0x7c]
mov r8d, dword [rbx + 0x58]
lea ecx, [rsi - 1]
mov edx, r8d
and dh, 0xef
test ecx, ecx
mov dword [rbx + 0x58], edx
mov dword [rbx + 0x7c], ecx
jne 0x4327d4
test r8b, 1
jne 0x4327d4
test r8b, 4
je 0x4327d4
mov edx, r8d
and edx, 0xffffeffb
and r8d, 8
mov dword [rbx + 0x58], edx
je 0x4327d4
mov rdx, qword [rbx + 8]
sub dword [rdx + 8], 1
mov edx, dword [rbx + 0x58]
cmp eax, 0x2745
mov ecx, 0x2746
mov rsi, qword [rbx + 0x70]
cmove eax, ecx
and dh, 0x3f
mov dword [rbx + 0x58], edx
mov ecx, eax
call fcn.00416500
mov r8, rdi
movsxd rdx, eax
mov rcx, rbx
call rsi
mov edx, dword [rbx + 0x58]
jmp 0x43248e
mov edx, dword [rbx + 0x58]
mov eax, edx
and ah, 0xef
sub dword [rbx + 0x7c], 1
mov dword [rbx + 0x58], eax
jne 0x432840
test dl, 1
jne 0x432840
test dl, 4
je 0x432840
mov eax, edx
and eax, 0xffffeffb
and edx, 8
mov dword [rbx + 0x58], eax
je 0x432840
mov rax, qword [rbx + 8]
sub dword [rax + 8], 1
nop word [rax + rax]
mov rdx, 0xfffffffffffff001
mov r8, rdi
mov rcx, rbx
call qword [rbx + 0x70]
mov edx, dword [rbx + 0x58]
jmp 0x43248e
and ecx, 0x20000
je 0x4328ad
mov eax, dword [rsp + 0x58]
mov qword [rbx + 0xe8], 0
mov qword [rbx + 0xc8], rax
mov rax, qword [r15 + 0x48]
test rax, rax
je 0x432713
mov rax, qword [rax + 0x68]
mov qword [rbx + 0xe8], rax
mov rax, qword [r15 + 0x48]
mov qword [rax + 0x68], rsi
mov qword [r15 + 0x48], rsi
mov edx, dword [rbx + 0x58]
jmp 0x4324a0
mov edx, dword [rbx + 0x58]
test edx, 0x80000
je 0x4324a0
cmp qword [rbx + 0xf8], 0xffffffffffffffff
jne 0x4324a0
mov rdx, qword [rbx + 0xf0]
lea rcx, [rbx + 0xf8]
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], 0xffffffff
mov r9, rsi
lea r8, [0x004305a0]
call qword [sym.imp.KERNEL32.dll_RegisterWaitForSingleObject]
test eax, eax
je 0x432914
mov edx, dword [rbx + 0x58]
jmp 0x4324a0
xor edx, edx
mov r8, rdi
mov rcx, rbx
call qword [rbx + 0x70]
mov edx, dword [rbx + 0x58]
jmp 0x43248e
mov rdi, qword [sym.imp.KERNEL32.dll_GetLastError]
call rdi
test eax, eax
jg 0x4326e8
call rdi
cdqe
jmp 0x4326f4