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

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0xa8
mov rax, qword [rsp + 0xb0]
cmp qword [rax + 0x20], 0
jne 0x18012af7c
mov rcx, qword [rsp + 0xb0]
call fcn.18012b490
movzx eax, al
test eax, eax
jne 0x18012af7c
mov rax, qword [rsp + 0xb0]
lea rcx, str.invalid_BOM__must_be_0xEF_0xBB_0xBF_if_given
mov qword [rax + 0x70], rcx
mov eax, reloc.WS2_32.dll_ntohl
jmp 0x18012b316
mov rcx, qword [rsp + 0xb0]
call fcn.18012d4b0
mov rax, qword [rsp + 0xb0]
cmp dword [rax + 0x14], 0x20
je 0x18012af7c
mov rax, qword [rsp + 0xb0]
cmp dword [rax + 0x14], 9
je 0x18012af7c
mov rax, qword [rsp + 0xb0]
cmp dword [rax + 0x14], 0xa
je 0x18012af7c
mov rax, qword [rsp + 0xb0]
cmp dword [rax + 0x14], 0xd
je 0x18012af7c
mov rax, qword [rsp + 0xb0]
movzx eax, byte [rax + 0x10]
test eax, eax
je 0x18012b047
mov rax, qword [rsp + 0xb0]
cmp dword [rax + 0x14], 0x2f
jne 0x18012b047
mov rcx, qword [rsp + 0xb0]
call fcn.18012bf80
movzx eax, al
test eax, eax
jne 0x18012affd
mov eax, reloc.WS2_32.dll_ntohl
jmp 0x18012b316
mov rcx, qword [rsp + 0xb0]
call fcn.18012d4b0
mov rax, qword [rsp + 0xb0]
cmp dword [rax + 0x14], 0x20
je 0x18012affd
mov rax, qword [rsp + 0xb0]
cmp dword [rax + 0x14], 9
je 0x18012affd
mov rax, qword [rsp + 0xb0]
cmp dword [rax + 0x14], 0xa
je 0x18012affd
mov rax, qword [rsp + 0xb0]
cmp dword [rax + 0x14], 0xd
je 0x18012affd
jmp 0x18012afc1
mov rax, qword [rsp + 0xb0]
mov eax, dword [rax + 0x14]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0x7e
ja case.0x18012b089.1
movsxd rax, dword [rsp + 0x20]
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x12b380]
mov eax, dword [rcx + rax*4 + 0x12b320]
add rax, rcx
jmp rax
mov eax, 8
jmp 0x18012b316
mov eax, 0xa
jmp 0x18012b316
mov eax, 9
jmp 0x18012b316
mov eax, ntohs
jmp 0x18012b316
mov eax, ntohs
jmp 0x18012b316
mov eax, reloc.WS2_32.dll_listen
jmp 0x18012b316
mov byte [rsp + 0x24], reloc.WS2_32.dll_WSACleanup
mov byte [rsp + 0x25], WSACleanup
mov byte [rsp + 0x26], 0x75
mov byte [rsp + 0x27], 0x65
mov qword [rsp + 0x70], 4
lea rax, [rsp + 0x24]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x40], 1
jmp 0x18012b106
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x70]
cmp qword [rsp + 0x40], rax
jae 0x18012b15e
mov rcx, qword [rsp + 0xb0]
call fcn.18012d4b0
mov dword [rsp + 0x58], eax
movsx eax, byte [rsp + 0x58]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x78]
add rdx, rcx
mov rcx, rdx
movsx ecx, byte [rcx]
cmp eax, ecx
je 0x18012b15c
mov rax, qword [rsp + 0xb0]
lea rcx, str.invalid_literal
mov qword [rax + 0x70], rcx
mov dword [rsp + 0x34], reloc.WS2_32.dll_ntohl
jmp 0x18012b166
jmp 0x18012b0f9
mov dword [rsp + 0x34], 1
mov eax, dword [rsp + 0x34]
jmp 0x18012b316
mov byte [rsp + 0x2c], 0x66
mov byte [rsp + 0x2d], 0x61
mov byte [rsp + 0x2e], WSASetLastError
mov byte [rsp + 0x2f], reloc.WS2_32.dll_WSAStartup
mov byte [rsp + 0x30], 0x65
mov qword [rsp + 0x80], 5
lea rax, [rsp + 0x2c]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x48], 1
jmp 0x18012b1b9
mov rax, qword [rsp + 0x48]
inc rax
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x48], rax
jae 0x18012b217
mov rcx, qword [rsp + 0xb0]
call fcn.18012d4b0
mov dword [rsp + 0x60], eax
movsx eax, byte [rsp + 0x60]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x88]
add rdx, rcx
mov rcx, rdx
movsx ecx, byte [rcx]
cmp eax, ecx
je 0x18012b215
mov rax, qword [rsp + 0xb0]
lea rcx, str.invalid_literal
mov qword [rax + 0x70], rcx
mov dword [rsp + 0x38], reloc.WS2_32.dll_ntohl
jmp 0x18012b21f
jmp 0x18012b1ac
mov dword [rsp + 0x38], 2
mov eax, dword [rsp + 0x38]
jmp 0x18012b316
mov byte [rsp + 0x28], WSASetLastError
mov byte [rsp + 0x29], 0x75
mov byte [rsp + 0x2a], WSASetLastError
mov byte [rsp + 0x2b], WSASetLastError
mov qword [rsp + 0x90], 4
lea rax, [rsp + 0x28]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x50], 1
jmp 0x18012b26d
mov rax, qword [rsp + 0x50]
inc rax
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x90]
cmp qword [rsp + 0x50], rax
jae 0x18012b2cb
mov rcx, qword [rsp + 0xb0]
call fcn.18012d4b0
mov dword [rsp + 0x68], eax
movsx eax, byte [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
add rdx, rcx
mov rcx, rdx
movsx ecx, byte [rcx]
cmp eax, ecx
je 0x18012b2c9
mov rax, qword [rsp + 0xb0]
lea rcx, str.invalid_literal
mov qword [rax + 0x70], rcx
mov dword [rsp + 0x3c], reloc.WS2_32.dll_ntohl
jmp 0x18012b2d3
jmp 0x18012b260
mov dword [rsp + 0x3c], 3
mov eax, dword [rsp + 0x3c]
jmp 0x18012b316
mov rcx, qword [rsp + 0xb0]
call fcn.18012c070
jmp 0x18012b316
mov rcx, qword [rsp + 0xb0]
call fcn.18012b500
jmp 0x18012b316
mov eax, reloc.WS2_32.dll_ntohs
jmp 0x18012b316
mov rax, qword [rsp + 0xb0]
lea rcx, str.invalid_literal
mov qword [rax + 0x70], rcx
mov eax, reloc.WS2_32.dll_ntohl
add rsp, 0xa8
ret