Function at 0x14009ba14
Capabilities:
Load assembly via iassembly

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x250
mov qword [rsp + 0x1c8], 0xfffffffffffffffe
mov rax, qword [0x14014d030]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov qword [rsp + 0x190], r9
mov rdi, r8
mov qword [rsp + 0x1a8], r8
mov qword [rsp + 0x1b8], rdx
mov qword [rsp + 0x1b0], rcx
mov qword [rsp + 0x130], r9
mov rcx, qword [rsp + 0x2b0]
mov qword [rsp + 0x188], rcx
mov r8, qword [rsp + 0x2b8]
mov qword [rsp + 0xd0], r8
lea rax, [0x14014dd40]
mov rbx, qword [0x14014dd40]
mov esi, 1
cmp rbx, rax
je 0x14009badb
test byte [rbx + 0x1c], sil
je 0x14009badb
cmp byte [rbx + 0x19], 5
jb 0x14009badb
mov edx, 0x10c
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r9
mov r9, qword [rdi]
mov rcx, qword [rbx + 0x10]
call fcn.14008aef0
mov rbx, qword [0x14014dd40]
xor r15d, r15d
mov eax, r15d
mov dword [rsp + 0x60], eax
mov qword [rsp + 0x128], r15
mov qword [rsp + 0x110], r15
mov qword [rsp + 0x160], r15
mov qword [rsp + 0x120], r15
mov qword [rsp + 0x58], r15
mov dword [rsp + 0xd8], r15d
mov qword [rsp + 0x118], r15
mov dword [rsp + 0xc0], r15d
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x50], eax
mov eax, esi
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x80], eax
mov r12, qword [rdi]
cmp dword [r12 - 0x10], r15d
jl 0x14009c376
lea rdx, [0x14011d6e0]
mov rcx, r12
call fcn.14001c6a0
mov r14, rax
test rax, rax
je 0x14009c376
sub r14, r12
sar r14, 1
or r13, 0xffffffffffffffff
cmp r14d, r13d
je 0x14009c37a
mov r8d, r14d
lea rdx, [rsp + 0x198]
mov rcx, rdi
call fcn.1400049b0
cmp qword [rax], r15
jne 0x14009bb95
mov qword [rsp + 0x158], r15
jmp 0x14009bbb6
mov rcx, qword [rax]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rsp + 0x158], rax
test rax, rax
jne 0x14009bbb6
mov ecx, 0x8007000e
call fcn.140005300
nop
mov r12, qword [rsp + 0x198]
mov eax, r13d
lock xadd dword [r12 - 8], eax
add eax, r13d
test eax, eax
jg 0x14009bbf6
mov rdi, qword [r12 - 0x18]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.140009050]
lea rdx, [r12 - 0x18]
mov rcx, rdi
call rbx
mov rdi, qword [rsp + 0x1a8]
lea r8d, [r14 + 1]
lea rdx, [rsp + 0x1a0]
mov rcx, rdi
call fcn.1400048b4
mov rbx, qword [rax]
test rbx, rbx
je 0x14009bc3b
xor ecx, ecx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rsp + 0x120], rax
test rax, rax
jne 0x14009bc3b
mov ecx, 0x8007000e
call fcn.140005300
int3
mov r14, qword [rsp + 0x1a0]
mov eax, r13d
lock xadd dword [r14 - 8], eax
add eax, r13d
test eax, eax
jg 0x14009bc70
mov rdi, qword [r14 - 0x18]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.140009050]
lea rdx, [r14 - 0x18]
mov rcx, rdi
call rbx
mov rdi, qword [rsp + 0x1b0]
mov rdi, qword [rdi + 0x1d8]
mov rax, qword [rdi]
mov rbx, qword [rax + 0x20]
mov rcx, rbx
call qword [fcn.140009050]
lea r9, [rsp + 0x128]
mov r8, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x158]
mov rcx, rdi
call rbx
mov r14d, eax
test eax, eax
jns 0x14009bcf2
mov rcx, qword [0x14014dd40]
lea rbx, [0x14014dd40]
cmp rcx, rbx
je 0x14009bcf9
mov r12d, 2
test byte [rcx + 0x1c], r12b
je 0x14009bcff
cmp byte [rcx + 0x19], r12b
jb 0x14009bcff
mov edx, 0x10e
mov r9d, eax
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.1400036d4
jmp 0x14009bcff
lea rbx, [0x14014dd40]
mov r12d, 2
mov rcx, qword [rsp + 0x158]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test r14d, r14d
js 0x14009c3b9
lea rax, [rsp + 0x110]
mov qword [rsp + 0x20], rax
lea r9, [0x1401276e0]
mov r8d, esi
xor edx, edx
lea rcx, [0x1401276d0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov r14d, eax
test eax, eax
jns 0x14009bd78
mov rcx, qword [0x14014dd40]
cmp rcx, rbx
je 0x14009c3b9
test byte [rcx + 0x1c], r12b
je 0x14009c3b9
cmp byte [rcx + 0x19], r12b
jb 0x14009c3b9
mov edx, 0x10f
mov r9d, eax
mov rcx, qword [rcx + 0x10]
jmp 0x14009c3ad
mov rbx, qword [rsp + 0x110]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x208]
mov rcx, rdi
call qword [fcn.140009050]
lea r8, [rsp + 0xa8]
mov rdx, qword [rsp + 0x1b8]
mov rcx, rbx
call rdi
mov r14d, eax
jmp 0x14009bdec
lea rbx, [0x14014dd40]
test r14d, r14d
js 0x14009be03
cmp r15w, word [rsp + 0xa8]
jne 0x14009be48
mov r14d, 0x8007000d
mov rcx, qword [0x14014dd40]
cmp rcx, rbx
je 0x14009c3b9
test byte [rcx + 0x1c], r12b
je 0x14009c3b9
cmp byte [rcx + 0x19], r12b
jb 0x14009c3b9
mov edx, 0x110
mov r9d, 0x8007000d
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.1400036d4
test r14d, r14d
js 0x14009c3b9
mov qword [rsp + 0x168], r15
mov rbx, qword [rsp + 0x110]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x168]
mov rcx, rdi
call qword [fcn.140009050]
lea rdx, [rsp + 0x168]
mov rcx, rbx
call rdi
mov r14d, eax
test eax, eax
jns 0x14009beae
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009bf12
test byte [rcx + 0x1c], r12b
je 0x14009bf12
cmp byte [rcx + 0x19], r12b
jb 0x14009bf12
mov edx, 0x111
jmp 0x14009befe
mov rbx, qword [rsp + 0x168]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x68]
mov rcx, rdi
call qword [fcn.140009050]
lea rdx, [rsp + 0x160]
mov rcx, rbx
call rdi
mov r14d, eax
test eax, eax
jns 0x14009bf12
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009bf12
test byte [rcx + 0x1c], r12b
je 0x14009bf12
cmp byte [rcx + 0x19], r12b
jb 0x14009bf12
mov edx, 0x112
mov r9d, r14d
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.1400036d4
nop
mov rbx, qword [rsp + 0x168]
test rbx, rbx
je 0x14009bf34
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
test r14d, r14d
js 0x14009c3b9
mov qword [rsp + 0x178], r15
mov qword [rsp + 0x140], r15
mov rbx, qword [rsp + 0x160]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x60]
mov rcx, rdi
call qword [fcn.140009050]
lea rdx, [rsp + 0x178]
mov rcx, rbx
call rdi
mov r14d, eax
test eax, eax
jns 0x14009bfab
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009c141
test byte [rcx + 0x1c], r12b
je 0x14009c141
cmp byte [rcx + 0x19], r12b
jb 0x14009c141
mov edx, 0x113
jmp 0x14009c009
mov rbx, qword [rsp + 0x178]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x38]
mov rcx, rdi
call qword [fcn.140009050]
lea r8, [rsp + 0x140]
xor edx, edx
mov rcx, rbx
call rdi
mov r14d, eax
test eax, eax
jns 0x14009c021
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009c141
test byte [rcx + 0x1c], r12b
je 0x14009c141
cmp byte [rcx + 0x19], r12b
jb 0x14009c141
mov edx, 0x114
mov r9d, r14d
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.1400036d4
jmp 0x14009c141
mov rbx, qword [rsp + 0x140]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x148]
mov rcx, rdi
call qword [fcn.140009050]
lea rdx, [rsp + 0x58]
mov rcx, rbx
call rdi
mov r14d, eax
test eax, eax
js 0x14009c141
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.X_TestBandwidth
mov edx, esi
mov ecx, 0x7f
call qword [sym.imp.KERNEL32.dll_CompareStringW]
mov ecx, dword [rsp + 0x68]
cmp eax, r12d
cmove ecx, r15d
mov dword [rsp + 0x68], ecx
test ecx, ecx
je 0x14009c114
mov rbx, qword [rsp + 0x128]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x28]
mov rcx, rdi
call qword [fcn.140009050]
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x800
mov r9d, esi
lea r8, [rsp + 0x58]
lea rdx, [0x140127680]
mov rcx, rbx
call rdi
mov r14d, eax
test eax, eax
jns 0x14009c119
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009c114
test byte [rcx + 0x1c], r12b
je 0x14009c114
cmp byte [rcx + 0x19], r12b
jb 0x14009c114
mov edx, 0x115
mov dword [rsp + 0x20], r14d
mov r9, qword [rsp + 0x58]
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.1400056b0
test r14d, r14d
js 0x14009c141
mov rbx, qword [rsp + 0x140]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x60]
mov rcx, rdi
call qword [fcn.140009050]
lea rdx, [rsp + 0x118]
mov rcx, rbx
call rdi
mov r14d, eax
mov rbx, qword [rsp + 0x140]
test rbx, rbx
je 0x14009c164
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
nop
mov rbx, qword [rsp + 0x178]
test rbx, rbx
je 0x14009c186
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
test r14d, r14d
js 0x14009c3b9
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.Search
mov edx, esi
mov ebx, 0x7f
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
je 0x14009c2d7
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.Browse
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
je 0x14009c2d7
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.UpdateObject
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009c226
mov dword [rsp + 0x54], 3
mov dword [rsp + 0x50], r15d
jmp 0x14009c2e7
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.GetSystemUpdateID
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009c255
mov dword [rsp + 0x54], r15d
jmp 0x14009c281
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.X_TestBandwidth
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009c287
mov dword [rsp + 0x54], esi
mov dword [rsp + 0x50], esi
jmp 0x14009c2e7
mov r14d, 0x80004001
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009c3b9
test byte [rcx + 0x1c], r12b
je 0x14009c3b9
cmp byte [rcx + 0x19], r12b
jb 0x14009c3b9
mov edx, 0x116
mov r9, qword [rsp + 0x58]
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.140003638
jmp 0x14009c3b9
mov dword [rsp + 0x54], 6
mov dword [rsp + 0x50], 4
mov rbx, qword [rsp + 0x118]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x40]
mov rcx, rdi
call qword [fcn.140009050]
lea rdx, [rsp + 0xc0]
mov rcx, rbx
call rdi
mov r14d, eax
test eax, eax
js 0x14009c3b9
mov eax, dword [rsp + 0xc0]
mov r8d, dword [rsp + 0x54]
cmp eax, r8d
jge 0x14009c3b9
mov r14d, 0x80070057
mov rcx, qword [0x14014dd40]
lea rdx, [0x14014dd40]
cmp rcx, rdx
je 0x14009c3b9
test byte [rcx + 0x1c], r12b
je 0x14009c3b9
cmp byte [rcx + 0x19], r12b
jb 0x14009c3b9
mov edx, 0x117
mov dword [rsp + 0x28], r8d
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0x58]
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.14000aeb4
jmp 0x14009c3b9
or r13, 0xffffffffffffffff
mov r14d, 0x80070057
lea rax, [0x14014dd40]
mov r12d, 2
cmp rbx, rax
je 0x14009c3b9
test byte [rbx + 0x1c], r12b
je 0x14009c3b9
cmp byte [rbx + 0x19], r12b
jb 0x14009c3b9
mov edx, 0x10d
mov r9d, 0x80070057
mov rcx, qword [rbx + 0x10]
lea r8, [0x140126bd8]
call fcn.1400036d4
xor eax, eax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rax
mov ebx, dword [rsp + 0x50]
test r14d, r14d
js 0x14009cb2e
mov eax, dword [rsp + 0x54]
inc eax
add eax, ebx
mov dword [rsp + 0x98], eax
mov ecx, eax
mov eax, DispGetParam
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.1401061b4
mov rcx, rax
mov qword [rsp + 0x88], rax
test rax, rax
jne 0x14009c420
mov r14d, 0x8007000e
jmp 0x14009cb2e
mov eax, dword [rsp + 0x98]
lea r8, [rax + rax*2]
shl r8, 3
xor edx, edx
call sub.msvcrt.dll_memset
mov eax, dword [rsp + 0x98]
dec eax
lea rdx, [rax + rax*2]
mov ecx, reloc.Cabinet.dll_FCIFlushCabinet
mov rax, qword [rsp + 0x88]
mov word [rax + rdx*8], cx
mov ecx, 0x20
call fcn.14010617c
mov rbx, rax
mov qword [rsp + 0x130], rax
test rax, rax
je 0x14009c4bd
lea rax, [0x1401185b0]
mov qword [rbx], rax
lea rcx, [rbx + 8]
mov qword [rcx], r15
lea rdi, [rbx + 0x10]
mov qword [rdi], r15
mov dword [rbx + 0x18], r15d
lock add dword [rbx + 0x18], esi
mov rax, qword [rsp + 0x190]
cmp qword [rcx], rax
je 0x14009c4a3
mov rdx, rax
call fcn.14001bcb0
mov rax, qword [rsp + 0x188]
cmp qword [rdi], rax
je 0x14009c4c0
mov rdx, rax
mov rcx, rdi
call fcn.14001bcb0
jmp 0x14009c4c0
mov rbx, r15
mov eax, dword [rsp + 0x98]
dec eax
lea rdx, [rax + rax*2]
mov rax, qword [rsp + 0x88]
mov qword [rax + rdx*8 + 8], rbx
mov dword [rsp + 0x6c], r15d
cmp dword [rsp + 0xc0], r15d
jle 0x14009cb2a
mov ebx, 8
mov qword [rsp + 0xb8], r15
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0xb0], r15
lea rcx, [rsp + 0xf8]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0xe0]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
movzx eax, bx
mov dword [rsp + 0x64], eax
mov rbx, qword [rsp + 0x118]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x38]
mov rcx, rdi
call qword [fcn.140009050]
lea r8, [rsp + 0xb8]
mov edx, dword [rsp + 0x6c]
mov rcx, rbx
call rdi
mov r14d, eax
test eax, eax
js 0x14009c9fd
mov rbx, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xb8]
cmp rbx, rdi
je 0x14009c5d8
mov rsi, rbx
mov rbx, r15
mov qword [rsp + 0xa0], rbx
test rdi, rdi
je 0x14009c5b6
mov rax, qword [rdi]
mov rbx, qword [rax]
mov rcx, rbx
call qword [fcn.140009050]
lea r8, [rsp + 0xa0]
lea rdx, [0x140126b70]
mov rcx, rdi
call rbx
mov rbx, qword [rsp + 0xa0]
test rsi, rsi
je 0x14009c5d8
mov rax, qword [rsi]
mov rbx, qword [rax + 0x10]
mov rcx, rbx
call qword [fcn.140009050]
mov rcx, rsi
call rbx
mov rbx, qword [rsp + 0xa0]
test rbx, rbx
je 0x14009cb1f
lea rcx, str.dt:dt
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rdi, rax
mov qword [rsp + 0x1c0], rax
test rax, rax
je 0x14009cb14
mov rax, qword [rbx]
mov rsi, qword [rax + 0x160]
mov rcx, rsi
call qword [fcn.140009050]
lea r8, [rsp + 0xf8]
mov rdx, rdi
mov rcx, rbx
call rsi
mov r14d, eax
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test r14d, r14d
js 0x14009cadf
mov edi, 8
cmp di, word [rsp + 0xf8]
jne 0x14009cad4
mov rax, qword [rsp + 0x100]
test rax, rax
je 0x14009cad4
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, [0x140126550]
lea esi, [rdi - 7]
mov edx, esi
lea ebx, [rdi + 0x77]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009c68f
lea eax, [rdi + 0xb]
jmp 0x14009c77a
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.string
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009c6c2
movzx eax, di
jmp 0x14009c77a
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.bin.base64
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
je 0x14009c6ba
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, [0x140126580]
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009c71f
mov eax, 3
jmp 0x14009c77a
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, [0x140126588]
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
je 0x14009c718
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.boolean
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009c77e
mov eax, reloc.WSOCK32.dll_inet_ntoa
mov dword [rsp + 0x64], eax
mov rbx, qword [rsp + 0xa0]
mov rax, qword [rbx]
mov rdi, qword [rax + 0xd0]
mov rcx, rdi
call qword [fcn.140009050]
lea rdx, [rsp + 0xb0]
mov rcx, rbx
call rdi
mov r14d, eax
test eax, eax
js 0x14009ca9f
mov edx, 8
mov word [rsp + 0xe0], dx
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], r15
mov qword [rsp + 0xe8], rcx
mov eax, dword [rsp + 0x64]
cmp ax, dx
je 0x14009c811
xor r9d, r9d
mov word [rsp + 0x20], ax
lea r8d, [rdx + 0x77]
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0xe0]
call qword [sym.imp.OLEAUT32.dll_SafeArrayPtrOfIndex]
mov r14d, eax
test eax, eax
js 0x14009c9c5
jmp 0x14009c8bb
mov edx, 0x26
call qword [sym.imp.msvcrt.dll_wcschr]
test rax, rax
je 0x14009c8bb
mov rdx, qword [rsp + 0xe8]
lea rcx, [rsp + 0x170]
call fcn.140004d1c
nop
lea rcx, [rsp + 0x170]
call fcn.1400eb2d8
mov rcx, qword [rsp + 0xe8]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rsp + 0x170]
mov edx, dword [rcx - 0x10]
call qword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test rax, rax
je 0x14009ca78
mov qword [rsp + 0xe8], rax
mov rcx, qword [rsp + 0x170]
add rcx, 0xffffffffffffffe8
mov qword [rsp + 0x130], rcx
mov eax, r13d
lock xadd dword [rcx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14009c8bb
mov rdi, qword [rcx]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.140009050]
mov rdx, qword [rsp + 0x130]
mov rcx, rdi
call rbx
mov eax, dword [rsp + 0x98]
sub eax, dword [rsp + 0x6c]
sub eax, r12d
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x88]
lea rbx, [rax + rcx*8]
test rbx, rbx
je 0x14009c937
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
test eax, eax
js 0x14009c937
mov eax, DispGetParam
mov r9d, eax
lea r8, [rsp + 0xe0]
mov edx, eax
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_memcpy_s]
test eax, eax
je 0x14009c92e
cmp eax, 0xc
je 0x14009ca94
cmp eax, 0x16
je 0x14009ca89
cmp eax, 0x22
je 0x14009ca89
cmp eax, 0x50
jne 0x14009ca7e
mov word [rsp + 0xe0], r15w
lea rcx, [rsp + 0xe0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0xf8]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rbx, qword [rsp + 0xa0]
test rbx, rbx
je 0x14009c987
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
nop
mov rbx, qword [rsp + 0xb8]
test rbx, rbx
je 0x14009c9a9
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
mov eax, dword [rsp + 0x6c]
add eax, esi
mov dword [rsp + 0x6c], eax
cmp eax, dword [rsp + 0xc0]
jge 0x14009cb2a
jmp 0x14009c4ed
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009c9fd
test byte [rcx + 0x1c], r12b
je 0x14009c9fd
cmp byte [rcx + 0x19], r12b
jb 0x14009c9fd
mov edx, 0x11a
mov r9d, r14d
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.1400036d4
nop
lea rcx, [rsp + 0xe0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
lea rcx, [rsp + 0xf8]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
nop
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rbx, qword [rsp + 0xa0]
test rbx, rbx
je 0x14009ca4d
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
nop
mov rbx, qword [rsp + 0xb8]
test rbx, rbx
je 0x14009cb2a
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
jmp 0x14009cb2a
call fcn.1400050b4
nop
mov ecx, 0x80004005
call fcn.140005300
int3
mov ecx, 0x80070057
call fcn.140005300
int3
mov ecx, 0x8007000e
call fcn.140005300
int3
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009c9fd
test byte [rcx + 0x1c], r12b
je 0x14009c9fd
cmp byte [rcx + 0x19], r12b
jb 0x14009c9fd
mov edx, 0x119
jmp 0x14009c9e9
mov r14d, 0x80070057
jmp 0x14009c9fd
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009c9fd
test byte [rcx + 0x1c], r12b
je 0x14009c9fd
cmp byte [rcx + 0x19], r12b
jb 0x14009c9fd
mov edx, 0x118
jmp 0x14009c9e9
mov ecx, 0x8007000e
call fcn.140005300
int3
mov r14d, 0x80004002
jmp 0x14009c9fd
mov ebx, dword [rsp + 0x50]
mov esi, SafeArrayAccessData
mov qword [rsp + 0x138], r15
mov qword [rsp + 0x230], 0
mov dword [rsp + 0x238], r15d
test r14d, r14d
js 0x14009cdbd
cmp dword [rsp + 0x98], ebx
jl 0x14009cdbd
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.Search
lea ebx, [rsi - 0x12]
mov edx, ebx
lea edi, [rsi + 0x6c]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
je 0x14009cd2a
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.Browse
mov edx, ebx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
je 0x14009cd2a
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.UpdateObject
mov edx, ebx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009cbf8
mov dword [rsp + 0x54], 3
jmp 0x14009cdc3
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.GetSystemUpdateID
mov edx, ebx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009cc42
mov dword [rsp + 0x54], r15d
mov ecx, 0x4013
mov rax, qword [rsp + 0x88]
mov word [rax], cx
lea rcx, [rsp + 0x230]
jmp 0x14009cdaf
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.X_TestBandwidth
mov edx, ebx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009cdc3
mov dword [rsp + 0x54], ebx
mov ecx, 0x4013
mov rax, qword [rsp + 0x88]
mov word [rax], cx
lea rcx, [rsp + 0x230]
mov rax, qword [rsp + 0x88]
mov qword [rax + 8], rcx
mov eax, dword [rsp + 0x98]
cmp eax, r12d
jb 0x14009cd1f
add eax, 0xfffffffe
lea r8, [rax + rax*2]
mov r9, qword [rsp + 0x88]
cmp si, word [r9 + r8*8]
jne 0x14009cd1f
mov eax, dword [r9 + r8*8 + 8]
mov ecx, 0xf4240
cmp eax, ecx
cmova eax, ecx
and eax, 0xfffffffc
mov dword [rsp + 0x230], eax
mov rcx, qword [0x14014dd40]
lea rdx, [0x14014dd40]
cmp rcx, rdx
je 0x14009cdc3
test byte [rcx + 0x1c], r12b
je 0x14009cdc3
cmp byte [rcx + 0x19], 5
jb 0x14009cdc3
mov edx, 0x11b
mov dword [rsp + 0x20], eax
mov r9d, dword [r9 + r8*8 + 8]
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.14000574c
jmp 0x14009cdc3
mov r14d, 0x80004005
jmp 0x14009cdc3
mov dword [rsp + 0x54], 6
mov ecx, 0x4008
mov rax, qword [rsp + 0x88]
mov word [rax + 0x48], cx
lea rcx, [rsp + 0x138]
mov rax, qword [rsp + 0x88]
mov qword [rax + 0x50], rcx
mov ecx, 0x4013
mov rax, qword [rsp + 0x88]
mov word [rax + 0x30], cx
lea rdx, [rsp + 0x230]
mov rax, qword [rsp + 0x88]
mov qword [rax + 0x38], rdx
mov rax, qword [rsp + 0x88]
mov word [rax + 0x18], cx
lea rdx, [rsp + 0x234]
mov rax, qword [rsp + 0x88]
mov qword [rax + 0x20], rdx
mov rax, qword [rsp + 0x88]
mov word [rax], cx
lea rcx, [rsp + 0x238]
mov rax, qword [rsp + 0x88]
mov qword [rax + 8], rcx
jmp 0x14009cdc3
mov r14d, 0x8000ffff
mov rax, qword [0x14014e920]
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call qword [fcn.140009050]
lea rcx, [0x14014e920]
call rbx
lea rsi, [rax + 0x18]
mov qword [rsp + 0x148], rsi
test r14d, r14d
js 0x14009cf1e
cmp dword [rsp + 0x68], r15d
je 0x14009cf1e
lea rcx, [rsp + 0x1d0]
call qword [sym.imp.OLEAUT32.dll_VariantClear]
nop
mov word [rsp + 0x1f0], r15w
xor edx, edx
lea r8d, [rdx + 0x3e]
lea rcx, [rsp + 0x1f2]
call sub.msvcrt.dll_memset
mov rbx, qword [rsp + 0x128]
mov rax, qword [rbx]
mov rdi, qword [rax + 0x30]
mov rcx, rdi
call qword [fcn.140009050]
mov qword [rsp + 0x40], r15
lea rax, [rsp + 0x1f0]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x1d0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0x28], rax
mov eax, 1
mov word [rsp + 0x20], ax
lea r9d, [rax + 0x7e]
lea r8, [0x140127680]
mov edx, dword [rsp + 0xd8]
mov rcx, rbx
call rdi
mov r8d, eax
mov dword [rsp + 0x60], eax
test eax, eax
jns 0x14009cf10
cmp eax, 0x80020009
jne 0x14009ced3
mov r9, qword [rsp + 0x200]
mov r8, qword [rsp + 0x1f8]
lea rdx, str._ls__ls
lea rcx, [rsp + 0x148]
call fcn.14000916c
mov rsi, qword [rsp + 0x148]
mov r8d, dword [rsp + 0x60]
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009cf10
test byte [rcx + 0x1c], r12b
je 0x14009cf10
cmp byte [rcx + 0x19], r12b
jb 0x14009cf10
mov edx, 0x11c
mov qword [rsp + 0x20], rsi
mov r9d, r8d
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.14000ab30
nop
lea rcx, [rsp + 0x1d0]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [rsp + 0x68], r15d
mov dword [rsp + 0x70], r15d
test r14d, r14d
js 0x14009cfc0
mov rbx, qword [rsp + 0xd0]
mov r8, rbx
mov edx, 1
xor ecx, ecx
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov r14d, eax
test eax, eax
js 0x14009cfc0
mov rdi, qword [rbx]
mov rax, qword [rdi]
mov rbx, qword [rax + 0x20]
mov rcx, rbx
call qword [fcn.140009050]
lea r9, [rsp + 0x70]
mov r8d, VarDecFix
lea rdx, str.__xml_version_1.0____SOAP_ENV:Envelope_xmlns:SOAP_ENV_http:__schemas.xmlsoap.org_soap_envelope___SOAP_ENV:encodingStyle_http:__schemas.xmlsoap.org_soap_encoding____SOAP_ENV:Body_
mov rcx, rdi
call rbx
mov r14d, eax
test eax, eax
jns 0x14009cfb8
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009cfb8
test byte [rcx + 0x1c], r12b
je 0x14009cfb8
cmp byte [rcx + 0x19], r12b
jb 0x14009cfb8
mov edx, 0x11d
mov r9d, r14d
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.1400036d4
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x68], eax
mov rax, qword [0x14014e920]
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call qword [fcn.140009050]
lea rcx, [0x14014e920]
call rbx
add rax, 0x18
mov qword [rsp + 0xc8], rax
mov rax, qword [0x14014e920]
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call qword [fcn.140009050]
lea rcx, [0x14014e920]
call rbx
lea rdi, [rax + 0x18]
mov qword [rsp + 0x78], rdi
test r14d, r14d
js 0x14009d61a
lea rcx, [rsp + 0xc8]
cmp dword [rsp + 0x60], r15d
jge 0x14009d047
mov r9, rsi
lea r8, str.xmlns:dt_urn:schemas_microsoft_com:datatypes__dt:dt_string_
lea rdx, str._microsoft:errorDescription_xmlns:microsoft_urn:schemas_microsoft_com:WMPNSS_1_0____ls__ls__microsoft:errorDescription_
call fcn.14006ec80
mov esi, 1
jmp 0x14009d2ed
mov r9, qword [rsp + 0x120]
mov r8, qword [rsp + 0x58]
lea rdx, str._m:_lsResponse_xmlns:m__ls:1__
call fcn.14006ec80
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.Search
mov esi, 1
mov edx, esi
lea ebx, [rsi + 0x7e]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
je 0x14009d1ff
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.Browse
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
je 0x14009d1ff
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.GetSystemUpdateID
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009d102
mov eax, dword [rsp + 0x98]
sub eax, dword [rsp + 0x54]
sub eax, r12d
lea rdx, str._Id__s__u__Id_
jmp 0x14009d2b2
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, r13d
lea r8, str.X_TestBandwidth
mov edx, esi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, r12d
jne 0x14009d2d7
lea rdx, str._TestData_xmlns:dt_urn:schemas_microsoft_com:datatypes__dt:dt_bin.base64__
lea rcx, [rsp + 0x78]
call fcn.1400a3298
mov eax, dword [rsp + 0x98]
sub eax, dword [rsp + 0x54]
sub eax, r12d
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + rcx*8 + 8]
mov edi, dword [rcx]
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax - 0x10]
mov dword [rsp + 0x80], ecx
lea ebx, [rcx + rdi]
lea edx, [rbx + 0x64]
mov r8d, esi
sub r8d, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edx
or ecx, r8d
jge 0x14009d195
lea rcx, [rsp + 0x78]
call fcn.140036870
mov rax, qword [rsp + 0x78]
mov edx, esi
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, ebx
or ecx, edx
jge 0x14009d1b4
mov edx, ebx
lea rcx, [rsp + 0x78]
call fcn.140036870
mov rax, qword [rsp + 0x78]
test ebx, ebx
js 0x14009d1f4
cmp ebx, dword [rax - 0xc]
jg 0x14009d1f4
mov dword [rax - 0x10], ebx
movsxd rcx, ebx
mov byte [rcx + rax], r15b
mov r8, rdi
mov ecx, dword [rsp + 0x80]
add rcx, rax
mov edx, 0x61
call sub.msvcrt.dll_memset
lea rdx, str.__TestData_
lea rcx, [rsp + 0x78]
call fcn.1400a3298
jmp 0x14009d2d7
mov ecx, 0x80070057
call fcn.140005300
int3
lea r8, str.xmlns:dt_urn:schemas_microsoft_com:datatypes__dt:dt_string_
lea rdx, str._Result__ls_
lea rcx, [rsp + 0xc8]
call fcn.14006ec80
lea rdx, str.__Result_
lea rcx, [rsp + 0x78]
call fcn.1400a3298
mov eax, dword [rsp + 0x98]
mov ebx, dword [rsp + 0x54]
sub eax, ebx
sub eax, 3
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + rcx*8 + 8]
mov r9d, dword [rcx]
lea r8, str.xmlns:dt_urn:schemas_microsoft_com:datatypes__dt:dt_ui4_
lea rdx, str._NumberReturned__s__u__NumberReturned_
lea rcx, [rsp + 0x78]
call fcn.1400a24f4
mov eax, dword [rsp + 0x98]
sub eax, ebx
sub eax, 4
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + rcx*8 + 8]
mov r9d, dword [rcx]
lea r8, str.xmlns:dt_urn:schemas_microsoft_com:datatypes__dt:dt_ui4_
lea rdx, str._TotalMatches__s__u__TotalMatches_
lea rcx, [rsp + 0x78]
call fcn.1400a24f4
mov eax, dword [rsp + 0x98]
sub eax, ebx
sub eax, 5
lea rdx, str._UpdateID__s__u__UpdateID_
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + rcx*8 + 8]
mov r9d, dword [rcx]
lea r8, str.xmlns:dt_urn:schemas_microsoft_com:datatypes__dt:dt_ui4_
lea rcx, [rsp + 0x78]
call fcn.1400a24f4
mov r8, qword [rsp + 0x58]
lea rdx, str.__m:_lsResponse_
lea rcx, [rsp + 0x78]
call fcn.1400a24f4
lea rdx, str.__SOAP_ENV:Body___SOAP_ENV:Envelope_
lea rcx, [rsp + 0x78]
call fcn.1400a24f4
mov dword [rsp + 0x60], r15d
mov rcx, qword [rsp + 0x138]
call qword [sym.imp.OLEAUT32.dll_VariantInit]
mov dword [rsp + 0x6c], eax
mov rdx, qword [0x14014e920]
mov rbx, qword [rdx + 0x18]
mov rcx, rbx
call qword [fcn.140009050]
lea rcx, [0x14014e920]
call rbx
lea rbx, [rax + 0x18]
mov qword [rsp + 0x180], rbx
mov ecx, 0x3e8
mov rdi, qword [rsp + 0xc8]
mov r10d, dword [rdi - 0x10]
mov r8d, dword [rsp + 0x60]
mov eax, dword [rsp + 0x6c]
test r10d, r10d
jne 0x14009d366
cmp r8d, eax
jae 0x14009d56b
mov edx, eax
sub edx, r8d
cmp edx, ecx
cmova edx, ecx
mov dword [rsp + 0x80], edx
test edx, edx
je 0x14009d3bc
mov ecx, r8d
mov rax, qword [rsp + 0x138]
lea r8, [rax + rcx*2]
mov dword [rsp + 0x20], r15d
mov r9d, edx
mov edx, r10d
lea rcx, [rsp + 0xc8]
call fcn.1400f0e80
mov r8d, dword [rsp + 0x60]
add r8d, dword [rsp + 0x80]
mov dword [rsp + 0x60], r8d
mov rdi, qword [rsp + 0xc8]
mov eax, dword [rdi - 0x10]
lea edx, [rax*2 + 1]
add edx, eax
mov dword [rsp + 0x80], edx
mov ecx, esi
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edx
or eax, ecx
jge 0x14009d3f9
lea rcx, [rsp + 0x180]
call fcn.140036870
mov rbx, qword [rsp + 0x180]
mov edx, dword [rsp + 0x80]
test edx, edx
js 0x14009d60f
cmp edx, dword [rbx - 0xc]
jg 0x14009d60f
mov dword [rbx - 0x10], edx
movsxd rax, edx
mov byte [rax + rbx], r15b
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rbx
mov r9d, dword [rdi - 0x10]
mov r8, rdi
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
test eax, eax
jne 0x14009d495
cmp dword [rdi - 0x10], r15d
je 0x14009d495
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx r14d, ax
or r14d, 0x80070000
test eax, eax
cmovle r14d, eax
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009d49c
test byte [rcx + 0x1c], r12b
je 0x14009d49c
cmp byte [rcx + 0x19], r12b
jb 0x14009d49c
mov edx, 0x11e
mov r9d, r14d
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.1400036d4
mov rcx, qword [0x14014dd40]
mov dword [rsp + 0x70], r15d
test r14d, r14d
js 0x14009d53a
cmp esi, r13d
jne 0x14009d4bb
mov rsi, r13
inc rsi
cmp byte [rbx + rsi], r15b
jne 0x14009d4b2
test esi, esi
js 0x14009d52f
cmp esi, dword [rbx - 0xc]
jg 0x14009d52f
mov dword [rbx - 0x10], esi
movsxd rax, esi
mov byte [rax + rbx], r15b
mov edi, dword [rbx - 0x10]
mov rax, qword [rsp + 0xd0]
mov r14, qword [rax]
mov rax, qword [r14]
mov rsi, qword [rax + 0x20]
mov rcx, rsi
call qword [fcn.140009050]
lea r9, [rsp + 0x70]
mov r8d, edi
mov rdx, rbx
mov rcx, r14
call rsi
mov r14d, eax
test eax, eax
js 0x14009d526
mov eax, dword [rsp + 0x68]
add eax, dword [rsp + 0x70]
mov dword [rsp + 0x68], eax
lea rcx, [rsp + 0xc8]
call fcn.140004f24
mov esi, 1
jmp 0x14009d33e
mov rcx, qword [0x14014dd40]
jmp 0x14009d53a
mov ecx, 0x80070057
call fcn.140005300
int3
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009d56b
test byte [rcx + 0x1c], r12b
je 0x14009d56b
cmp byte [rcx + 0x19], r12b
jb 0x14009d56b
mov edx, 0x11f
mov r9d, r14d
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.1400036d4
nop
lea rsi, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rsi + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14009d599
mov rdi, qword [rsi]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.140009050]
mov rdx, rsi
mov rcx, rdi
call rbx
mov rdi, qword [rsp + 0x78]
test r14d, r14d
js 0x14009d61a
mov dword [rsp + 0x70], r15d
mov ebx, dword [rdi - 0x10]
mov rax, qword [rsp + 0xd0]
mov r14, qword [rax]
mov rax, qword [r14]
mov rsi, qword [rax + 0x20]
mov rcx, rsi
call qword [fcn.140009050]
lea r9, [rsp + 0x70]
mov r8d, ebx
mov rdx, rdi
mov rcx, r14
call rsi
mov r14d, eax
mov eax, dword [rsp + 0x68]
add eax, dword [rsp + 0x70]
test r14d, r14d
js 0x14009d61a
mov ebx, eax
mov rax, qword [rsp + 0xd0]
mov r14, qword [rax]
mov rax, qword [r14]
mov rsi, qword [rax + 0x30]
mov rcx, rsi
call qword [fcn.140009050]
mov edx, ebx
mov rcx, r14
call rsi
mov r14d, eax
jmp 0x14009d61a
mov ecx, 0x80070057
call fcn.140005300
nop
mov rdx, qword [rsp + 0x88]
test rdx, rdx
je 0x14009d665
mov ebx, r15d
cmp dword [rsp + 0x98], r15d
jbe 0x14009d65c
mov eax, ebx
lea rcx, [rax + rax*2]
lea rcx, [rdx + rcx*8]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
inc ebx
mov rdx, qword [rsp + 0x88]
cmp ebx, dword [rsp + 0x98]
jb 0x14009d634
mov rdi, qword [rsp + 0x78]
mov rcx, rdx
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
mov rcx, qword [0x14014dd40]
lea rax, [0x14014dd40]
cmp rcx, rax
je 0x14009d6bc
test byte [rcx + 0x1c], 1
je 0x14009d6bc
movzx eax, byte [rcx + 0x19]
test r14d, r14d
mov edx, 5
cmovns r12d, edx
cmp eax, r12d
jl 0x14009d6bc
mov edx, 0x120
mov rax, qword [rsp + 0xd0]
mov rax, qword [rax]
mov qword [rsp + 0x20], rax
mov r9d, r14d
lea r8, [0x140126bd8]
mov rcx, qword [rcx + 0x10]
call fcn.14000b2e4
nop
lea rsi, [rdi - 0x18]
mov eax, r13d
lock xadd dword [rsi + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14009d6eb
mov rdi, qword [rsi]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.140009050]
mov rdx, rsi
mov rcx, rdi
call rbx
nop
mov rsi, qword [rsp + 0xc8]
mov eax, r13d
lock xadd dword [rsi - 8], eax
add eax, r13d
test eax, eax
jg 0x14009d720
mov rdi, qword [rsi - 0x18]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.140009050]
lea rdx, [rsi - 0x18]
mov rcx, rdi
call rbx
nop
mov rsi, qword [rsp + 0x148]
mov eax, r13d
lock xadd dword [rsi - 8], eax
add eax, r13d
test eax, eax
jg 0x14009d755
mov rdi, qword [rsi - 0x18]
mov rax, qword [rdi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call qword [fcn.140009050]
lea rdx, [rsi - 0x18]
mov rcx, rdi
call rbx
nop
mov rcx, qword [rsp + 0x138]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rbx, qword [rsp + 0x118]
test rbx, rbx
je 0x14009d787
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
nop
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, qword [rsp + 0x120]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rbx, qword [rsp + 0x160]
test rbx, rbx
je 0x14009d7c5
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
nop
mov rbx, qword [rsp + 0x110]
test rbx, rbx
je 0x14009d7e8
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
nop
mov rbx, qword [rsp + 0x128]
test rbx, rbx
je 0x14009d80a
mov rax, qword [rbx]
mov rdi, qword [rax + 0x10]
mov rcx, rdi
call qword [fcn.140009050]
mov rcx, rbx
call rdi
mov eax, r14d
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.140106ed0
add rsp, 0x250
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret