Function at 0x14009eda0
Capabilities:
Create service
Delete service

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x358]
sub rsp, 0x458
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov rax, qword [0x1404680d8]
xor rax, rsp
mov qword [rbp + 0x340], rax
mov r13, r9
mov qword [rbp - 0x78], r9
mov rbx, r8
mov qword [rbp - 0x70], rbx
mov r14, rdx
mov qword [rbp - 0x50], rdx
mov rdi, rcx
mov qword [rbp - 0x80], rcx
mov qword [rbp + 0x18], rcx
mov rsi, qword [rbp + 0x3d0]
xor r12d, r12d
mov dword [rsp + 0x70], r12d
cmp qword [rcx], r12
jne 0x14009ee81
mov ecx, 0x98
call fcn.140282c3c
mov rbx, rax
mov qword [rbp - 0x68], rax
xor edx, edx
mov r8d, 0x98
mov rcx, rax
call fcn.140286140
lea rax, [rbp - 0x20]
mov qword [rbp + 0x158], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x78], rax
lea rax, [rbp]
mov qword [rbp - 0x48], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
movdqu xmmword [rbp - 0x10], xmm0
movdqu xmmword [rbp], xmm0
mov qword [rsp + 0x20], r12
lea r9, [rbp - 0x20]
lea r8, [rbp - 0x10]
lea rdx, [rbp]
mov rcx, rbx
call fcn.1400a2c20
nop
mov rdx, rax
mov rcx, rdi
call fcn.1400a1c40
mov rbx, qword [rbp - 0x70]
cmp qword [r14 + 0x10], 0
je 0x14009fe06
cmp qword [rbx + 0x10], 0
je 0x14009fe06
cmp qword [r13 + 0x10], 0
je 0x14009fe06
xor r15b, r15b
mov edi, r12d
xor r12b, r12b
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov r14, rax
test rax, rax
je 0x14009ef30
mov rdx, r13
cmp qword [r13 + 0x18], 8
jb 0x14009eed1
mov rdx, qword [r13]
mov r8d, 0xf01ff
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rbx, rax
test rax, rax
jne 0x14009ef0c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x424
je 0x14009ef0c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rbx, qword [rbp - 0x70]
jmp 0x14009ef38
mov r15b, 1
test rbx, rbx
je 0x14009ef21
movzx r12d, r15b
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rbx, qword [rbp - 0x70]
jmp 0x14009ef38
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test rsi, rsi
je 0x14009ef3f
mov dword [rsi], edi
test r15b, r15b
je 0x14009ef5d
test r12b, r12b
je 0x14009ef5d
test rsi, rsi
je 0x14009ef54
mov dword [rsi], 0x431
mov rdi, qword [rbp - 0x80]
jmp 0x14009fe11
lea rcx, [rbp + 0x80]
call fcn.14000c320
lea rcx, [rbp + 0xa0]
call fcn.14000c320
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xc0], xmm0
xor r14d, r14d
mov qword [rbp + 0xd0], r14
lea rcx, [rbp + 0xd8]
call fcn.14000c320
lea rcx, [rbp + 0xf8]
call fcn.14000c320
lea rcx, [rbp + 0x118]
call fcn.14000c320
nop
lea r8, str..inf
mov rdx, rbx
lea rcx, [rbp + 0x28]
call fcn.140037460
mov rbx, rax
lea rcx, [rbp + 0x2e0]
call fcn.14000c320
nop
lea r8, [rbp + 0x2e0]
mov rdx, rbx
mov rbx, qword [rbp - 0x50]
mov rcx, rbx
call fcn.140082f50
mov rdx, rax
lea rcx, [rbp + 0x180]
call fcn.1400256d0
mov r12d, 1
mov dword [rsp + 0x70], r12d
lea rcx, [rbp + 0x2e0]
call fcn.14000c300
nop
lea rcx, [rbp + 0x28]
call fcn.14000c300
xor eax, eax
mov qword [rbp + 0x140], rax
mov qword [rbp + 0x148], rax
mov qword [rbp + 0x150], rax
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x140], xmm0
mov qword [rbp + 0x150], r14
mov qword [rsp + 0x20], rsi
lea r8, [rbp + 0x140]
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x180]
call fcn.1400a0c10
test al, al
jne 0x14009f18a
mov r8, qword [rbp + 0x140]
test r8, r8
je 0x14009f12b
mov rdi, qword [rbp + 0x148]
cmp r8, rdi
je 0x14009f0c0
lea rbx, [r8 + 0x40]
lea rcx, [rbx + 0x28]
call fcn.14000c300
mov rcx, rbx
call fcn.14000c300
lea rcx, [rbx - 0x20]
call fcn.14000c300
lea rcx, [rbx - 0x40]
call fcn.14000c300
nop
add rbx, 0x88
lea rax, [rbx - 0x40]
cmp rax, rdi
jne 0x14009f085
mov r8, qword [rbp + 0x140]
mov rcx, qword [rbp + 0x150]
sub rcx, r8
movabs rax, 0x7878787878787879
imul rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x88
mov rax, r8
cmp rdx, 0x1000
jb 0x14009f111
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009fe71
mov rcx, r8
call fcn.140282c34
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x140], xmm0
mov qword [rbp + 0x150], r14
lea rcx, [rbp + 0x180]
call fcn.14000c300
nop
lea rcx, [rbp + 0x118]
call fcn.14000c300
lea rcx, [rbp + 0xf8]
call fcn.14000c300
lea rcx, [rbp + 0xd8]
call fcn.14000c300
lea rcx, [rbp + 0xc0]
call fcn.140029670
lea rcx, [rbp + 0xa0]
call fcn.14000c300
lea rcx, [rbp + 0x80]
call fcn.14000c300
nop
mov rdi, qword [rbp - 0x80]
jmp 0x14009fe11
cmp qword [rbp + 0x128], 0
je 0x14009f293
lea rcx, [rbp + 0x250]
call fcn.14000c320
lea rcx, [rbp + 0x270]
call fcn.14000c320
lea rcx, [rbp + 0x290]
call fcn.14000c320
lea rcx, [rbp + 0x2b8]
call fcn.14000c320
nop
mov r8d, 3
lea rdx, [0x1403d25b0]
lea rcx, [rbp + 0x250]
call fcn.14000d3a0
mov r8d, reloc.WS2_32.dll_inet_addr
lea rdx, str.Description
lea rcx, [rbp + 0x290]
call fcn.14000d3a0
mov dword [rbp + 0x2b0], r12d
lea rdx, [rbp + 0x118]
cmp qword [rbp + 0x130], 8
cmovae rdx, qword [rbp + 0x118]
mov r8, qword [rbp + 0x128]
lea rcx, [rbp + 0x2b8]
call fcn.14000d3a0
mov rdx, qword [rbp + 0x148]
lea r8, [rbp + 0x250]
cmp qword [rbp + 0x150], rdx
je 0x14009f255
call fcn.1400a1cd0
add qword [rbp + 0x148], 0x88
jmp 0x14009f262
lea rcx, [rbp + 0x140]
call fcn.1400a1d40
nop
lea rcx, [rbp + 0x2b8]
call fcn.14000c300
lea rcx, [rbp + 0x290]
call fcn.14000c300
lea rcx, [rbp + 0x270]
call fcn.14000c300
lea rcx, [rbp + 0x250]
call fcn.14000c300
nop
lea r8, str..sys
mov rdx, qword [rbp - 0x70]
lea rcx, [rbp + 0x48]
call fcn.140037460
nop
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x230]
call fcn.140082ed0
nop
lea rcx, [rbp + 0x48]
call fcn.14000c300
mov r9, rsi
xor r8d, r8d
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x230]
call fcn.140092550
test al, al
jne 0x14009f417
lea rcx, [rbp + 0x230]
call fcn.14000c300
nop
mov r8, qword [rbp + 0x140]
test r8, r8
je 0x14009f3b8
mov rdi, qword [rbp + 0x148]
cmp r8, rdi
je 0x14009f34d
lea rbx, [r8 + 0x40]
lea rcx, [rbx + 0x28]
call fcn.14000c300
mov rcx, rbx
call fcn.14000c300
lea rcx, [rbx - 0x20]
call fcn.14000c300
lea rcx, [rbx - 0x40]
call fcn.14000c300
nop
add rbx, 0x88
lea rax, [rbx - 0x40]
cmp rax, rdi
jne 0x14009f312
mov r8, qword [rbp + 0x140]
mov rcx, qword [rbp + 0x150]
sub rcx, r8
movabs rax, 0x7878787878787879
imul rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x88
mov rax, r8
cmp rdx, 0x1000
jb 0x14009f39e
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009fe77
mov rcx, r8
call fcn.140282c34
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x140], xmm0
mov qword [rbp + 0x150], r14
lea rcx, [rbp + 0x180]
call fcn.14000c300
nop
lea rcx, [rbp + 0x118]
call fcn.14000c300
lea rcx, [rbp + 0xf8]
call fcn.14000c300
lea rcx, [rbp + 0xd8]
call fcn.14000c300
lea rcx, [rbp + 0xc0]
call fcn.140029670
lea rcx, [rbp + 0xa0]
call fcn.14000c300
lea rcx, [rbp + 0x80]
call fcn.14000c300
nop
mov rdi, qword [rbp - 0x80]
jmp 0x14009fe11
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov r15, rax
mov qword [rbp - 0x68], rax
test rax, rax
je 0x14009fcca
mov dword [rbp + 0x158], r14d
mov rcx, qword [rbp + 0xc8]
sub rcx, qword [rbp + 0xc0]
test rcx, 0xfffffffffffffffe
mov rcx, r14
cmovne rcx, qword [rbp + 0xc0]
cmp qword [rbp + 0xb0], 0
je 0x14009f481
lea rax, [rbp + 0xa0]
cmp qword [rbp + 0xb8], 8
cmovae rax, qword [rbp + 0xa0]
jmp 0x14009f484
mov rax, r14
lea r9, [rbp + 0x80]
cmp qword [rbp + 0x98], 8
cmovae r9, qword [rbp + 0x80]
lea r8, [rbp + 0xf8]
cmp qword [rbp + 0x110], 8
cmovae r8, qword [rbp + 0xf8]
mov rdi, qword [rbp - 0x78]
mov rdx, rdi
cmp qword [rdi + 0x18], 8
jb 0x14009f4c3
mov rdx, qword [rdi]
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], rcx
lea rcx, [rbp + 0x158]
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r9
mov eax, dword [rbp + 0x78]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x74]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x70]
mov dword [rsp + 0x20], eax
mov r9d, 0xf01ff
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov qword [rsp + 0x78], rax
mov ebx, 0xffffffff
test rax, rax
je 0x14009f8cf
mov r13, qword [rbp + 0x148]
mov rcx, qword [rbp + 0x140]
cmp rcx, r13
je 0x14009f8bd
lea r15, [rcx + 0x40]
nop word [rax + rax]
lea rdx, [r15 - 0x40]
lea rcx, [rbp + 0x1a0]
call fcn.1400256d0
nop
lea rdx, [r15 - 0x20]
lea rcx, [rbp + 0x1c0]
call fcn.1400256d0
nop
mov rdx, r15
lea rcx, [rbp + 0x1e0]
call fcn.1400256d0
nop
mov eax, dword [r15 + 0x20]
mov dword [rbp + 0x200], eax
lea rdx, [r15 + 0x28]
lea rcx, [rbp + 0x208]
call fcn.1400256d0
nop
lea rcx, [rbp + 0x1a0]
cmp qword [rbp + 0x1b8], 8
cmovae rcx, qword [rbp + 0x1a0]
cmp qword [rbp + 0x1b0], 3
jne 0x14009f5da
mov r8d, 3
lea rdx, [0x1403d25b0]
nop dword [rax + rax]
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x14009f5da
add rcx, 2
add rdx, 2
sub r8, 1
jne 0x14009f5c0
mov al, 1
jmp 0x14009f5dc
xor al, al
test al, al
jne 0x14009f616
lea rcx, [rbp + 0x208]
call fcn.14000c300
lea rcx, [rbp + 0x1e0]
call fcn.14000c300
lea rcx, [rbp + 0x1c0]
call fcn.14000c300
lea rcx, [rbp + 0x1a0]
call fcn.14000c300
nop
jmp 0x14009f7f8
lea rcx, [rbp + 0x300]
call fcn.14000c320
nop
lea r8, [rbp + 0x300]
mov rdx, rdi
lea rcx, [0x14047af68]
call fcn.140082f50
mov rdx, rax
lea rcx, [rbp + 0x160]
call fcn.1400256d0
or r12d, 2
mov dword [rsp + 0x70], r12d
lea rcx, [rbp + 0x300]
call fcn.14000c300
nop
cmp qword [rbp + 0x1d0], 0
je 0x14009f6f1
lea rcx, [rbp + 0x320]
call fcn.14000c320
nop
lea r8, [rbp + 0x320]
lea rdx, [rbp + 0x1c0]
lea rcx, [rbp + 0x160]
call fcn.140082f50
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.1400256d0
or r12d, 4
mov dword [rsp + 0x70], r12d
lea rcx, [rbp + 0x320]
call fcn.14000c300
nop
lea rcx, [rbp + 0x160]
call fcn.14000c340
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rbp + 0x160], xmm0
movups xmm1, xmmword [rbp - 0x30]
movups xmmword [rbp + 0x170], xmm1
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], 7
mov word [rbp - 0x40], r14w
lea rcx, [rbp - 0x40]
call fcn.14000c300
lea rax, [rbp - 0x60]
mov qword [rbp - 0x48], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x60], xmm0
mov rax, qword [rbp - 0x80]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14009f716
lock inc dword [rcx + 8]
mov rcx, qword [rax + 8]
mov rax, qword [rax]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rcx
lea rax, [rbp - 0x60]
mov qword [rbp + 0x20], rax
mov edx, dword [rbp + 0x200]
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x14009f827
mov rax, qword [rcx]
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], edx
lea rdx, [rbp + 0x208]
mov qword [rsp + 0x20], rdx
lea r9, [rbp + 0x1e0]
lea r8, [rbp + 0x160]
mov rdx, 0xffffffff80000002
call qword [rax + 0xe0]
movzx r14d, al
mov rdi, qword [rbp - 0x58]
test rdi, rdi
je 0x14009f7aa
mov edx, ebx
lock xadd dword [rdi + 8], edx
cmp edx, 1
jne 0x14009f7aa
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
sub eax, 1
jne 0x14009f7aa
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test r14b, r14b
je 0x14009f85b
lea rcx, [rbp + 0x160]
call fcn.14000c300
nop
lea rcx, [rbp + 0x208]
call fcn.14000c300
lea rcx, [rbp + 0x1e0]
call fcn.14000c300
lea rcx, [rbp + 0x1c0]
call fcn.14000c300
lea rcx, [rbp + 0x1a0]
call fcn.14000c300
nop
mov rdi, qword [rbp - 0x78]
xor r14d, r14d
add r15, 0x88
lea rax, [r15 - 0x40]
cmp rax, r13
jne 0x14009f540
mov rdi, qword [rsp + 0x78]
mov r15, qword [rbp - 0x68]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rbp - 0x78]
jmp 0x14009f8dc
mov rdi, qword [rbp - 0x58]
test rdi, rdi
je 0x14009f85e
mov eax, ebx
lock xadd dword [rdi + 8], eax
sub eax, 1
jne 0x14009f85e
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
sub eax, 1
jne 0x14009f85e
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14009f85e
xor r14d, r14d
lea rcx, [rbp + 0x160]
call fcn.14000c300
nop
lea rcx, [rbp + 0x208]
call fcn.14000c300
lea rcx, [rbp + 0x1e0]
call fcn.14000c300
lea rcx, [rbp + 0x1c0]
call fcn.14000c300
lea rcx, [rbp + 0x1a0]
call fcn.14000c300
nop
mov rdi, qword [rsp + 0x78]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_DeleteService]
mov r15, qword [rbp - 0x68]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rbp - 0x78]
jmp 0x14009f8dc
mov rdi, rax
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rbp - 0x78]
jmp 0x14009f8dc
test rsi, rsi
je 0x14009f8dc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov r12d, 0x64
mov dword [rsp + 0x78], r12d
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
xor r15b, r15b
xor r13b, r13b
cmp qword [rdi + 0x10], 0
jne 0x14009f91b
test rsi, rsi
je 0x14009f913
mov dword [rsi], 0x57
xor r15b, r15b
jmp 0x14009f9b6
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov r12, rax
test rax, rax
je 0x14009f9a0
mov rdx, rdi
cmp qword [rdi + 0x18], 8
jb 0x14009f940
mov rdx, qword [rdi]
mov r8d, 0xf01ff
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rdi, rax
test rax, rax
jne 0x14009f97c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x424
je 0x14009f97c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r14d, eax
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rbp - 0x78]
jmp 0x14009f9a9
mov r15b, 1
test rdi, rdi
je 0x14009f991
movzx r13d, r15b
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rbp - 0x78]
jmp 0x14009f9a9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r14d, eax
test rsi, rsi
je 0x14009f9b1
mov dword [rsi], r14d
mov r12d, dword [rsp + 0x78]
add r12d, 0xffffffff
mov dword [rsp + 0x78], r12d
je 0x14009f9d9
test r15b, r15b
je 0x14009fb38
test r13b, r13b
mov r14d, 0
je 0x14009f8f0
test r15b, r15b
je 0x14009fb38
test r13b, r13b
jne 0x14009fb38
test rsi, rsi
je 0x14009f9f6
mov dword [rsi], 0x4db
lea rcx, [rbp + 0x230]
call fcn.14000c300
nop
mov r8, qword [rbp + 0x140]
test r8, r8
je 0x14009facc
mov rsi, qword [rbp + 0x148]
cmp r8, rsi
je 0x14009fa5e
lea rdi, [r8 + 0x40]
lea rcx, [rdi + 0x28]
call fcn.14000c300
mov rcx, rdi
call fcn.14000c300
lea rcx, [rdi - 0x20]
call fcn.14000c300
lea rcx, [rdi - 0x40]
call fcn.14000c300
nop
add rdi, 0x88
lea rax, [rdi - 0x40]
cmp rax, rsi
jne 0x14009fa23
mov r8, qword [rbp + 0x140]
mov rcx, qword [rbp + 0x150]
sub rcx, r8
movabs rax, 0x7878787878787879
imul rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x88
mov rax, r8
cmp rdx, 0x1000
jb 0x14009faaf
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009fe7d
mov rcx, r8
call fcn.140282c34
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x140], xmm0
xor r12d, r12d
mov qword [rbp + 0x150], r12
lea rcx, [rbp + 0x180]
call fcn.14000c300
nop
lea rcx, [rbp + 0x118]
call fcn.14000c300
lea rcx, [rbp + 0xf8]
call fcn.14000c300
lea rcx, [rbp + 0xd8]
call fcn.14000c300
lea rcx, [rbp + 0xc0]
call fcn.140029670
lea rcx, [rbp + 0xa0]
call fcn.14000c300
lea rcx, [rbp + 0x80]
call fcn.14000c300
nop
mov rdi, qword [rbp - 0x80]
mov rdi, qword [rdi + 8]
test rdi, rdi
je 0x14009fe46
jmp 0x14009fe1f
mov r9, rsi
mov rdx, qword [rbp - 0x70]
mov rcx, qword [rbp - 0x50]
call fcn.1400a0ac0
mov rcx, rdi
call fcn.1400a0460
test al, al
je 0x14009fb60
mov r9, rsi
mov rcx, rdi
call fcn.14009ff30
nop
lea rcx, [rbp + 0x230]
call fcn.14000c300
nop
mov r8, qword [rbp + 0x140]
test r8, r8
je 0x14009fc39
mov rsi, qword [rbp + 0x148]
cmp r8, rsi
je 0x14009fbcb
lea rdi, [r8 + 0x40]
nop dword [rax]
lea rcx, [rdi + 0x28]
call fcn.14000c300
mov rcx, rdi
call fcn.14000c300
lea rcx, [rdi - 0x20]
call fcn.14000c300
lea rcx, [rdi - 0x40]
call fcn.14000c300
nop
add rdi, 0x88
lea rax, [rdi - 0x40]
cmp rax, rsi
jne 0x14009fb90
mov r8, qword [rbp + 0x140]
mov rcx, qword [rbp + 0x150]
sub rcx, r8
movabs rax, 0x7878787878787879
imul rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x88
mov rax, r8
cmp rdx, 0x1000
jb 0x14009fc1c
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009fe83
mov rcx, r8
call fcn.140282c34
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x140], xmm0
xor r12d, r12d
mov qword [rbp + 0x150], r12
lea rcx, [rbp + 0x180]
call fcn.14000c300
nop
lea rcx, [rbp + 0x118]
call fcn.14000c300
lea rcx, [rbp + 0xf8]
call fcn.14000c300
lea rcx, [rbp + 0xd8]
call fcn.14000c300
lea rcx, [rbp + 0xc0]
call fcn.140029670
lea rcx, [rbp + 0xa0]
call fcn.14000c300
lea rcx, [rbp + 0x80]
call fcn.14000c300
nop
mov rdi, qword [rbp - 0x80]
mov rdi, qword [rdi + 8]
test rdi, rdi
je 0x14009fcc3
mov eax, ebx
lock xadd dword [rdi + 8], eax
sub eax, 1
jne 0x14009fcc3
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x14009fcc3
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov al, 1
jmp 0x14009fe48
test rsi, rsi
je 0x14009fcd7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsi], eax
lea rcx, [rbp + 0x230]
call fcn.14000c300
nop
mov r8, qword [rbp + 0x140]
test r8, r8
je 0x14009fdaa
mov rdi, qword [rbp + 0x148]
cmp r8, rdi
je 0x14009fd3f
lea rbx, [r8 + 0x40]
lea rcx, [rbx + 0x28]
call fcn.14000c300
mov rcx, rbx
call fcn.14000c300
lea rcx, [rbx - 0x20]
call fcn.14000c300
lea rcx, [rbx - 0x40]
call fcn.14000c300
nop
add rbx, 0x88
lea rax, [rbx - 0x40]
cmp rax, rdi
jne 0x14009fd04
mov r8, qword [rbp + 0x140]
mov rcx, qword [rbp + 0x150]
sub rcx, r8
movabs rax, 0x7878787878787879
imul rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rdx, rdx, 0x88
mov rax, r8
cmp rdx, 0x1000
jb 0x14009fd90
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009fe6b
mov rcx, r8
call fcn.140282c34
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x140], xmm0
mov qword [rbp + 0x150], r14
lea rcx, [rbp + 0x180]
call fcn.14000c300
nop
lea rcx, [rbp + 0x118]
call fcn.14000c300
lea rcx, [rbp + 0xf8]
call fcn.14000c300
lea rcx, [rbp + 0xd8]
call fcn.14000c300
lea rcx, [rbp + 0xc0]
call fcn.140029670
lea rcx, [rbp + 0xa0]
call fcn.14000c300
lea rcx, [rbp + 0x80]
call fcn.14000c300
nop
mov rdi, qword [rbp - 0x80]
jmp 0x14009fe11
test rsi, rsi
je 0x14009fe11
mov dword [rsi], 0x57
mov rdi, qword [rdi + 8]
test rdi, rdi
je 0x14009fe46
mov ebx, 0xffffffff
mov eax, ebx
lock xadd dword [rdi + 8], eax
sub eax, 1
jne 0x14009fe46
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
cmp ebx, 1
jne 0x14009fe46
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor al, al
mov rcx, qword [rbp + 0x340]
xor rcx, rsp
call fcn.140282c10
add rsp, 0x458
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14028ea2c
nop
call fcn.14028ea2c
nop
call fcn.14028ea2c
nop
call fcn.14028ea2c
nop
call fcn.14028ea2c
int3