Function at 0x1800033e0
Capabilities:
Get common file path
Read file on windows

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1690]
mov eax, 0x1790
call fcn.180078390
sub rsp, rax
mov qword [rbp], 0xfffffffffffffffe
mov qword [rsp + 0x17c8], rbx
mov qword [rsp + 0x17d0], rsi
mov qword [rsp + 0x17d8], rdi
mov rax, qword [0x1800c5470]
xor rax, rsp
mov qword [rbp + 0x1680], rax
mov rdi, rcx
xor esi, esi
mov r14d, esi
xor edx, edx
lea r8d, [rsi + 0x4c]
lea rcx, [rbp + 0x10]
call sub.msvcrt.dll_memset
mov ebx, 0x208
mov r8d, ebx
xor edx, edx
lea rcx, [rbp + 0xe50]
call sub.msvcrt.dll_memset
mov r8d, ebx
xor edx, edx
lea rcx, [rbp + 0xa30]
call sub.msvcrt.dll_memset
mov r8d, ebx
xor edx, edx
lea rcx, [rbp + 0xc40]
call sub.msvcrt.dll_memset
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x70], rsi
mov r12d, esi
mov qword [rsp + 0x48], rsi
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], rsi
xor ebx, ebx
mov qword [rbp - 0x28], rbx
lea r13, [rdi + 0x70]
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
lea esi, [rbx + 1]
mov r8d, esi
mov edx, 0x80000000
mov rcx, qword [r13]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
or rax, 0xffffffffffffffff
cmp r15, rax
je 0x18000418d
lea rdx, [rbp + 0x80]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
lea eax, [rbx + 8]
mov dword [rdi + 8], eax
mov ecx, dword [rbp + 0x80]
cmp ecx, 0xffffffff
je 0x180003517
test cl, 6
je 0x18000350c
lea eax, [rbx + 9]
mov dword [rdi + 8], eax
test sil, cl
je 0x180003517
or eax, 4
mov dword [rdi + 8], eax
mov rax, qword [rbp + 0x8c]
mov qword [rdi + 0x78], rax
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 0x3c]
mov r8d, 0x4c
lea rdx, [rbp + 0x10]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18000418d
cmp dword [rbp - 0x3c], 0x4c
jne 0x18000418d
cmp dword [rbp + 0x10], 0x4c
jne 0x1800037db
mov rax, qword [rbp + 0x14]
cmp rax, qword [0x180086c50]
jne 0x1800037db
mov rax, qword [rbp + 0x1c]
cmp rax, qword [0x180086c58]
jne 0x1800037db
movzx eax, word [rbp + 0x50]
mov word [rdi + 0x88], ax
mov rax, qword [rbp + 0x34]
cmp dword [rbp + 0x38], ebx
jne 0x180003594
test eax, eax
je 0x180003598
mov qword [rdi + 0x78], rax
test dword [rbp + 0x24], 0x1000
je 0x1800035a4
mov dword [rdi + 0x50], esi
test byte [rbp + 0x24], sil
je 0x1800036c0
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 0x38]
mov r8d, 2
lea rdx, [rsp + 0x50]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18000418d
cmp dword [rbp - 0x38], 2
jne 0x18000418d
movzx ecx, word [rsp + 0x50]
call qword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov rbx, rax
xor r8d, r8d
mov rcx, r15
test rax, rax
je 0x1800036a7
movzx esi, word [rsp + 0x50]
mov qword [rsp + 0x20], r8
lea r9, [rbp - 0x70]
mov r8d, esi
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor r10d, r10d
test eax, eax
je 0x18000418d
cmp dword [rbp - 0x70], esi
jne 0x18000418d
mov edx, r10d
mov r8, rbx
movzx r9d, word [rsp + 0x50]
movzx ecx, word [rbx]
cmp ecx, r9d
ja 0x18000365a
test cx, cx
je 0x180003672
movzx eax, cx
add edx, eax
movzx eax, cx
add r8, rax
movzx eax, word [r8]
movzx ecx, ax
add eax, edx
cmp eax, r9d
jle 0x18000363c
mov rcx, rbx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov dword [rdi + 0x84], 1
jmp 0x18000418d
mov qword [rdi + 0x28], rbx
mov dword [rbp + 0x1d0], VarUI4FromDisp
lea rcx, [rbp + 0x1d0]
call fcn.18000a028
cmp dword [rbp + 0x1d4], 0xa
jb 0x18000369d
mov rcx, rdi
call fcn.180004540
mov esi, 1
mov r14d, esi
jmp 0x1800036be
movzx edx, word [rsp + 0x50]
mov r9d, esi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x18000418d
xor ebx, ebx
test byte [rbp + 0x24], 2
je 0x180003720
mov qword [rsp + 0x20], rbx
lea r9, [rbp - 0x40]
mov r8d, 0x1c
lea rdx, [rbp + 0x60]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18000418d
cmp dword [rbp - 0x40], 0x1c
jne 0x18000418d
mov edx, dword [rbp + 0x60]
lea eax, [rdx - 0x1c]
cmp eax, 0xffe4
ja 0x1800037db
add edx, 0xffffffe4
mov r9d, esi
xor r8d, r8d
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x18000418d
lea r12, [0x18008ad80]
mov ebx, dword [rbp + 0x24]
test dword [r12], ebx
je 0x180003d1b
shr ebx, 7
and ebx, esi
xor esi, esi
mov qword [rsp + 0x20], rsi
lea r9, [rbp - 0x6c]
lea r8d, [rsi + 2]
lea rdx, [rsp + 0x40]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180004188
lea edx, [rsi + 2]
cmp dword [rbp - 0x6c], edx
jne 0x180004188
mov ecx, 0x8000
movzx eax, word [rsp + 0x40]
cmp ax, cx
ja 0x180003da2
cmp dword [r12], 4
je 0x180003c65
cmp dword [r12], 8
je 0x180003a74
cmp dword [r12], 0x10
je 0x1800039dc
cmp dword [r12], 0x20
je 0x1800038d9
cmp dword [r12], 0x40
je 0x1800037e6
lea edx, [rbx + 1]
movzx eax, ax
imul edx, eax
mov esi, 1
mov r9d, esi
xor r8d, r8d
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x180004188
jmp 0x180003d1b
mov dword [rdi + 0x84], esi
jmp 0x18000418d
movzx ecx, ax
inc ecx
mov rax, rdx
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov rcx, rax
mov qword [rbp - 0x80], rax
movzx eax, word [rsp + 0x40]
mov word [rcx + rax*2], si
lea esi, [rbx + 1]
movzx eax, word [rsp + 0x40]
imul esi, eax
xor r8d, r8d
mov qword [rsp + 0x20], r8
lea r9, [rbp - 0x68]
mov r8d, esi
mov rdx, rcx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor ecx, ecx
test eax, eax
je 0x180004188
cmp dword [rbp - 0x68], esi
jne 0x180004188
mov rsi, qword [rbp - 0x80]
test ebx, ebx
lea rbx, [rdi + 0x38]
je 0x180003880
test rsi, rsi
jne 0x180003863
mov eax, ecx
jmp 0x180003870
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], cx
jne 0x180003867
mov r8d, eax
mov rdx, rsi
mov rcx, rbx
call fcn.180005498
jmp 0x180003893
movzx eax, word [rsp + 0x40]
mov byte [rax + rsi], cl
mov rdx, rsi
mov rcx, rbx
call fcn.180005188
mov rdx, qword [rbx]
lea rcx, [rbp - 0x20]
call fcn.180001c90
nop
mov rdx, rax
mov rcx, rbx
call fcn.18000525c
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
or rbx, 0xffffffffffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1800038ce
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, dword [rbp + 0x48]
mov dword [rdi + 0x54], eax
jmp 0x180003cff
movzx ecx, ax
inc ecx
mov rax, rdx
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov rcx, rax
mov qword [rsp + 0x78], rax
movzx eax, word [rsp + 0x40]
mov word [rcx + rax*2], si
lea esi, [rbx + 1]
movzx eax, word [rsp + 0x40]
imul esi, eax
xor r8d, r8d
mov qword [rsp + 0x20], r8
lea r9, [rbp - 0x64]
mov r8d, esi
mov rdx, rcx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor ecx, ecx
test eax, eax
je 0x180004188
cmp dword [rbp - 0x64], esi
jne 0x180004188
mov rsi, qword [rsp + 0x78]
test ebx, ebx
lea rbx, [rdi + 0x30]
je 0x180003975
test rsi, rsi
jne 0x180003958
mov eax, ecx
jmp 0x180003965
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], cx
jne 0x18000395c
mov r8d, eax
mov rdx, rsi
mov rcx, rbx
call fcn.180005498
jmp 0x180003988
movzx eax, word [rsp + 0x40]
mov byte [rax + rsi], cl
mov rdx, rsi
mov rcx, rbx
call fcn.180005188
mov rcx, rbx
call fcn.180004b34
mov rcx, rbx
call fcn.180004c44
mov rdx, qword [rbx]
lea rcx, [rbp - 0x18]
call fcn.180001c90
nop
mov rdx, rax
mov rcx, rbx
call fcn.18000525c
nop
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
or rbx, 0xffffffffffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x180003cff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x180003cff
movzx ecx, ax
inc ecx
mov rax, rdx
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov rcx, rax
mov qword [rsp + 0x70], rax
movzx eax, word [rsp + 0x40]
mov word [rcx + rax*2], si
lea esi, [rbx + 1]
movzx eax, word [rsp + 0x40]
imul esi, eax
xor r8d, r8d
mov qword [rsp + 0x20], r8
lea r9, [rbp - 0x60]
mov r8d, esi
mov rdx, rcx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor edx, edx
test eax, eax
je 0x180004188
cmp dword [rbp - 0x60], esi
jne 0x180004188
lea rcx, [rdi + 0x68]
mov rsi, qword [rsp + 0x70]
test ebx, ebx
je 0x180003d06
or rbx, 0xffffffffffffffff
test rsi, rsi
je 0x180003ce4
mov rax, rbx
inc rax
cmp word [rsi + rax*2], dx
jne 0x180003a66
jmp 0x180003cf4
movzx ecx, ax
add ecx, 0x105
mov rax, rdx
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov rcx, rax
mov qword [rbp - 0x78], rax
lea esi, [rbx + 1]
movzx eax, word [rsp + 0x40]
imul esi, eax
xor r8d, r8d
mov qword [rsp + 0x20], r8
lea r9, [rbp - 0x5c]
mov r8d, esi
mov rdx, rcx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor ecx, ecx
test eax, eax
je 0x180004188
cmp dword [rbp - 0x5c], esi
jne 0x180004188
lea rsi, [rdi + 0x18]
mov rax, qword [rsi]
cmp dword [rax - 0x10], ecx
jne 0x180003c5c
movzx eax, word [rsp + 0x40]
test ebx, ebx
mov rbx, qword [rbp - 0x78]
je 0x180003b67
mov word [rbx + rax*2], cx
mov r9d, 0x103
mov r8, qword [r13]
lea edx, [r9 + 1]
lea rcx, [rbp + 0x600]
call fcn.180070500
xor r8d, r8d
mov word [rbp + 0x806], r8w
lea rcx, [rbp + 0x600]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov r8, rbx
lea rdx, [rbp + 0x600]
lea rcx, [rbp + 0x1060]
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
mov rdx, rax
xor ecx, ecx
or rbx, 0xffffffffffffffff
test rax, rax
je 0x180003cff
mov rax, rbx
inc rax
cmp word [rdx + rax*2], cx
jne 0x180003b56
mov rcx, rsi
jmp 0x180003cf7
mov byte [rax + rbx], cl
mov rdx, r13
lea rcx, [rsp + 0x58]
call fcn.1800053f4
nop
mov rcx, qword [rsp + 0x58]
cmp dword [rcx - 8], 1
jle 0x180003b95
mov edx, dword [rcx - 0x10]
lea rcx, [rsp + 0x58]
call fcn.180005644
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov rcx, qword [rsp + 0x58]
movsxd rdx, dword [rcx - 0xc]
call fcn.180070ba0
mov rcx, rax
xor r8d, r8d
test eax, eax
js 0x18000425b
mov rax, qword [rsp + 0x58]
cmp ecx, dword [rax - 0xc]
jg 0x18000425b
mov dword [rax - 0x10], ecx
movsxd rcx, ecx
mov rax, qword [rsp + 0x58]
mov word [rax + rcx*2], r8w
lea rax, [rbp + 0xc8]
mov qword [rbp + 0xc0], rax
mov r8d, dword [0x1800c5554]
mov rdx, rbx
lea rcx, [rbp + 0xc0]
call fcn.18000593c
nop
mov r8, qword [rbp + 0xc0]
mov rdx, qword [rsp + 0x58]
lea rcx, [rbp + 0x1270]
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
mov rbx, rax
lea rax, [rbp + 0xc8]
mov rcx, qword [rbp + 0xc0]
cmp rcx, rax
je 0x180003c2f
call qword [sym.imp.msvcrt.dll_free]
xor ecx, ecx
test rbx, rbx
je 0x180003c52
or rax, 0xffffffffffffffff
inc rax
cmp word [rbx + rax*2], cx
jne 0x180003c3a
mov r8d, eax
mov rdx, rbx
mov rcx, rsi
call fcn.180005498
nop
mov rdx, qword [rsp + 0x58]
jmp 0x1800039b5
or rbx, 0xffffffffffffffff
jmp 0x180003cff
movzx ecx, ax
inc ecx
mov rax, rdx
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov rcx, rax
mov qword [rsp + 0x48], rax
movzx eax, word [rsp + 0x40]
mov word [rcx + rax*2], si
lea esi, [rbx + 1]
movzx eax, word [rsp + 0x40]
imul esi, eax
xor r8d, r8d
mov qword [rsp + 0x20], r8
lea r9, [rbp - 0x58]
mov r8d, esi
mov rdx, rcx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor edx, edx
test eax, eax
je 0x180004188
cmp dword [rbp - 0x58], esi
jne 0x180004188
lea rcx, [rdi + 0x58]
mov rsi, qword [rsp + 0x48]
test ebx, ebx
je 0x180003d06
or rbx, 0xffffffffffffffff
test rsi, rsi
jne 0x180003ce8
mov eax, edx
jmp 0x180003cf4
mov rax, rbx
inc rax
cmp word [rsi + rax*2], dx
jne 0x180003ceb
mov rdx, rsi
mov r8d, eax
call fcn.180005498
mov esi, 1
jmp 0x180003d1f
movzx eax, word [rsp + 0x40]
mov byte [rax + rsi], dl
mov rdx, rsi
call fcn.180005188
mov esi, 1
or rbx, 0xffffffffffffffff
add r12, 4
lea rax, [0x18008ad94]
cmp r12, rax
jl 0x180003727
mov r12d, 0x30c
mov r13d, 0x3a
xor r14d, r14d
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x54]
mov r8d, 8
lea rdx, [rsp + 0x68]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180003d9a
cmp dword [rbp - 0x54], 8
jne 0x180003d9a
mov ecx, dword [rsp + 0x6c]
mov rax, qword [rsp + 0x68]
cmp ecx, 0xa0000005
jne 0x180003def
mov rcx, r15
cmp eax, 0x10
je 0x180003db1
lea edx, [rax - 8]
mov r9d, esi
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x180004171
mov r14d, esi
jmp 0x180004188
mov dword [rdi + 0x84], 1
jmp 0x180004188
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x50]
mov r8d, 8
lea rdx, [rbp - 0x10]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180003d9a
cmp dword [rbp - 0x50], 8
jne 0x180003d9a
cmp qword [rdi + 0x28], r14
je 0x180004171
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.180004288
jmp 0x180004171
cmp eax, 0x314
je 0x180003dfb
mov rcx, r15
jmp 0x180003d82
cmp ecx, 0xa0000007
jne 0x180003e62
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x4c]
mov r8d, r12d
lea rdx, [rbp + 0x2f0]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180003d9a
cmp dword [rbp - 0x4c], r12d
jne 0x180003d9a
test dword [rbp + 0x24], 0x4000
je 0x180004171
lea rdx, [rbp + 0x3f4]
lea rcx, [rbp - 8]
call fcn.180001c90
nop
lea rcx, [rdi + 0x40]
mov rdx, rax
call fcn.18000525c
nop
mov rdx, qword [rbp - 8]
jmp 0x180003edb
cmp ecx, 0xa0000001
jne 0x180003ee4
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x48]
mov r8d, r12d
lea rdx, [rbp + 0x2f0]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180003d9a
cmp dword [rbp - 0x48], r12d
jne 0x180003d9a
test dword [rbp + 0x24], 0x200
je 0x180004171
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x180003eb8
call qword [sym.imp.SHELL32.dll_ILFree]
mov qword [rdi + 0x28], r14
lea rdx, [rbp + 0x3f4]
lea rcx, [rbp - 0x30]
call fcn.180001c90
nop
lea rcx, [rdi + 0x48]
lea rdx, [rbp - 0x30]
call fcn.18000525c
nop
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
jmp 0x18000414d
cmp ecx, 0xa0000006
mov rcx, r15
jne 0x180004165
mov dword [rdi + 0x8c], esi
mov qword [rsp + 0x20], r14
lea r9, [rbp - 0x44]
mov r8d, r12d
lea rdx, [rbp + 0x2f0]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x180003d9a
cmp dword [rbp - 0x44], r12d
jne 0x180003d9a
xor edx, edx
mov r8d, 0x21c
lea rcx, [rbp + 0x810]
call sub.msvcrt.dll_memset
mov edx, 0x104
lea rcx, [rbp + 0x810]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea r8, str.msi.dll
mov edx, 0x10e
lea rcx, [rbp + 0x810]
call fcn.1800703c0
mov ebx, r14d
call fcn.180001924
test eax, eax
je 0x180003f9c
cmp dword [0x180168c28], r14d
je 0x180003f9a
mov rax, qword [0x180168c38]
test rax, rax
je 0x180003f9a
mov rcx, qword [0x180168c20]
call rax
mov ecx, r14d
test eax, eax
sete cl
mov dword [0x180168c28], ecx
mov ebx, esi
lea rcx, [rbp + 0x810]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
mov qword [rbp - 0x28], rax
test ebx, ebx
je 0x180003fd8
cmp dword [0x180168c28], r14d
jne 0x180003fd8
mov rax, qword [0x180168c30]
test rax, rax
je 0x180003fd8
lea rcx, [0x180168c20]
call rax
mov dword [0x180168c28], eax
test rsi, rsi
je 0x180004182
lea rdx, str.MsiDecomposeDescriptorW
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
je 0x180004182
mov qword [rsp + 0x20], r14
lea r9, [rbp + 0xa30]
lea r8, [rbp + 0xc40]
lea rdx, [rbp + 0xe50]
lea rcx, [rbp + 0x3f4]
call rbx
test eax, eax
jne 0x18000416d
call fcn.18000a7ac
mov rcx, rax
test rax, rax
je 0x180004250
mov rax, qword [rax]
call qword [rax + ILCombine]
add rax, 0x18
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0xa30]
lea r8, [rbp + 0xc40]
lea rdx, [rbp + 0xe50]
mov rcx, rbx
call fcn.180002610
mov rbx, qword [rsp + 0x60]
test eax, eax
je 0x180004145
mov eax, dword [rbx - 0x10]
test eax, eax
je 0x180004145
cmp eax, 3
jl 0x1800040a0
cmp eax, 2
jl 0x180004266
cmp word [rbx + 4], r13w
je 0x180004145
lea edx, [rax + 1]
test edx, edx
js 0x18000427c
mov esi, 1
mov ecx, esi
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edx
or eax, ecx
jge 0x1800040cd
lea rcx, [rsp + 0x60]
call fcn.180005a38
mov rbx, qword [rsp + 0x60]
cmp word [rbx + 2], 0x3f
jne 0x1800040d9
mov word [rbx + 2], r13w
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.180070ba0
test eax, eax
js 0x180004271
cmp eax, dword [rbx - 0xc]
jg 0x180004271
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r14w
cmp dword [rbx - 0x10], 3
jle 0x180004124
cmp word [rbx + 6], 0x3f
jne 0x180004124
mov r8d, esi
mov edx, 3
lea rcx, [rsp + 0x60]
call fcn.18000507c
mov rbx, qword [rsp + 0x60]
lea rcx, [rdi + 0x18]
lea rdx, [rsp + 0x60]
call fcn.18000525c
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x180004145
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rdi + 0x28], r14
lea rdx, [rbx - 0x18]
or rbx, 0xffffffffffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x180004171
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x180004171
mov edx, r12d
jmp 0x180003d85
or rbx, 0xffffffffffffffff
cmp dword [rsp + 0x68], 8
jbe 0x180004182
mov esi, 1
jmp 0x180003d42
mov r14d, 1
mov r12, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rax, qword [rbp - 0x28]
test rax, rax
je 0x1800041a7
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
or rax, 0xffffffffffffffff
cmp r15, rax
je 0x1800041b9
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x1800041cc
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x1800041df
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
test r12, r12
je 0x1800041ed
mov rcx, r12
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x1800041ff
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
mov rax, qword [rbp - 0x78]
test rax, rax
je 0x180004211
mov rcx, rax
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void____ptr64_]
test ebx, ebx
je 0x18000421d
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, r14d
mov rcx, qword [rbp + 0x1680]
xor rcx, rsp
call fcn.1800782d0
lea r11, [rsp + 0x1790]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004005
call fcn.18000a540
nop
mov ecx, 0x80070057
call fcn.18000a540
nop
mov ecx, 0x80070057
call fcn.18000a540
int3
mov ecx, 0x80070057
call fcn.18000a540
int3
mov ecx, 0x80070057
call fcn.18000a540
int3