Function at 0x1400249d0
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1750]
mov eax, 0x1850
call fcn.14024c240
sub rsp, rax
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0x1888], rbx
mov qword [rsp + 0x1890], rsi
mov qword [rsp + 0x1898], rdi
mov rax, qword [0x140398250]
xor rax, rsp
mov qword [rbp + 0x1740], rax
mov rsi, rcx
call qword [sym.imp.COMCTL32.dll_InitCommonControls]
mov rcx, rsi
call fcn.140107a3c
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x4b0]
call fcn.14024b970
lea r14, vtable.CBaseInfoOSEnv.0
mov qword [rsp + 0x50], r14
mov qword [rbp + 0xd8], 7
xor ebx, ebx
mov qword [rbp + 0xd0], rbx
mov word [rbp + 0xc0], bx
mov qword [rsp + 0x58], rbx
mov dword [rsp + 0x64], ebx
xor r8d, r8d
lea rdx, [0x1402dc4e0]
lea rcx, [rbp + 0xc0]
call fcn.140001f40
nop
lea rax, vtable.CPDLInfoOSEnv.0
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x50]
call fcn.1400b9300
lea rcx, [rbp + 0xf0]
call fcn.1400e57c0
lea r15, vtable.CPDLSetupCmdLineInfo.0
mov qword [rbp + 0xf0], r15
mov rdx, qword [rsi + 0x90]
lea rcx, [rbp + 0xf0]
call fcn.1400e5fd0
mov r12d, eax
test eax, eax
jne 0x140024afd
mov ecx, dword [rbp + 0xf8]
mov dword [rsi + 0x188], ecx
mov ecx, dword [rbp + 0x360]
mov dword [rsi + 0x1e4], ecx
mov rcx, qword [rbp + 0x100]
mov qword [rsi + 0x1d0], rcx
lea rcx, [rsp + 0x50]
call fcn.1400ba2c0
test eax, eax
je 0x140024b89
cmp dword [rsi + 0x188], 1
jne 0x140024b79
mov r13d, ebx
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rdi, rax
test rax, rax
je 0x140024b67
mov r8d, 4
lea rdx, str.SPOOLER
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
test rax, rax
je 0x140024b59
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov r13d, 1
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test r13d, r13d
jne 0x140024b89
mov r12d, 0x8001006a
mov dword [0x1403b95bc], 0x6a
jmp 0x140024b89
mov r12d, 0x80010069
mov dword [0x1403b95bc], 0x69
mov rax, qword [rsi]
mov r9d, 0x104
lea r8, [rbp + 0x1110]
lea rdx, str.setup.ini
mov rcx, rsi
call qword [rax + 0x260]
mov word [rbp + 0x8d0], bx
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x8d2]
call fcn.14024b970
mov rax, qword [rsi]
mov r9d, 0x104
lea r8, [rbp + 0x8d0]
lea rdx, str.MISC
mov rcx, rsi
call qword [rax + 0x260]
lea rcx, [rbp + 0x8d0]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, str.InsDrv.ini
lea rcx, [rbp + 0x8d0]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
test r12d, r12d
jne 0x140024d80
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x2e0]
mov r12d, eax
test eax, eax
jne 0x140024d80
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x2d0]
mov r12d, eax
cmp ax, 0x64
jne 0x140024ca4
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x2d8]
mov edi, eax
test eax, eax
jns 0x140024ca4
lea rax, [rbp + 0x1110]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1530]
lea r8, [0x1402e2d58]
lea rdx, str.CheckiWEMC_DRM
lea rcx, str.ModuleInfo
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdx, [0x1402e2d50]
lea rcx, [rbp + 0x1530]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x140024c9f
mov r12d, edi
jmp 0x140024ca4
mov r12d, ebx
jmp 0x140024cad
test r12d, r12d
jne 0x140024d80
mov word [rbp + 0xae0], bx
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0xae2]
call fcn.14024b970
mov r8d, 0x104
lea rdx, [rbp + 0xae0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov rax, qword [rsi]
mov r9d, 0x104
lea r8, [rbp + 0xae0]
lea rdx, [rbp + 0xae0]
mov rcx, rsi
call qword [rax + 0x2c8]
lea rcx, [rbp + 0xae0]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 0xdc
jl 0x140024d23
mov r12d, 0x80010065
mov dword [0x1403b95bc], 0x65
jmp 0x140024d80
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x278]
test eax, eax
je 0x140024d45
mov r12d, 0x80010008
mov dword [0x1403b95bc], 8
jmp 0x140024d80
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x298]
test eax, eax
jne 0x140024d67
mov r12d, 0x80010035
mov dword [0x1403b95bc], 0x35
jmp 0x140024d80
cmp dword [rbp + 0x110], 0
je 0x140024d80
mov r12d, 0x8001006d
mov dword [0x1403b95bc], 0x6d
or r13, 0xffffffffffffffff
test r12d, r12d
jns 0x140024e9d
mov edi, r12d
lea rcx, [rbp + 0x1110]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x140024e5b
mov word [rbp + 0x6c0], bx
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x6c2]
call fcn.14024b970
lea r11, [rbp + 0x1110]
mov qword [rsp + 0x28], r11
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0xcf0]
lea r8, str.SetupUI
lea rdx, str.ResourceModule
lea rcx, str.ModuleInfo
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov rax, qword [rsi]
mov r9d, 0x104
lea r8, [rbp + 0x6c0]
lea rdx, str.MISC
mov rcx, rsi
call qword [rax + 0x260]
lea rcx, [rbp + 0x6c0]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
mov r9, r13
lea r8, [rbp + 0xcf0]
mov edx, 0x104
lea rcx, [rbp + 0x6c0]
call fcn.140248fc8
mov rax, qword [rsi]
lea rdx, [rbp + 0x6c0]
mov rcx, rsi
call qword [rax + 0x2f8]
test eax, eax
jns 0x140024e7f
mov r12d, eax
jmp 0x140024e7f
mov r12d, 0x8001000c
mov dword [0x1403b95bc], 0xc
lea rdx, str.setup.ini
lea rcx, [rbp + 0x4b0]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp di, 0x69
jne 0x140024e9a
mov r12d, 0x80010069
mov dword [0x1403b95bc], 0x69
jmp 0x140025056
test r12d, r12d
jne 0x140025056
mov rax, qword [rsi]
mov dword [rsp + 0x20], ebx
mov r9d, 0x104
lea r8, [rbp + 0xf00]
lea rdx, str.setup.ini
mov rcx, rsi
call qword [rax + 0x300]
mov r12d, eax
test eax, eax
jns 0x140024ee2
lea rdx, str.setup.ini
lea rcx, [rbp + 0x4b0]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
test r12d, r12d
jne 0x140025056
lea rax, [rbp + 0xf00]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0xcf0]
lea r8, str.SetupUI
lea rdx, str.ResourceModule
lea rcx, str.ModuleInfo
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov rcx, r13
lea rdi, [rbp + 0xf00]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsi + 0x1a0]
lea rdx, [rbp + 0xf00]
call fcn.140001f40
mov rax, qword [rsi]
mov dword [rsp + 0x20], 1
mov r9d, 0x104
lea r8, [rbp + 0x1320]
lea rdx, [rbp + 0xcf0]
mov rcx, rsi
call qword [rax + 0x300]
mov r12d, eax
test eax, eax
jns 0x140024f95
mov r12d, 0x80010060
mov dword [0x1403b95bc], 0x60
lea rdx, [rbp + 0xcf0]
jmp 0x140025049
jne 0x140025056
mov rax, qword [rsi]
lea rdx, [rbp + 0x1320]
mov rcx, rsi
call qword [rax + 0x2f8]
mov r12d, eax
test eax, eax
jne 0x140025056
mov rax, qword [rsi]
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, str.InsCmn.dll
mov rcx, rsi
call qword [rax + 0x300]
mov r12d, eax
test eax, eax
jns 0x140024ffa
mov r12d, 0x8001000c
mov dword [0x1403b95bc], 0xc
lea rdx, str.InsCmn.dll
jmp 0x140025049
jne 0x140025056
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x220]
mov r12d, eax
test eax, eax
jne 0x140025056
mov dword [rsi + 0x1d8], 1
mov rax, qword [rsi]
lea rdx, [rbp + 0xf0]
mov rcx, rsi
call qword [rax + 0x318]
mov rdx, qword [rsi]
mov rcx, rsi
call qword [rdx + 0x230]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
mov r12d, eax
jmp 0x140025106
lea rcx, [rbp + 0x4b0]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp r12w, 0x69
je 0x140025106
mov rax, qword [rsi]
lea r8, [rbp + 0xf0]
mov edx, r12d
mov rcx, rsi
call qword [rax + 0x320]
mov r12d, eax
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x258]
test rax, rax
je 0x140025106
mov word [rbp + 0x430], bx
xor edx, edx
lea r8d, [rdx + 0x7e]
lea rcx, [rbp + 0x432]
call fcn.14024b970
lea rdx, [rbp + 0x8d0]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], 0x40
lea r9, [rbp + 0x430]
lea r8, [0x1402dc4e0]
lea rdx, str.PDL_TYPE
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x238]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x48]
mov rdi, qword [rax]
lea r8, [rbp + 0x430]
lea rdx, str.PDL_TYPE
mov rcx, rax
call qword [rdi + 0x20]
call fcn.140102a14
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x140025125
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x30], rdi
call fcn.140102a14
mov rcx, rax
test rax, rax
setne bl
test ebx, ebx
jne 0x140025154
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
movzx eax, r12w
add eax, 0xfffffffe
cmp eax, 0x6b
ja case.0x14002518c.4
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x256c8]
mov ecx, dword [rdx + rax*4 + 0x25694]
add rcx, rdx
jmp rcx
mov ecx, 1
cmp qword [rsi + 0x198], 0
je 0x1400251c6
call fcn.1401027e8
test rax, rax
je 0x1400251bf
mov r8d, 1
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
mov edx, 0x19
jmp 0x1400251ed
call fcn.1401027e8
test rax, rax
je 0x1400251e8
mov r8d, 1
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
mov edx, 0x9c8
lea r8, [rbp + 0x4b0]
lea rcx, [rsp + 0x30]
call fcn.140028ac0
cmp dword [rsi + 0x188], 0
jne 0x140025222
mov r9d, gethostbyaddr
mov r8, rbx
mov rdx, qword [rsp + 0x30]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
jmp case.0x14002518c.4
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x250]
mov rdi, qword [rax]
mov rdx, qword [rsp + 0x30]
mov rcx, rax
call qword [rdi + 0x160]
jmp case.0x14002518c.4
mov ecx, 1
call fcn.1401027e8
test rax, rax
je 0x14002526b
mov r8d, 1
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
mov ecx, 0x9ca
call fcn.1401027e8
test rax, rax
je 0x1400255b8
mov r8d, 0x9ca
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140005b00
mov rdi, qword [rsp + 0x30]
jmp 0x1400255b8
mov ecx, 1
call fcn.1401027e8
test rax, rax
je 0x1400252c2
mov r8d, 1
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
mov ecx, 0x9cb
call fcn.1401027e8
test rax, rax
je 0x1400255b8
mov r8d, 0x9cb
jmp 0x140025284
mov ecx, 0x9cc
call fcn.1401027e8
test rax, rax
je 0x140025304
mov r8d, 0x9cc
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
mov ecx, 0x9c6
call fcn.1401027e8
test rax, rax
je 0x14002532b
mov r8d, 0x9c6
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140005b00
mov rdi, qword [rsp + 0x30]
cmp dword [rsi + 0x188], 0
jne 0x1400255d7
mov r9d, reloc.WSOCK32.dll_recv
jmp 0x1400255c7
mov ecx, 1
call fcn.1401027e8
test rax, rax
je 0x14002536a
mov r8d, 1
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
mov edx, 0x9cd
lea rcx, [rsp + 0x30]
call fcn.140028ac0
jmp 0x1400251fe
mov ecx, 1
call fcn.1401027e8
test rax, rax
je 0x1400253a5
mov r8d, 1
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
mov ecx, 0xa39
call fcn.1401027e8
test rax, rax
je 0x1400253cc
mov r8d, 0xa39
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140005b00
mov rdi, qword [rsp + 0x30]
cmp dword [rsi + 0x188], 0
jne 0x1400253eb
mov r9d, gethostbyaddr
mov r8, rbx
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x140025418
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x250]
test rax, rax
je 0x140025418
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x250]
mov r8, qword [rax]
mov rdx, rdi
mov rcx, rax
call qword [r8 + 0x160]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x2c0]
jmp case.0x14002518c.4
mov ecx, 1
call fcn.1401027e8
test rax, rax
je 0x140025450
mov r8d, 1
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
mov ecx, 0xa2e
call fcn.1401027e8
test rax, rax
je 0x1400255b8
mov r8d, 0xa2e
jmp 0x140025284
mov ecx, 1
call fcn.1401027e8
test rax, rax
je 0x140025495
mov r8d, 1
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
mov ecx, 0x23
call fcn.1401027e8
test rax, rax
je 0x1400255b8
mov r8d, 0x23
jmp 0x140025284
mov ecx, 0x9cc
call fcn.1401027e8
test rax, rax
je 0x1400254da
mov r8d, 0x9cc
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
mov ecx, 0xa8c
call fcn.1401027e8
test rax, rax
je 0x140025501
mov r8d, 0xa8c
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140005b00
mov rdi, qword [rsp + 0x30]
mov r9d, reloc.WSOCK32.dll_recv
mov r8, rbx
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
jmp case.0x14002518c.4
mov ecx, 0xa8d
call fcn.1401027e8
test rax, rax
je 0x140025541
mov r8d, 0xa8d
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140005b00
mov rdi, qword [rsp + 0x30]
cmp dword [rsi + 0x188], 0
je case.0x14002518c.4
jmp 0x1400255d7
mov ecx, 0xa8f
call fcn.1401027e8
test rax, rax
je 0x140025541
mov r8d, 0xa8f
jmp 0x14002552f
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call fcn.1401027e8
test rax, rax
je 0x140025591
mov r8d, reloc.COMCTL32.dll_InitCommonControls
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140005b00
mov rdi, qword [rsp + 0x30]
mov ecx, 1
call fcn.1401027e8
test rax, rax
je 0x1400255b8
mov r8d, 1
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140005b00
mov rbx, qword [rsp + 0x38]
cmp dword [rsi + 0x188], 0
jne 0x1400255d7
mov r9d, gethostbyaddr
mov r8, rbx
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
jmp case.0x14002518c.4
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x250]
mov r8, qword [rax]
mov rdx, rdi
mov rcx, rax
call qword [r8 + 0x160]
nop
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140025610
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x140025631
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rbp + 0xf0], r15
lea rcx, [rbp + 0xf0]
call fcn.1400e5c40
nop
mov qword [rsp + 0x50], r14
cmp qword [rbp + 0xd8], 8
jb 0x140025660
mov rcx, qword [rbp + 0xc0]
call fcn.1401026ec
xor eax, eax
mov rcx, qword [rbp + 0x1740]
xor rcx, rsp
call fcn.140245660
lea r11, [rsp + 0x1850]
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