Function at 0x140023384
Capabilities:
Contain obfuscated stackstrings
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
sub rsp, 0x148
mov rax, qword [0x1403c86e8]
xor rax, rsp
mov qword [rsp + 0x138], rax
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0xe0], reloc.OLEAUT32.dll_VarBstrFromDisp
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0xe0], Ordinal_79
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0xe0], 0x64
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0xe0], reloc.WLDAP32.dll_Ordinal_46
mov eax, 1
imul rax, rax, 0xb
mov byte [rsp + rax + 0xe0], WSASetLastError
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0xe0], 0x65
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0xe0], reloc.WLDAP32.dll_Ordinal_50
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0xe0], WSASetLastError
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0xe0], gethostname
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0xe0], 0x65
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0xe0], WSACleanup
mov eax, 1
imul rax, rax, 0xc
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0xd
jae 0x140023479
jmp 0x14002347e
call fcn.14028613c
mov rax, qword [rsp + 0x20]
mov byte [rsp + rax + 0xe0], 0
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0xe0], WSASetLastError
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0x90], reloc.OLEAUT32.dll_VarBstrFromDisp
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0x90], reloc.WS2_32.dll_WSAGetLastError
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0x90], 0x65
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0x90], reloc.WS2_32.dll_WSASetLastError
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0x90], 0x63
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0x90], 0x65
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0x90], reloc.WS2_32.dll_WSAStartup
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0x90], WSACleanup
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0x90], 0x50
mov eax, 1
imul rax, rax, 0xb
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0xc
jae 0x14002354d
jmp 0x140023552
call fcn.14028613c
mov rax, qword [rsp + 0x28]
mov byte [rsp + rax + 0x90], 0
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0x90], reloc.WLDAP32.dll_Ordinal_79
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0x90], reloc.WS2_32.dll_WSAStartup
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0xf0], 0x64
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0xf0], WSASetLastError
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0xf0], 0x76
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0xf0], reloc.WS2_32.dll_WSASetLastError
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0xf0], WSASetLastError
mov eax, 1
imul rax, rax, 0xc
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0xd
jae 0x1400235ee
jmp 0x1400235f3
call fcn.14028613c
mov rax, qword [rsp + 0x30]
mov byte [rsp + rax + 0xf0], 0
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0xf0], reloc.WLDAP32.dll_Ordinal_46
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0xf0], 0x41
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0xf0], 0x64
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0xf0], reloc.WLDAP32.dll_Ordinal_50
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0xf0], gethostname
mov eax, 1
imul rax, rax, 0xb
mov byte [rsp + rax + 0xf0], WSASetLastError
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0xf0], 0x61
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0x110], 0x61
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0x110], WSACleanup
mov eax, 1
imul rax, rax, 0xd
mov byte [rsp + rax + 0x110], 0x41
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0x110], 0x43
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0x110], Ordinal_79
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0x110], 0x61
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0x110], reloc.WLDAP32.dll_Ordinal_79
mov eax, 1
imul rax, rax, 0xb
mov byte [rsp + rax + 0x110], 0x65
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0x110], WSACleanup
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0x110], 0x67
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0x110], 0x65
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0x110], reloc.WS2_32.dll_WSASetLastError
mov eax, 1
imul rax, rax, 0xe
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x38], 0xf
jae 0x14002375b
jmp 0x140023760
call fcn.14028613c
mov rax, qword [rsp + 0x38]
mov byte [rsp + rax + 0x110], 0
mov eax, 1
imul rax, rax, 0xc
mov byte [rsp + rax + 0x110], reloc.OLEAUT32.dll_VarBstrFromDisp
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0x110], 0x53
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0x100], 0x65
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0x100], 0x76
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0x100], 0x53
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0x100], 0x63
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0x100], WSACleanup
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0x100], reloc.OLEAUT32.dll_VarBstrFromDisp
mov eax, 1
imul rax, rax, 0xc
mov qword [rsp + 0x40], rax
cmp qword [rsp + 0x40], 0xd
jae 0x14002380d
jmp 0x140023812
call fcn.14028613c
mov rax, qword [rsp + 0x40]
mov byte [rsp + rax + 0x100], 0
mov eax, 1
imul rax, rax, 0xb
mov byte [rsp + rax + 0x100], 0x41
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0x100], reloc.WLDAP32.dll_Ordinal_79
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0x100], WSASetLastError
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0x100], 0x65
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0x100], reloc.WS2_32.dll_WSASetLastError
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0x100], 0x65
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0xa0], WSACleanup
mov eax, 1
imul rax, rax, 0xb
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0xc
jae 0x1400238ae
jmp 0x1400238b3
call fcn.14028613c
mov rax, qword [rsp + 0x48]
mov byte [rsp + rax + 0xa0], 0
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0xa0], WSASetLastError
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0xa0], WSASetLastError
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0xa0], 0x64
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0xa0], WSASetLastError
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0xa0], 0x77
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0xa0], 0x65
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0xa0], reloc.WS2_32.dll_WSACleanup
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0xa0], WSASetLastError
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0xa0], WSACleanup
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0xa0], reloc.WLDAP32.dll_Ordinal_46
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0x120], reloc.WS2_32.dll_WSACleanup
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0x120], 0x65
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0x120], 0x65
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0x120], reloc.WS2_32.dll_WSACleanup
mov eax, 1
imul rax, rax, 0xd
mov byte [rsp + rax + 0x120], reloc.WS2_32.dll_WSACleanup
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0x120], 0x65
mov eax, 1
imul rax, rax, 0xc
mov byte [rsp + rax + 0x120], reloc.WS2_32.dll_WSASetLastError
mov eax, 1
imul rax, rax, 0x10
mov byte [rsp + rax + 0x120], WSACleanup
mov eax, 1
imul rax, rax, 0xf
mov byte [rsp + rax + 0x120], reloc.WS2_32.dll_WSAGetLastError
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0x120], reloc.WS2_32.dll_WSACleanup
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0x120], WSACleanup
mov eax, 1
imul rax, rax, 0xb
mov byte [rsp + rax + 0x120], reloc.WLDAP32.dll_Ordinal_79
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0x120], reloc.OLEAUT32.dll_VarBstrFromDisp
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0x120], WSACleanup
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0x120], 0x53
mov eax, 1
imul rax, rax, 0xe
mov byte [rsp + rax + 0x120], WSASetLastError
mov eax, 1
imul rax, rax, 0x12
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0x13
jae 0x140023a92
jmp 0x140023a97
call fcn.14028613c
mov rax, qword [rsp + 0x50]
mov byte [rsp + rax + 0x120], 0
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0x120], Ordinal_79
mov eax, 1
imul rax, rax, 0x11
mov byte [rsp + rax + 0x120], 0x41
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0xb0], 0x61
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0xb0], 0x64
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0xb0], WSASetLastError
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0xb0], 0x77
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0xb0], WSAGetLastError
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0xb0], reloc.WLDAP32.dll_Ordinal_46
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0xb0], 0x53
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0xb0], WSASetLastError
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0xb0], WSASetLastError
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0xb0], reloc.WS2_32.dll_WSASetLastError
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0xb0], WSASetLastError
mov eax, 1
imul rax, rax, 0xb
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x58], 0xc
jae 0x140023b99
jmp 0x140023b9e
call fcn.14028613c
mov rax, qword [rsp + 0x58]
mov byte [rsp + rax + 0xb0], 0
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0xc0], Ordinal_79
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0xc0], WSASetLastError
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0xc0], 0x53
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0xc0], 0x61
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0xc0], reloc.WS2_32.dll_WSACleanup
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0xc0], 0x75
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0xc0], 0x56
mov eax, 1
imul rax, rax, 0xb
mov qword [rsp + 0x60], rax
cmp qword [rsp + 0x60], 0xc
jae 0x140023c3a
jmp 0x140023c3f
call fcn.14028613c
mov rax, qword [rsp + 0x60]
mov byte [rsp + rax + 0xc0], 0
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0xc0], 0x41
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0xc0], 0x65
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0xc0], 0x47
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0xc0], 0x65
mov eax, 1
imul rax, rax, 3
mov byte [rsp + rax + 0xd0], 0x65
mov eax, 1
imul rax, rax, 4
mov byte [rsp + rax + 0xd0], reloc.WS2_32.dll_WSACleanup
mov eax, 1
imul rax, rax, 7
mov byte [rsp + rax + 0xd0], WSASetLastError
mov eax, 1
imul rax, rax, 0
mov byte [rsp + rax + 0xd0], 0x53
mov eax, 1
imul rax, rax, 0xb
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x68], 0xc
jae 0x140023cec
jmp 0x140023cf1
call fcn.14028613c
mov rax, qword [rsp + 0x68]
mov byte [rsp + rax + 0xd0], 0
mov eax, 1
imul rax, rax, 6
mov byte [rsp + rax + 0xd0], 0x61
mov eax, 1
imul rax, rax, 2
mov byte [rsp + rax + 0xd0], 0x53
mov eax, 1
imul rax, rax, 5
mov byte [rsp + rax + 0xd0], 0x56
mov eax, 1
imul rax, rax, 8
mov byte [rsp + rax + 0xd0], 0x75
mov eax, 1
imul rax, rax, 9
mov byte [rsp + rax + 0xd0], 0x65
mov eax, 1
imul rax, rax, 0xa
mov byte [rsp + rax + 0xd0], 0x41
mov eax, 1
imul rax, rax, 1
mov byte [rsp + rax + 0xd0], Ordinal_79
lea rcx, [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1403dd990], rax
cmp qword [0x1403dd990], 0
je 0x140023db0
lea rdx, [rsp + 0x90]
mov rcx, qword [0x1403dd990]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1403dd970], rax
cmp qword [0x1403dd970], 0
jne 0x140023dc1
xor eax, eax
jmp 0x140023f65
lea rcx, [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1403dd988], rax
cmp qword [0x1403dd988], 0
je 0x140023dfc
lea rdx, [rsp + 0x120]
mov rcx, qword [0x1403dd988]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1403dd968], rax
lea rcx, [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1403dd980], rax
cmp qword [0x1403dd980], 0
je 0x140023e53
lea rdx, [rsp + 0x110]
mov rcx, qword [0x1403dd980]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1403dd960], rax
lea rdx, [rsp + 0x100]
mov rcx, qword [0x1403dd980]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1403dd958], rax
lea rcx, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1403dd978], rax
cmp qword [0x1403dd978], 0
je 0x140023eaa
lea rdx, [rsp + 0xc0]
mov rcx, qword [0x1403dd978]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1403dd950], rax
lea rdx, [rsp + 0xd0]
mov rcx, qword [0x1403dd978]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1403dd948], rax
cmp dword [rsp + 0x150], 2
jl 0x140023f5b
mov eax, 8
imul rax, rax, 1
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x158]
mov rax, qword [rdx + rax]
movsx eax, byte [rax + rcx]
cmp eax, 0x2d
jne 0x140023f55
mov eax, 8
imul rax, rax, 1
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x158]
add rcx, qword [rdx + rax]
mov rax, rcx
lea rdx, str.service
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x140023f53
mov rax, qword [0x1403c92f8]
mov qword [rsp + 0x70], rax
lea rax, [0x140023f80]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
lea rcx, [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherA]
xor eax, eax
jmp 0x140023f65
jmp 0x140023f59
xor eax, eax
jmp 0x140023f65
jmp 0x140023f5f
xor eax, eax
jmp 0x140023f65
jmp 0x140023f63
xor eax, eax
mov rcx, qword [rsp + 0x138]
xor rcx, rsp
call fcn.140286010
add rsp, 0x148
ret