Function at 0x14018c280
Capabilities:
Terminate process

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0xd0
lea rdi, [rsp + 0x40]
mov ecx, 0x24
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0xe0]
mov eax, dword [rsp + 0xf0]
add eax, 2
mov dword [rsp + 0x44], eax
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x64], 0
cmp dword [rsp + 0xf8], 2
jge 0x14018c2ea
mov eax, dword [rsp + 0xf0]
jmp 0x14018cbd1
movsxd rax, dword [rsp + 0xf0]
mov rcx, qword [rsp + 0xe8]
add rcx, rax
mov rax, rcx
mov ecx, 2
imul rcx, rcx, 0
movzx ecx, word [rax + rcx]
call qword [sym.imp.WS2_32.dll_ntohs]
mov word [rsp + 0x4c], ax
movzx eax, word [rsp + 0x4c]
and eax, 0x8000
test eax, eax
je 0x14018c333
mov dword [rsp + 0x84], 1
jmp 0x14018c33e
mov dword [rsp + 0x84], 0
mov eax, dword [rsp + 0x84]
mov dword [rsp + 0x58], eax
movzx eax, word [rsp + 0x4c]
and eax, 0xf00
sar eax, 8
mov byte [rsp + 0x5c], al
movzx eax, word [rsp + 0x4c]
and eax, 0x7f
movzx eax, al
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x48], 0x7e
jne 0x14018c3c6
cmp dword [rsp + 0xf8], 4
jge 0x14018c386
mov eax, dword [rsp + 0xf0]
jmp 0x14018cbd1
movsxd rax, dword [rsp + 0xf0]
mov rcx, qword [rsp + 0xe8]
add rcx, rax
mov rax, rcx
mov ecx, 2
imul rcx, rcx, 1
movzx ecx, word [rax + rcx]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x44]
add eax, 2
mov dword [rsp + 0x44], eax
jmp 0x14018c44c
cmp dword [rsp + 0x48], 0x7f
jne 0x14018c44c
cmp dword [rsp + 0xf8], 0xa
jge 0x14018c3e5
mov eax, dword [rsp + 0xf0]
jmp 0x14018cbd1
movsxd rax, dword [rsp + 0xf0]
mov rcx, qword [rsp + 0xe8]
add rcx, rax
mov rax, rcx
mov ecx, 8
imul rcx, rcx, 0
mov rcx, qword [rax + rcx + 2]
call fcn.1401391b0
mov qword [rsp + 0x78], rax
cmp qword [rsp + 0x78], 0x7fffffff
jbe 0x14018c439
mov rcx, qword [rsp + 0xe0]
call fcn.14018b330
mov eax, dword [rsp + 0xf8]
jmp 0x14018cbd1
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x44]
add eax, 8
mov dword [rsp + 0x44], eax
movzx eax, word [rsp + 0x4c]
and eax, 0x80
movzx eax, al
test eax, eax
je 0x14018c46a
mov dword [rsp + 0x88], 4
jmp 0x14018c475
mov dword [rsp + 0x88], 0
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x44]
add ecx, eax
mov eax, ecx
add eax, dword [rsp + 0x88]
cmp dword [rsp + 0xf8], eax
jge 0x14018c49d
mov eax, dword [rsp + 0xf0]
jmp 0x14018cbd1
movzx eax, word [rsp + 0x4c]
and eax, 0x80
movzx eax, al
test eax, eax
jne 0x14018c4bc
mov qword [rsp + 0x90], 0
jmp 0x14018c4d7
movsxd rax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0xe8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x14018c57b
mov eax, dword [rsp + 0x44]
add eax, 4
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x40], 0
jmp 0x14018c50f
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x40], eax
jge 0x14018c57b
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x44]
add ecx, eax
mov eax, ecx
cdqe
mov rcx, qword [rsp + 0xe8]
movsx eax, byte [rcx + rax]
mov dword [rsp + 0x98], eax
mov eax, dword [rsp + 0x40]
cdq
and edx, 3
add eax, edx
and eax, 3
sub eax, edx
cdqe
mov rcx, qword [rsp + 0x50]
movsx eax, byte [rcx + rax]
mov ecx, dword [rsp + 0x98]
xor ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x40]
mov edx, dword [rsp + 0x44]
add edx, ecx
mov ecx, edx
movsxd rcx, ecx
mov rdx, qword [rsp + 0xe8]
mov byte [rdx + rcx], al
jmp 0x14018c505
mov rax, qword [rsp + 0xe0]
cmp qword [rax + 0x68], 0
jne 0x14018c59b
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x44]
add ecx, eax
mov eax, ecx
jmp 0x14018cbd1
movzx eax, byte [rsp + 0x5c]
cmp eax, 8
jge 0x14018ca21
mov rax, qword [rsp + 0xe0]
cmp dword [rax + 0x150], 0
jne 0x14018c655
movzx eax, byte [rsp + 0x5c]
mov rcx, qword [rsp + 0xe0]
mov dword [rcx + 0x138], eax
mov dword [rsp + 0x64], 0
cmp dword [rsp + 0x58], 0
jne 0x14018c5ed
mov dword [rsp + 0x9c], 0xa
jmp 0x14018c5f8
mov dword [rsp + 0x9c], ntohs
movsxd rax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0xe8]
add rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x9c]
mov dword [rsp + 0x30], ecx
mov ecx, dword [rsp + 0x48]
mov dword [rsp + 0x28], ecx
lea rcx, [rsp + 0x64]
mov qword [rsp + 0x20], rcx
mov r9, rax
mov rax, qword [rsp + 0xe0]
mov r8, qword [rax + 0x160]
xor edx, edx
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xe0]
call qword [rax + 0x68]
nop
jmp 0x14018ca1c
movzx eax, byte [rsp + 0x5c]
test eax, eax
je 0x14018c671
movzx eax, byte [rsp + 0x5c]
mov rcx, qword [rsp + 0xe0]
mov dword [rcx + 0x138], eax
cmp dword [rsp + 0x58], 0
je 0x14018c702
mov rax, qword [rsp + 0xe0]
cmp dword [rax + 0x148], 0
jne 0x14018c702
mov rax, qword [rsp + 0xe0]
movsx eax, byte [rax + 0x154]
test eax, eax
jne 0x14018c702
mov dword [rsp + 0x64], 0
movsxd rax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0xe8]
add rcx, rax
mov rax, rcx
mov dword [rsp + 0x30], 0
mov ecx, dword [rsp + 0x48]
mov dword [rsp + 0x28], ecx
lea rcx, [rsp + 0x64]
mov qword [rsp + 0x20], rcx
mov r9, rax
mov rax, qword [rsp + 0xe0]
mov r8, qword [rax + 0x160]
xor edx, edx
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xe0]
call qword [rax + 0x68]
nop
jmp 0x14018ca1c
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x148]
add eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xe0]
cmp eax, dword [rcx + 0x14c]
jl 0x14018c8d4
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xe0]
mov ecx, dword [rcx + 0x150]
cmp dword [rax + 0x14c], ecx
jne 0x14018c7cf
mov rax, qword [rsp + 0xe0]
mov byte [rax + 0x154], 1
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x30], 0xa
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x148]
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x64]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xe0]
mov r9, qword [rax + 0x140]
mov rax, qword [rsp + 0xe0]
mov r8, qword [rax + 0x160]
xor edx, edx
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xe0]
call qword [rax + 0x68]
mov rax, qword [rsp + 0xe0]
mov dword [rax + 0x148], 0
jmp 0x14018c8d4
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x14c]
shl eax, 1
mov rcx, qword [rsp + 0xe0]
mov dword [rcx + 0x14c], eax
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xe0]
mov ecx, dword [rcx + 0x150]
cmp dword [rax + 0x14c], ecx
jle 0x14018c827
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xe0]
mov ecx, dword [rcx + 0x150]
mov dword [rax + 0x14c], ecx
mov rax, qword [rsp + 0xe0]
movsxd rax, dword [rax + 0x14c]
mov dword [rsp + 0x20], 0x29d
lea r9, [0x140569410]
mov r8d, 1
mov rdx, rax
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rax + 0x140]
call fcn.1403bab60
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xa0]
mov qword [rax + 0x140], rcx
cmp qword [rsp + 0xa0], 0
jne 0x14018c8d4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
mov r9d, 0xfe
mov r8d, 0x29d
lea rdx, [0x140569460]
xor ecx, ecx
call fcn.14014da80
mov r8d, 0x29d
lea rdx, [0x1405694b0]
lea rcx, [0x1405694f8]
call fcn.140015e70
mov ecx, 0xfe
call fcn.14038e600
nop
movsxd rax, dword [rsp + 0x48]
movsxd rcx, dword [rsp + 0x44]
mov rdx, qword [rsp + 0xe8]
add rdx, rcx
mov rcx, rdx
mov rdx, qword [rsp + 0xe0]
mov r8, qword [rsp + 0xe0]
mov r8d, dword [r8 + 0x148]
mov edx, dword [rdx + 0x14c]
sub edx, r8d
movsxd rdx, edx
mov r8, qword [rsp + 0xe0]
movsxd r8, dword [r8 + 0x148]
mov r9, qword [rsp + 0xe0]
add r8, qword [r9 + 0x140]
mov qword [rsp + 0xa8], r8
mov r9, rax
mov r8, rcx
mov rax, qword [rsp + 0xa8]
mov rcx, rax
call fcn.140188720
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x148]
add eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xe0]
mov dword [rcx + 0x148], eax
cmp dword [rsp + 0x58], 0
je 0x14018ca1c
mov rax, qword [rsp + 0xe0]
movsx eax, byte [rax + 0x154]
test eax, eax
jne 0x14018c996
mov dword [rsp + 0xb0], 0
jmp 0x14018c9a1
mov dword [rsp + ntohs0], 0xb
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax + 0x148]
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x64]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xe0]
mov r9, qword [rax + 0x140]
mov rax, qword [rsp + 0xe0]
mov r8, qword [rax + 0x160]
xor edx, edx
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xe0]
call qword [rax + 0x68]
mov rax, qword [rsp + 0xe0]
mov byte [rax + 0x154], 0
mov rax, qword [rsp + 0xe0]
mov dword [rax + 0x148], 0
jmp 0x14018cbc5
movzx eax, byte [rsp + 0x5c]
mov byte [rsp + 0xb4], al
cmp byte [rsp + 0xb4], 8
je 0x14018ca4a
cmp byte [rsp + 0xb4], 9
je 0x14018cb9c
jmp 0x14018cbc5
mov dword [rsp + 0x80], 0
mov rax, qword [rsp + 0xe0]
add rax, 0x128
mov rcx, rax
call fcn.140188900
mov rax, qword [rsp + 0xe0]
movsx eax, byte [rax + 0x155]
test eax, eax
jne 0x14018ca98
mov rax, qword [rsp + 0xe0]
mov byte [rax + 0x155], 1
mov dword [rsp + 0x80], 1
mov rax, qword [rsp + 0xe0]
add rax, 0x128
mov rcx, rax
call fcn.1401888e0
cmp dword [rsp + 0x80], 0
je 0x14018cb19
cmp dword [rsp + 0x48], 0
jle 0x14018cacc
mov dword [rsp + 0xb8], 2
jmp 0x14018cad7
mov dword [rsp + 0xb8], 0
movsxd rax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0xe8]
add rcx, rax
mov rax, rcx
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 2
mov r9d, 8
mov r8d, dword [rsp + 0xb8]
mov rdx, rax
mov rcx, qword [rsp + 0xe0]
call fcn.14018a020
nop
mov rax, qword [rsp + 0xe0]
cmp qword [rax + 0x20], 0
je 0x14018cb54
mov eax, 4
imul rax, rax, 2
mov rcx, qword [rsp + 0xe0]
add rax, qword [rcx + 0x20]
mov ecx, 8
imul rcx, rcx, 0
mov rax, qword [rax + rcx]
mov qword [rsp + 0xc0], rax
jmp 0x14018cb60
mov qword [rsp + 0xc0], 0
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x20], rax
lea r9, str.ILibWebServer:_____Close_OP_Code__on__p
mov r8d, 2
mov edx, 0x80
mov rcx, qword [rsp + 0xc0]
call fcn.1401589b0
mov rcx, qword [rsp + 0xe0]
call fcn.14018b330
nop
jmp 0x14018cbc5
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 1
mov r9d, 0xa
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0xe0]
call fcn.14018a020
nop
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x44]
add ecx, eax
mov eax, ecx
mov rdi, rax
mov rcx, rsp
lea rdx, reloc.WS2_32.dll_accept
call fcn.14037c300
mov rax, rdi
add rsp, 0xd0
pop rdi
ret