Function at 0x140085a1c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x140271510]
xor rax, rsp
mov qword [rbp + 0x68], rax
xor esi, esi
mov r13, r9
mov qword [rsp + 0x30], rsi
mov ebx, r8d
mov dword [rsp + 0x3c], esi
mov r14, rdx
mov dword [rsp + 0x4c], esi
mov rdi, rcx
mov dword [rsp + 0x48], esi
lea r12d, [rsi + 0x14]
mov qword [rsp + 0x58], rsi
mov r15d, esi
mov dword [rsp + 0x50], esi
test rdx, rdx
je 0x140085d5a
lea eax, [r8 - 0x14]
cmp eax, 0x26fc
ja 0x140085d5a
lea eax, [rsi + 2]
cmp word [r9], ax
jne 0x140085d5a
movzx ecx, word [rdx]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, word [r14 + 2]
mov word [rsp + 0x42], ax
call qword [sym.imp.WS2_32.dll_ntohs]
add ax, r12w
mov word [rsp + 0x40], ax
movzx eax, ax
mov dword [rsp + 0x38], eax
cmp eax, ebx
jne 0x140085d5a
mov ecx, dword [r14 + 4]
call qword [sym.imp.WS2_32.dll_ntohl]
cmp eax, 0x2112a442
jne 0x140085d5a
xor eax, eax
lea r11, [r14 + 8]
mov rcx, r11
mov qword [rbp - 0x80], rax
lea r8, [rbp - 0x58]
mov qword [rbp - 0x78], rax
lea edx, [rsi + 0xc]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x60], r11
call fcn.140076428
mov edx, dword [rsp + 0x38]
cmp edx, 0x18
jle 0x140085f17
movsxd r15, r12d
movzx ecx, word [r15 + r14]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, word [r15 + r14 + 2]
movzx ebx, ax
call qword [sym.imp.WS2_32.dll_ntohs]
mov edx, dword [rsp + 0x38]
movzx r11d, ax
mov eax, r11d
mov dword [rbp - 0x70], eax
add eax, 4
add eax, r12d
cmp eax, edx
jg 0x140085d5a
mov r8d, 0x8028
cmp dword [rsp + 0x50], esi
je 0x140085b68
cmp bx, r8w
jne 0x140085f0a
movzx ecx, bx
mov r9d, 0x20
cmp ecx, r9d
ja 0x140085e0e
je 0x140085db5
sub ecx, 1
je 0x140085db5
lea ebx, [r9 - 0x1c]
sub ecx, ebx
je 0x140085e2e
sub ecx, 1
je 0x140085d83
sub ecx, 2
je 0x140085bcd
cmp ecx, 1
jne 0x140085ecd
lea r8, [rbp - 0x58]
lea edx, [rbx + 8]
lea rcx, [r14 + 8]
call fcn.140076428
movzx r8d, r11w
add r8, r15
mov byte [r8 + r14 + 8], sil
jmp 0x140085ec9
mov eax, reloc.WS2_32.dll_sendto
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x54], eax
cmp r11w, ax
jne 0x140085ecd
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140085c1c
lea rdx, [rdi + 0x140]
lea r8, [rbp + 0x40]
call fcn.140084fe0
lea rbx, [rbp + 0x40]
mov dword [rsp + 0x44], 0x20
mov qword [rbp - 0x68], rbx
mov dword [rsp + 0x3c], 1
jmp 0x140085c44
lea rdx, [r14 + 8]
cmp byte [rdx], 0xa
jae 0x140085c4b
movzx eax, byte [rdx]
mov rcx, qword [rdi + rax*8 + 0x198]
test rcx, rcx
je 0x140085c4b
mov rbx, qword [rcx + 8]
mov qword [rbp - 0x68], rbx
mov ebx, dword [rcx + 0x14]
mov dword [rsp + 0x44], ebx
mov ebx, 4
jmp 0x140085c8f
mov al, byte [rdx]
xor al, 0x80
cmp al, 0xa
jae 0x140085d5a
movzx eax, byte [rdx]
btc rax, 7
mov rax, qword [rdi + rax*8 + 0x1e8]
test rax, rax
je 0x140085d5a
movsxd rcx, dword [rax + 0x7c]
mov rax, qword [rax + 0x60]
mov rdx, qword [rax + rcx*8 + 0x198]
mov rax, qword [rdx + 8]
mov qword [rbp - 0x68], rax
mov eax, dword [rdx + 0x14]
mov dword [rsp + 0x44], eax
movzx ecx, word [r15 + r14 + 0x18]
call qword [sym.imp.WS2_32.dll_ntohs]
mov ecx, 0x8028
cmp ax, cx
jne 0x140085cb4
lea ecx, [rbx + r12]
call qword [sym.imp.WS2_32.dll_htons]
mov word [r14 + 2], ax
call fcn.1400b5a40
mov rbx, rax
call fcn.14009c930
mov r8d, dword [rsp + 0x44]
mov r9, rax
mov rdx, qword [rbp - 0x68]
mov rcx, rbx
mov qword [rsp + 0x20], rsi
call fcn.1400b5c80
mov r8, r15
mov rdx, r14
mov rcx, rbx
call fcn.1400b5ef0
lea r8, [rsp + 0x54]
mov rcx, rbx
lea rdx, [rbp - 0x58]
call fcn.1400b5bd0
mov rcx, rbx
call fcn.1400b59c0
movzx ecx, word [r15 + r14 + 0x18]
call qword [sym.imp.WS2_32.dll_ntohs]
mov ecx, 0x8028
cmp ax, cx
jne 0x140085d2b
movzx ecx, word [rsp + 0x40]
sub cx, 0x14
call qword [sym.imp.WS2_32.dll_htons]
mov word [r14 + 2], ax
mov eax, reloc.WS2_32.dll_sendto
cmp dword [rsp + 0x54], eax
jne 0x140085d5a
mov rax, qword [rbp - 0x58]
cmp rax, qword [r15 + r14 + 4]
jne 0x140085d5a
mov rax, qword [rbp - 0x50]
cmp rax, qword [r15 + r14 + 0xc]
jne 0x140085d5a
mov eax, dword [rbp - 0x48]
cmp eax, dword [r15 + r14 + 0x14]
je 0x140085ec9
xor eax, eax
mov rcx, qword [rbp + 0x68]
xor rcx, rsp
call fcn.14016d990
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, 9
cmp r11w, ax
jb 0x140085ecd
lea eax, [r12 + 0xc]
movsxd rcx, eax
cmp byte [rcx + r14], 0x3a
jne 0x140085ecd
add r15, rbx
add r15, r14
mov qword [rsp + 0x30], r15
jmp 0x140085ed2
lea eax, [r12 + 5]
movsxd rcx, eax
cmp byte [rcx + r14], 1
jne 0x140085ecd
mov ecx, dword [r15 + r14 + 8]
mov eax, 2
mov word [rbp - 0x80], ax
movzx eax, word [r15 + r14 + 6]
mov r15, qword [rsp + 0x30]
mov word [rbp - 0x7e], ax
mov dword [rbp - 0x7c], ecx
cmp bx, r9w
jne 0x140085ed2
mov r8d, 0x1221
xor ax, r8w
xor ecx, 0x42a41221
mov word [rbp - 0x7e], ax
mov dword [rbp - 0x7c], ecx
jmp 0x140085ed2
sub ecx, r8d
je 0x140085e86
sub ecx, 1
je 0x140085e7c
sub ecx, 1
je 0x140085e63
mov r8d, 2
cmp ecx, r8d
jne 0x140085ecd
jmp 0x140085e34
mov r8d, 2
lea eax, [r12 + 5]
movsxd rcx, eax
cmp byte [rcx + r14], 1
jne 0x140085ecd
movzx eax, word [r15 + r14 + 6]
mov word [rsp + 0x6a], ax
mov eax, dword [r15 + r14 + 8]
mov dword [rsp + 0x6c], eax
mov word [rsp + 0x68], r8w
jmp 0x140085ecd
mov dword [rsp + 0x48], 1
mov rcx, qword [r15 + r14 + 4]
call fcn.140077b58
mov qword [rsp + 0x58], rax
jmp 0x140085ec9
mov dword [rsp + 0x4c], 1
jmp 0x140085e6b
mov eax, 4
cmp r11w, ax
jne 0x140085f59
lea eax, [r12 + 8]
cmp eax, edx
jne 0x140085d5a
mov ecx, dword [r15 + r14 + 4]
call qword [sym.imp.WS2_32.dll_ntohl]
mov edx, r12d
mov rcx, r14
mov r11d, eax
call fcn.140084afc
xor eax, 0x5354554e
cmp eax, r11d
jne 0x140085f63
mov edx, dword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
mov r8d, dword [rbp - 0x70]
mov ecx, 4
mov eax, r8d
and eax, 3
sub ecx, eax
and ecx, 0x80000003
jge 0x140085ef2
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, r8d
add r12d, 4
add r12d, ecx
lea eax, [r12 + 4]
cmp eax, edx
jge 0x140085f12
jmp 0x140085b19
mov r15, qword [rsp + 0x30]
mov r12d, edx
mov r11, qword [rsp + 0x60]
cmp r12d, edx
jne 0x140085d5a
movzx r10d, word [rsp + 0x42]
mov eax, 0x110
lea r14d, [rax - 0x10]
and r10w, ax
jne 0x140086363
cmp dword [rsp + 0x3c], 1
jne 0x1400863ff
test r15, r15
je 0x140085f63
cmp byte [r15], 0x61
movsx r15d, byte [r15]
jl 0x140085f6d
sub r15d, 0x61
jmp 0x140085f71
test r11w, r11w
jne 0x140085d5a
mov eax, 1
jmp 0x140085d5c
sub r15d, 0x41
cmp r15d, 0xa
jge 0x140085f63
movsxd r12, r15d
mov rdx, qword [rdi + r12*8 + 0x198]
test rdx, rdx
je 0x140085f63
mov ebx, 0x1c
lea eax, [rbx - 0x1a]
lea r14d, [rbx - 0xc]
cmp word [r13], ax
jne 0x14008603d
movsxd rax, dword [rdx + 0x88]
test eax, eax
jne 0x140085ff9
cmp qword [rdx + 0x78], rsi
jne 0x140085ff9
mov r8, qword [rdx + 0x20]
mov ecx, esi
mov rdx, r8
movsxd rax, ecx
imul r9, rax, 0x1c
mov rax, qword [r9 + r8]
cmp rax, qword [r13]
jne 0x140085fd4
mov rax, qword [r9 + r8 + 8]
cmp rax, qword [r13 + 8]
je 0x14008603d
cmp word [rdx], si
je 0x140085fe5
inc ecx
add rdx, rbx
cmp ecx, 8
jl 0x140085fb8
jmp 0x14008603d
lea rcx, [r9 + r8]
mov rdx, rbx
mov r9, r14
mov r8, r13
call section..text
jmp 0x14008603d
mov r8d, esi
test eax, eax
jle 0x14008603d
movzx r10d, word [r13 + 2]
mov r11, rax
mov rcx, qword [rdx + 0x78]
mov r9, rsi
cmp word [rcx + 4], r10w
jne 0x14008601e
mov eax, dword [r13 + 4]
cmp dword [rcx], eax
je 0x14008602f
inc r8d
inc r9
add rcx, 6
cmp r9, r11
jge 0x14008603d
jmp 0x14008600f
mov rax, qword [rdx + 0x80]
movsxd rcx, r8d
mov byte [rcx + rax], 1
mov rdx, qword [rdi + r12*8 + 0x198]
mov eax, esi
mov dword [rsp + 0x3c], eax
lea rcx, [rdx + 0xc0]
mov qword [rbp - 0x68], rcx
cmp word [rcx], si
je 0x1400860b2
movzx r9d, word [r13]
cmp word [rcx], r9w
jne 0x14008609e
cmp r9w, 0x17
cdqe
mov r8, r14
cmove r8, rbx
add rdx, 0xc0
imul rcx, rax, 0x1c
add rcx, rdx
mov rdx, r13
call fcn.14016ee60
test eax, eax
je 0x1400860da
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rdi + r12*8 + 0x198]
inc eax
add rcx, rbx
mov dword [rsp + 0x3c], eax
mov qword [rbp - 0x68], rcx
cmp eax, 5
jl 0x140086056
jmp 0x1400860da
cmp word [r13], 0x17
mov r8, r13
cdqe
cmove r14, rbx
add rdx, 0xc0
imul rcx, rax, 0x1c
mov r9, r14
add rcx, rdx
mov rdx, rbx
call section..text
mov rcx, qword [rdi + r12*8 + 0x198]
cmp qword [rcx + 8], rsi
je 0x140085f63
mov eax, dword [rcx + 0x90]
mov r14d, dword [rsp + 0x48]
cmp eax, 1
jne 0x140086101
test r14d, r14d
jne 0x140086115
mov edx, dword [rsp + 0x4c]
test eax, eax
jne 0x1400861ad
test edx, edx
je 0x1400861ad
mov ecx, 0x101
call qword [sym.imp.WS2_32.dll_htons]
mov ecx, 0x2112a442
mov word [rbp - 0x30], ax
call qword [sym.imp.WS2_32.dll_htonl]
mov r8, qword [rsp + 0x60]
lea rcx, [rbp - 0x28]
mov r9d, listen
mov dword [rbp - 0x2c], eax
lea edx, [r9 + 0x5a]
call section..text
mov ebx, 0x20
mov ecx, ebx
call qword [sym.imp.WS2_32.dll_htons]
lea ecx, [rbx - 0x18]
mov word [rbp - 0x1c], ax
call qword [sym.imp.WS2_32.dll_htons]
lea ecx, [rbx - 0x1f]
mov word [rbp - 0x1a], ax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp - 0x18], ax
mov ecx, 0x1221
movzx eax, word [r13 + 2]
lea r8, [rbp + 0x40]
xor ax, cx
mov r9d, ebx
mov word [rbp - 0x16], ax
lea rcx, [rbp - 0x30]
mov eax, dword [r13 + 4]
mov edx, ebx
xor eax, 0x42a41221
mov dword [rbp - 0x14], eax
call fcn.14008511c
lea r14d, [rbx + rax]
jmp 0x14008628f
cmp eax, 1
jne 0x1400861cb
test edx, edx
je 0x1400861cb
mov rcx, qword [rcx + 0x5b]
call fcn.140077b58
mov rbx, qword [rsp + 0x58]
cmp rax, rbx
jb 0x1400861ff
jmp 0x1400861d0
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rdi + r12*8 + 0x198]
cmp dword [rcx + 0x90], esi
jne 0x140086336
test r14d, r14d
je 0x140086336
mov rcx, qword [rcx + 0x5b]
call fcn.140077b58
cmp rax, rbx
jb 0x140086336
movdqa xmm0, xmmword [0x1402553a0]
lea rdx, [rbp - 0x58]
mov r8, qword [rsp + 0x60]
mov rcx, r13
movdqu xmmword [rsp + 0x68], xmm0
mov byte [rsp + 0x78], reloc.WS2_32.dll_WSACleanup
call fcn.14008e0c8
mov r8, qword [rsp + 0x60]
lea rcx, [rbp - 0x30]
mov edx, 0x111
mov ebx, eax
call fcn.14008dee8
mov dword [rsp + 0x20], ebx
lea r9, [rbp - 0x58]
mov ebx, 0x20
lea rcx, [rbp - 0x30]
mov r8d, ebx
mov edx, eax
mov r14d, eax
call fcn.14008df38
add r14d, eax
mov dword [rsp + 0x20], reloc.WS2_32.dll_recvfrom
mov edx, r14d
lea r9, [rsp + 0x68]
lea r8d, [rbx - 0x17]
lea rcx, [rbp - 0x30]
call fcn.14008df38
add r14d, eax
lea r8, [rbp + 0x40]
mov edx, r14d
lea rcx, [rbp - 0x30]
mov r9d, ebx
call fcn.14008511c
add r14d, eax
mov edx, r14d
lea rcx, [rbp - 0x30]
call fcn.1400851dc
add r14d, eax
lea rdx, [rbp - 0x30]
mov eax, 2
mov r9d, r14d
mov dword [rsp + 0x28], eax
mov rcx, rdi
mov qword [rsp + 0x20], r13
call fcn.1400857bc
mov rax, qword [rdi + r12*8 + 0x198]
cmp qword [rax + 0x78], rsi
je 0x140085f63
cmp dword [rax + 0x88], esi
jle 0x140085f63
test rax, rax
je 0x140085f63
cmp dword [rax + 0x8c], 0xa
jge 0x140085f63
cmp dword [rax + 0x98], esi
jge 0x140085f63
mov edx, listen
lea rcx, [rbp - 0x68]
call fcn.1400b16f0
mov rax, qword [rdi + r12*8 + 0x198]
mov r9, r13
mov byte [rbp - 0x68], r15b
xor r8d, r8d
mov edx, r15d
inc dword [rax + 0x8c]
mov rcx, qword [rdi + r12*8 + 0x198]
call fcn.1400869ec
jmp 0x140085f63
mov rax, qword [rdi + r12*8 + 0x198]
mov edx, r15d
cmp dword [rax + 0x90], esi
sete sil
mov dword [rax + 0x90], esi
mov rcx, qword [rdi + r12*8 + 0x198]
call fcn.1400870c8
jmp 0x140085f63
cmp r10w, r14w
jne 0x1400863ff
cmp byte [r11], 0xa
ja 0x1400863ff
movsx rax, byte [r11]
mov rdx, qword [rdi + rax*8 + 0x198]
cmp dword [rdx + 0x90], esi
jne 0x1400863ff
cmp dword [rdx + 0x98], esi
jge 0x1400863ff
mov r9d, dword [rdx + 0x88]
mov ecx, esi
mov r12d, 2
test r9d, r9d
jle 0x140086405
mov r8, qword [rdx + 0x78]
mov eax, dword [r8]
xor ebx, ebx
mov qword [rbp - 0x68], rbx
mov dword [rbp - 0x64], eax
movzx eax, word [r8 + 4]
mov word [rbp - 0x66], ax
mov word [rbp - 0x68], r12w
cmp r12w, word [r13]
jne 0x1400863dc
mov rax, qword [r13]
cmp rax, qword [rbp - 0x68]
jne 0x1400863dc
cmp qword [r13 + 8], rbx
je 0x1400863e9
inc ecx
add r8, 6
cmp ecx, r9d
jge 0x140086405
jmp 0x1400863ab
mov rax, qword [rdx + 0x80]
mov r13d, 1
movsxd rcx, ecx
mov byte [rcx + rax], r13b
jmp 0x14008640b
mov r12d, 2
mov r13d, 1
cmp r10w, r14w
jne 0x1400866b8
mov al, byte [r11]
xor al, 0x80
cmp al, 0xa
jae 0x140086466
movzx ebx, byte [r11]
mov rcx, qword [rdi + 0x48]
btc rbx, 7
mov rdx, qword [rdi + rbx*8 + 0x1e8]
add rdx, r13
call fcn.14007c0d0
mov rdx, qword [rdi + rbx*8 + 0x1e8]
lea r9, [0x140085638]
mov rcx, qword [rdi + 0x48]
add rdx, r13
mov r8d, 0x3a98
mov qword [rsp + 0x20], rsi
call fcn.14007bdac
mov r11, qword [rsp + 0x60]
mov rax, qword [r11]
cmp rax, qword [rdi + 0x160]
jne 0x1400866b8
mov eax, dword [r11 + 8]
cmp eax, dword [rdi + 0x168]
jne 0x1400866b8
mov rcx, qword [rdi + 0x48]
mov rdx, rdi
call fcn.14007c0d0
mov ecx, dword [rdi + 0x13c]
test ecx, ecx
je 0x14008657f
sub ecx, 1
je 0x14008650a
sub ecx, 1
je 0x1400864c2
cmp ecx, 1
jne 0x1400866b8
lea r8, [rdi + 0x94]
lea edx, [rcx + 3]
jmp 0x1400866b0
mov r9d, reloc.WS2_32.dll_recv
lea rcx, [rdi + 0xcc]
lea r8, [rbp - 0x80]
lea edx, [r9 + 0xc]
call section..text
movzx eax, word [rdi + 0xce]
lea r8, [rdi + 0x94]
mov rcx, rdi
cmp word [rdi + 0xb2], ax
jne 0x140086500
mov edx, 4
jmp 0x1400866b3
mov edx, 3
jmp 0x1400866b3
mov r9d, reloc.WS2_32.dll_recv
lea rcx, [rdi + 0xb0]
lea r8, [rbp - 0x80]
lea edx, [r9 + 0xc]
call section..text
movzx eax, word [rdi + 0xb2]
mov rcx, rdi
cmp word [rdi + 0x96], ax
jne 0x140086546
lea r8, [rdi + 0x94]
mov edx, r12d
jmp 0x1400866b3
lea rdx, [rdi + 0x120]
mov dword [rdi + 0x13c], r12d
xor r8d, r8d
call fcn.140085250
mov rcx, qword [rdi + 0x48]
lea r9, [0x14008cdf4]
mov r8d, 0x7d0
mov qword [rsp + 0x20], rsi
mov rdx, rdi
call fcn.14007bdac
jmp 0x1400866b8
cmp word [rbp - 0x80], r12w
jne 0x1400866ab
mov ebx, 0x1c
lea r14d, [rbx - 0xc]
cmp word [rsp + 0x68], r12w
jne 0x1400865d5
lea rcx, [rdi + 0x120]
mov r9d, r14d
lea r8, [rsp + 0x68]
mov edx, ebx
call section..text
lea rcx, [rdi + 0x104]
mov r9d, r14d
lea r8, [rsp + 0x68]
mov edx, ebx
call section..text
movzx eax, word [rdi + 0xea]
mov word [rdi + 0x106], ax
lea r15, [rdi + 0x94]
mov r9, r14
mov rcx, r15
lea r8, [rbp - 0x80]
mov rdx, rbx
call section..text
mov eax, dword [rdi + 0x6c]
mov ebx, esi
test eax, eax
jne 0x140086635
lea rcx, [rbp - 0x68]
mov qword [rbp - 0x68], rsi
call fcn.140077b84
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x14008664d
cdqe
test rax, rax
jle 0x14008662e
mov r8d, dword [rdi + 0x98]
lea rdx, [rcx + 4]
cmp r8d, dword [rdx]
cmove ebx, r13d
add rdx, r14
sub rax, r13
jne 0x14008661f
call fcn.140174cc8
jmp 0x140086640
cmp dword [rdi + 0x98], eax
jne 0x14008664d
mov ebx, r13d
cmp ebx, r13d
jne 0x14008664d
mov r8, r15
mov edx, r13d
jmp 0x1400866b0
cmp byte [rdi + 0x16b], sil
jne 0x140086660
mov r8, r15
mov edx, listen
jmp 0x1400866b0
cmp word [rsp + 0x68], r12w
jne 0x1400866a1
mov rcx, qword [rdi + 0x48]
lea r9, [0x14008cdf4]
mov r8d, 0x7d0
mov dword [rdi + 0x13c], r13d
mov rdx, rdi
mov qword [rsp + 0x20], rsi
call fcn.14007bdac
lea rdx, [rdi + 0x104]
xor r8d, r8d
mov rcx, rdi
call fcn.140085250
jmp 0x1400866b8
mov r8, r15
mov edx, 0xa
jmp 0x1400866b0
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.140085954
mov eax, r13d
jmp 0x140085d5c