Function at 0x18004acb0
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x390]
sub rsp, 0x490
mov rax, qword [0x18036d060]
xor rax, rsp
mov qword [rbp + 0x380], rax
mov qword [rsp + 0x48], r9
mov r15, r8
mov qword [rsp + 0x40], r8
mov rsi, rdx
mov r13, rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rdx
mov rax, qword [rbp + 0x3f0]
mov qword [rsp + 0x38], rax
xor r14d, r14d
mov qword [rbp + 0x10], r14
mov qword [rbp + 0x28], r14
mov qword [rbp + 0x30], 7
mov word [rbp + 0x18], r14w
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x50], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x38], r14b
mov dword [rbp + 0x58], r14d
mov rdi, qword [r8]
test rdi, rdi
jne 0x18004ad4c
mov dword [rdx], 0xc00000ef
mov byte [rdx + 0x58], dil
jmp 0x18004b184
xorps xmm0, xmm0
movups xmmword [rbp + 0x90], xmm0
lea rax, [fcn.18021e050]
mov qword [rbp + 0x90], rax
mov rbx, r14
mov qword [rbp + 0x98], rbx
movups xmmword [rbp + 0x130], xmm0
movups xmmword [rbp + 0x140], xmm0
movups xmmword [rbp + 0x150], xmm0
movups xmmword [rbp + 0x160], xmm0
xor edx, edx
mov r8d, 0x108
lea rcx, [rbp + 0x170]
call fcn.180211600
mov rax, qword [r13 + 8]
mov qword [rbp + 0xe8], r14
mov rax, qword [rax + 0x70]
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx]
lea rdx, [rbp + 0xe8]
mov qword [rsp + 0x20], rdx
mov r9d, 0x40
lea r8, [rbp + 0x130]
mov rdx, rdi
call qword [rax + 0x18]
mov eax, 0x5a4d
cmp word [rbp + 0x130], ax
je 0x18004adf0
mov dword [rsi], 0xc000012f
mov byte [rsi + 0x58], 0
jmp 0x18004b184
mov rax, qword [r13 + 8]
movsxd rdx, dword [rbp + 0x16c]
add rdx, qword [r15]
mov qword [rbp + 0xf0], r14
je 0x18004ae30
mov rax, qword [rax + 0x70]
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx]
lea r8, [rbp + 0xf0]
mov qword [rsp + 0x20], r8
mov r9d, 0x108
lea r8, [rbp + 0x170]
call qword [rax + 0x18]
nop
cmp dword [rbp + 0x170], 0x4550
je 0x18004ae4b
mov dword [rsi], 0xc000007b
mov byte [rsi + 0x58], 0
jmp 0x18004b184
mov r15d, dword [rbp + 0x1f8]
mov ecx, 0x10b
mov rax, qword [rbp + 0x188]
cmp ax, cx
cmove r15d, dword [rbp + 0x1e8]
mov r13d, r15d
test r15d, r15d
je 0x18004b16c
mov r12d, dword [rbp + 0x1fc]
cmp ax, cx
cmove r12d, dword [rbp + 0x1ec]
mov edi, r12d
mov qword [rbp + 0x80], rdi
mov ecx, r12d
call fcn.180223250
mov rbx, rax
mov qword [rbp + 0x98], rax
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 8]
mov rax, qword [rsp + 0x40]
mov rdx, qword [rax]
mov qword [rbp + 0xf8], r14
add rdx, r13
jne 0x18004aec7
mov eax, 0xc0000141
jmp 0x18004aeeb
mov rax, qword [rcx + 0x70]
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx]
lea r8, [rbp + 0xf8]
mov qword [rsp + 0x20], r8
mov r9, rdi
mov r8, rbx
call qword [rax + 0x18]
test eax, eax
jns 0x18004aef6
mov dword [rsi], eax
mov byte [rsi + 0x58], 0
jmp 0x18004b176
mov rdi, rbx
cmp r12d, 0x28
ja 0x18004af98
mov ecx, dword [rbx + 0x14]
cmp ecx, dword [rbx + 0x18]
cmovbe ecx, dword [rbx + 0x18]
imul eax, ecx, 0xff
add eax, dword [rbx + 0x24]
sub eax, r15d
mov r15d, eax
mov qword [rbp + 0x80], r15
mov ecx, eax
call fcn.180223250
mov rdi, rax
mov rcx, rbx
mov rbx, rax
mov qword [rbp + 0x98], rax
test rcx, rcx
je 0x18004af45
call fcn.18021e050
nop
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 8]
mov rax, qword [rsp + 0x40]
mov rdx, qword [rax]
mov qword [rbp + 0x100], r14
add rdx, r13
jne 0x18004af69
mov eax, 0xc0000141
jmp 0x18004af8d
mov rax, qword [rcx + 0x70]
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx]
lea r8, [rbp + 0x100]
mov qword [rsp + 0x20], r8
mov r9, r15
mov r8, rdi
call qword [rax + 0x18]
test eax, eax
jns 0x18004af98
mov dword [rsi], eax
mov byte [rsi + 0x58], 0
jmp 0x18004b176
mov r11d, dword [rdi + 0x24]
sub r11, r13
add r11, rdi
mov r15d, dword [rdi + 0x20]
sub r15, r13
add r15, rdi
mov eax, dword [rdi + 0x1c]
sub rax, r13
add rax, rdi
mov qword [rbp + 0xc0], rax
mov r9d, r14d
mov r12d, dword [rdi + 0x14]
test r12d, r12d
je 0x18004b16c
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xffff
ja 0x18004b116
movzx r10d, r9w
mov ecx, r10d
add ecx, dword [rdi + 0x10]
movzx eax, dx
cmp eax, ecx
jne 0x18004b160
mov rax, qword [rsp + 0x40]
mov rdx, qword [rax]
movzx eax, r10w
mov rcx, qword [rbp + 0xc0]
mov edi, dword [rcx + rax*4]
add rdi, rdx
mov qword [rbp + 0x10], rdi
lea rax, [rdx + r13]
cmp rdi, rax
jb 0x18004b6fe
mov rax, qword [rbp + 0x80]
add rax, rdx
add rax, r13
cmp rdi, rax
ja 0x18004b6fe
xor edx, edx
mov r8d, 0xff
lea rcx, [rbp + 0x280]
call fcn.180211600
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx + 8]
mov qword [rbp + 0xc0], r14
test rdi, rdi
je 0x18004b090
mov rax, qword [rax + 0x70]
mov rcx, qword [rax + 0x10]
mov rax, qword [rcx]
lea rdx, [rbp + 0xc0]
mov qword [rsp + 0x20], rdx
mov r9d, 0xff
lea r8, [rbp + 0x280]
mov rdx, rdi
call qword [rax + 0x18]
nop word [rax + rax]
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x60], 0
lea rax, [rbp + 0x280]
mov rdi, 0xffffffffffffffff
mov r8, rdi
inc r8
cmp byte [rax + r8], 0
jne 0x18004b0b1
lea rdx, [rbp + 0x280]
lea rcx, [rbp + 0x60]
call fcn.1800052d0
nop
lea r15, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
cmovae r15, qword [rbp + 0x60]
mov r13, qword [rbp + 0x70]
cmp r13, 1
jb 0x18004b1ef
lea r12, [r15 + r13]
mov r8, r13
mov edx, 0x2e
mov rcx, r15
call fcn.180211560
test rax, rax
je 0x18004b1ef
cmp byte [rax], 0x2e
jne 0x18004b1c3
mov ecx, r14d
jmp 0x18004b1c8
cmp r9d, dword [rdi + 0x18]
jae 0x18004b75f
mov eax, r9d
movzx r10d, word [r11 + rax*2]
mov ecx, dword [r15 + rax*4]
sub rcx, r13
add rcx, rdi
mov r8, rdx
sub r8, rcx
nop dword [rax + rax]
movzx edx, byte [rcx]
movzx eax, byte [rcx + r8]
sub edx, eax
jne 0x18004b153
inc rcx
test eax, eax
jne 0x18004b140
test edx, edx
je 0x18004aff3
mov rdx, qword [rsp + 0x48]
inc r9d
cmp r9d, r12d
jb 0x18004afd1
mov dword [rsi], 0xc0000225
mov byte [rsi + 0x58], 0
test rbx, rbx
je 0x18004b184
mov rcx, rbx
call fcn.18021e050
nop
lea rcx, [rbp + 0x38]
call fcn.180005250
lea rcx, [rbp + 0x18]
call fcn.18000db90
mov rax, rsi
mov rcx, qword [rbp + 0x380]
xor rcx, rsp
call fcn.18007b140
mov rbx, qword [rsp + 0x4e8]
add rsp, 0x490
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x18004b2ba
inc rax
mov r8, r12
sub r8, rax
mov edx, 0x2e
mov rcx, rax
call fcn.180211560
test rax, rax
jne 0x18004b105
mov rax, rdi
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x50], 0
cmp r13, rax
cmovb rax, r13
lea rdx, [rbp + 0x60]
cmp qword [rbp + 0x78], 0x10
cmovae rdx, qword [rbp + 0x60]
mov r8, rax
lea rcx, [rsp + 0x50]
call fcn.1800052d0
nop
mov r8d, 4
lea rdx, str..dll
lea rcx, [rsp + 0x50]
call fcn.180005430
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x118], xmm0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x108], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x118], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
lea rcx, [rsp + 0x50]
call fcn.180005250
lea r13, [rbp + 0x60]
mov rdx, qword [rbp + 0x60]
mov r9, qword [rbp + 0x78]
cmp r9, 0x10
cmovae r13, rdx
mov r12, qword [rbp + 0x70]
cmp r12, 1
jb 0x18004b2f2
lea r15, [r12 + r13]
mov r8, r12
mov edx, 0x2e
mov rcx, r13
call fcn.180211560
test rax, rax
je 0x18004b2ea
nop
cmp byte [rax], 0x2e
jne 0x18004b2c2
mov ecx, r14d
jmp 0x18004b2c7
sub rax, r15
jmp 0x18004b1f2
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x18004b3cb
inc rax
mov r8, r15
sub r8, rax
mov edx, 0x2e
mov rcx, rax
call fcn.180211560
test rax, rax
jne 0x18004b2b0
mov rdx, qword [rbp + 0x60]
mov r9, qword [rbp + 0x78]
mov rax, rdi
lea rcx, [rax + 1]
mov qword [rbp + 0xb0], r14
mov qword [rbp + 0xb8], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0xa0], 0
cmp r12, rcx
jb 0x18004b76e
sub r12, rcx
mov r8, rdi
cmp r12, rdi
cmovb r8, r12
lea rax, [rbp + 0x60]
cmp r9, 0x10
cmovae rax, rdx
lea rdx, [rax + rcx]
lea rcx, [rbp + 0xa0]
call fcn.1800052d0
nop
lea rdx, [rbp + 0x108]
lea rcx, [rbp + 0xc8]
call fcn.180049b70
nop
mov byte [rbp + 0x5a], 1
lea rdx, [rbp + 0xc8]
cmp qword [rbp + 0xe0], 8
cmovae rdx, qword [rbp + 0xc8]
mov r8, qword [rbp + 0xd8]
lea rcx, [rbp + 0x18]
call fcn.18000dc00
lea r12, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae r12, qword [rbp + 0xa0]
mov r13, qword [rbp + 0xb0]
cmp r13, 1
jb 0x18004b403
lea r15, [r12 + r13]
mov r8, r13
mov edx, 0x23
mov rcx, r12
call fcn.180211560
test rax, rax
je 0x18004b403
cmp byte [rax], 0x23
jne 0x18004b3db
mov ecx, r14d
jmp 0x18004b3e0
sub rax, r13
mov rdx, qword [rbp + 0x60]
mov r9, qword [rbp + 0x78]
jmp 0x18004b2f5
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x18004b55f
inc rax
mov r8, r15
sub r8, rax
mov edx, 0x23
mov rcx, rax
call fcn.180211560
test rax, rax
jne 0x18004b3c1
mov byte [rbp + 0x5b], 0
lea rdx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rdx, qword [rbp + 0xa0]
mov r8, r13
lea rcx, [rbp + 0x38]
call fcn.1800052d0
movzx r15d, byte [rbp + 0x5b]
movzx r12d, word [rbp + 0x58]
mov eax, 0x10b
cmp word [rbp + 0x188], ax
setne r14b
xorps xmm0, xmm0
movups xmmword [rbp + 0x80], xmm0
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [rbp + 0xc8]
lea rdx, [rbp + 0x80]
mov r14, qword [rsp + 0x30]
mov rcx, r14
call fcn.18004a760
nop
cmp qword [rbp + 0x80], 0
jne 0x18004b59e
lea rax, [rbp - 0x40]
mov qword [rsp + 0x38], rax
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x40], rax
lea rdx, [rbp + 0x18]
lea rcx, [rbp - 0x38]
call fcn.180016740
nop
lea rdx, [rbp + 0x38]
lea rcx, [rbp - 0x18]
call fcn.180004860
movzx eax, word [rbp + 0x58]
mov word [rbp + 8], ax
movzx eax, byte [rbp + 0x5a]
mov byte [rbp + 0xa], al
movzx eax, byte [rbp + 0x5b]
mov byte [rbp + 0xb], al
mov r8d, 0x107
lea rdx, [rbp - 0x40]
mov rcx, rsi
call fcn.18004d470
nop
mov r14, qword [rbp + 0x88]
test r14, r14
je 0x18004b51b
mov eax, edi
lock xadd dword [r14 + 8], eax
cmp eax, 1
jne 0x18004b514
mov rax, qword [r14]
mov rcx, r14
call qword [rax]
lock xadd dword [r14 + 0xc], edi
cmp edi, 1
jne 0x18004b514
mov rax, qword [r14]
mov rcx, r14
call qword [rax + ioctlsocket]
mov rbx, qword [rbp + 0x98]
lea rcx, [rbp + 0xc8]
call fcn.18000db90
nop
lea rcx, [rbp + 0xa0]
call fcn.180005250
nop
lea rcx, [rbp + 0x108]
call fcn.180005250
nop
lea rcx, [rbp + 0x60]
call fcn.180005250
nop
test rbx, rbx
je 0x18004b55a
mov rcx, rbx
call fcn.18021e050
nop
jmp 0x18004b184
sub rax, r12
sete r15b
mov byte [rbp + 0x5b], r15b
test rax, rax
jne 0x18004b407
lea rcx, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae rcx, qword [rbp + 0xa0]
inc rcx
call fcn.18022d7a8
mov r12d, eax
mov word [rbp + 0x58], ax
jmp 0x18004b434
lea rax, [rbp + 0xc8]
lea r8, [rbp + 0x80]
mov rdx, rsi
mov rcx, r14
test r15b, r15b
je 0x18004b64c
cmp qword [rbp + 0xe0], 8
cmovae rax, qword [rbp + 0xc8]
movzx r9d, r12w
mov qword [rsp + 0x20], rax
call fcn.18004ac80
nop
mov r14, qword [rbp + 0x88]
test r14, r14
je 0x18004b616
mov eax, edi
lock xadd dword [r14 + 8], eax
cmp eax, 1
jne 0x18004b60f
mov rax, qword [r14]
mov rcx, r14
call qword [rax]
lock xadd dword [r14 + 0xc], edi
cmp edi, 1
jne 0x18004b60f
mov rax, qword [r14]
mov rcx, r14
call qword [rax + ioctlsocket]
mov rbx, qword [rbp + 0x98]
lea rcx, [rbp + 0xc8]
call fcn.18000db90
nop
lea rcx, [rbp + 0xa0]
call fcn.180005250
nop
lea rcx, [rbp + 0x108]
call fcn.180005250
nop
lea rcx, [rbp + 0x60]
call fcn.180005250
nop
jmp 0x18004b6eb
cmp qword [rbp + 0xe0], 8
cmovae rax, qword [rbp + 0xc8]
lea r9, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 0x10
cmovae r9, qword [rbp + 0xa0]
mov qword [rsp + 0x20], rax
call fcn.18004ac80
nop
mov r14, qword [rbp + 0x88]
test r14, r14
je 0x18004b6ba
mov eax, edi
lock xadd dword [r14 + 8], eax
cmp eax, 1
jne 0x18004b6b3
mov rax, qword [r14]
mov rcx, r14
call qword [rax]
lock xadd dword [r14 + 0xc], edi
cmp edi, 1
jne 0x18004b6b3
mov rax, qword [r14]
mov rcx, r14
call qword [rax + ioctlsocket]
mov rbx, qword [rbp + 0x98]
lea rcx, [rbp + 0xc8]
call fcn.18000db90
nop
lea rcx, [rbp + 0xa0]
call fcn.180005250
nop
lea rcx, [rbp + 0x108]
call fcn.180005250
nop
lea rcx, [rbp + 0x60]
call fcn.180005250
nop
test rbx, rbx
je 0x18004b6f9
mov rcx, rbx
call fcn.18021e050
nop
jmp 0x18004b184
mov qword [rsp + 0x70], rdi
movups xmm0, xmmword [rbp + 0x18]
movups xmmword [rsp + 0x78], xmm0
movups xmm1, xmmword [rbp + 0x28]
movups xmmword [rbp - 0x78], xmm1
mov qword [rbp + 0x28], r14
mov qword [rbp + 0x30], 7
mov word [rbp + 0x18], r14w
movups xmm0, xmmword [rbp + 0x38]
movups xmmword [rbp - 0x68], xmm0
movups xmm1, xmmword [rbp + 0x48]
movups xmmword [rbp - 0x58], xmm1
mov qword [rbp + 0x48], r14
mov qword [rbp + 0x50], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x38], 0
mov dword [rbp - 0x48], r14d
xor r8d, r8d
lea rdx, [rsp + 0x70]
mov rcx, rsi
call fcn.18004d470
nop
jmp 0x18004b176
mov dword [rsi], 0xc0000225
mov byte [rsi + 0x58], 0
jmp 0x18004b176
call fcn.180005960
int3