Function at 0x404920
Capabilities:
Check if file exists

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x455224
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x310
mov eax, dword [0x48f008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 7
mov word [ebp - 0x84], ax
mov dword [ebp - 4], eax
mov byte [ebp - 0x2d0], al
cmp dword [ebx + 8], eax
jne 0x4049ec
cmp dword [ebx + 0xc], eax
jne 0x4049ec
mov esi, dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_invalid_parameter._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x2c
mov edi, 0x57
jmp 0x405232
lea ecx, [ebp - 0x320]
mov dword [ebp - 0x88], 0
call fcn.00421c20
mov ecx, eax
mov byte [ebp - 4], 1
lea edx, [ebp - 0x88]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0xc]
call eax
test eax, eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x2e4]
sete byte [ebp - 0x2c9]
mov dword [ebp - method.js::dlp::plcmgr_device_control.virtual_0], vtable.js::dlp::plcmgr_device_control.0
mov dword [ebp - method.kn::auto_handle_base_void___struct_kn::system::handle_delete_.virtual_0], vtable.kn::auto_handle_base_void___struct_kn::system::handle_delete_.0
test eax, eax
je 0x404a4e
cmp eax, 0xffffffff
je 0x404a53
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x404a53
cmp eax, 0xffffffff
jne 0x404a5d
mov dword [ebp - 0x2e4], 0
lea ecx, [ebp - 0x320]
mov dword [ebp - method.kn::handle_storage_void__.virtual_0], vtable.kn::handle_storage_void__.0
call fcn.00406a30
cmp byte [ebp - 0x2c9], 0
je 0x404ae5
cmp dword [ebp - 0x88], 3
jne 0x404ae5
mov esi, dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_reboot_required._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x2c
mov edi, 0xbc9
jmp 0x405232
mov esi, dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_preparing.._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x2c
lea ecx, [ebp - 0x84]
call fcn.004250f0
mov edi, eax
test edi, edi
je 0x404bab
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call esi
mov ecx, edi
call fcn.0040bee0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_get_dlp_package_path___failed___hs_._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x30
jmp 0x405232
cmp dword [ebp - 0x70], 8
lea eax, [ebp - 0x84]
jb 0x404bc5
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x404c7b
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404c7b
cmp dword [ebp - 0x70], 8
lea ecx, [ebp - 0x84]
cmovae ecx, dword [ebp - 0x84]
or edx, 0xffffffff
call fcn.004158a0
mov edi, eax
test edi, edi
je 0x404c7b
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call esi
cmp dword [ebp - 0x70], 8
lea esi, [ebp - 0x84]
mov ecx, edi
cmovae esi, dword [ebp - 0x84]
call fcn.0040bee0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_delete_directory_must_success__s__returns___hs_._n
call fcn.00406de0
push eax
call fcn.0040b320
mov esi, dword [sym.imp.KERNEL32.dll_GetLocalTime]
add esp, 0x34
cmp edi, 0xbc2
jne 0x405232
mov byte [ebp - 0x2d0], 1
cmp dword [ebp - 0x70], 8
lea ecx, [ebp - 0x84]
cmovae ecx, dword [ebp - 0x84]
call fcn.00415510
mov edi, eax
xorps xmm0, xmm0
lea eax, [ebp - 0x24]
push eax
movups xmmword [ebp - 0x24], xmm0
call esi
test edi, edi
je 0x404cf5
mov ecx, edi
call fcn.0040bee0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_create_directory_tree___failed___hs_._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x30
jmp 0x405232
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_extracting_package_files.._n
call fcn.00406de0
push eax
call fcn.0040b320
xor eax, eax
mov dword [ebp - 0x5c], 0
add esp, 0x2c
mov dword [ebp - 0x58], 7
mov word [ebp - 0x6c], ax
push str.files.zip.enc
lea edx, [ebp - 0x84]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x6c]
call fcn.00405e40
add esp, 4
test al, al
jne 0x404db6
mov byte [ebp - 4], al
mov edi, 0x7a
mov edx, dword [ebp - 0x58]
cmp edx, 8
jb 0x405232
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404da7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
jmp 0x405232
cmp dword [ebp - 0x58], 8
lea ecx, [ebp - 0x6c]
cmovae ecx, dword [ebp - 0x6c]
sub esp, 8
call fcn.0041cde0
add esp, 8
mov edi, eax
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
movups xmmword [ebp - 0x24], xmm0
push eax
call esi
test edi, edi
je 0x404e76
mov ecx, edi
call fcn.0040bee0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_rsrc_extract_to_file___failed___hs_._n
call fcn.00406de0
push eax
call fcn.0040b320
mov byte [ebp - 4], 0
add esp, 0x30
mov edx, dword [ebp - 0x58]
cmp edx, 8
jb 0x405232
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404e67
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
jmp 0x405232
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_decrypting_files.._n
call fcn.00406de0
push eax
call fcn.0040b320
xor eax, eax
mov dword [ebp - 0x2c], 0
add esp, 0x2c
mov dword [ebp - 0x28], 7
mov word [ebp - 0x3c], ax
push str.files.zip
lea edx, [ebp - 0x84]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x3c]
call fcn.00405e40
add esp, 4
test al, al
jne 0x404f8d
mov byte [ebp - 4], 2
mov edi, 0x7a
mov edx, dword [ebp - 0x28]
cmp edx, 8
jb 0x404f33
mov ecx, dword [ebp - 0x3c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404f29
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
xor eax, eax
mov dword [ebp - 0x2c], 0
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x28], 7
mov word [ebp - 0x3c], ax
cmp edx, 8
jb 0x405232
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404f7e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
jmp 0x405232
cmp dword [ebp - 0x28], 8
lea edx, [ebp - 0x3c]
lea ecx, [ebp - 0x6c]
cmovae edx, dword [ebp - 0x3c]
cmp dword [ebp - 0x58], 8
cmovae ecx, dword [ebp - 0x6c]
push ecx
call fcn.0041d920
mov edi, eax
add esp, 4
test edi, edi
je 0x40504e
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x28]
cmp edx, 8
jb 0x404ff4
mov ecx, dword [ebp - 0x3c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x404fea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
xor eax, eax
mov dword [ebp - 0x2c], 0
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x28], 7
mov word [ebp - 0x3c], ax
cmp edx, 8
jb 0x405232
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40503f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
jmp 0x405232
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_extracting_files.._n
call fcn.00406de0
push eax
call fcn.0040b320
xorps xmm0, xmm0
mov dword [ebp - 0x8c], 0
movq qword [ebp - 0x94], xmm0
xor esi, esi
add esp, 0x2c
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x94], 0x45f58c
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x3c]
mov edx, dword [ebp - 0x28]
cmp edx, 8
jb 0x4050e6
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
jne 0x4050e6
xor eax, eax
lea edi, [esi + 0x57]
jmp 0x405ba8
sub esp, 8
call fcn.0041bd10
mov esi, eax
add esp, 8
mov dword [ebp - 0x90], esi
test esi, esi
je 0x405b9b
cmp esi, 0xffffffff
je 0x405b9b
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
push str.files
lea edx, [ebp - 0x84]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x54]
call fcn.00405e40
add esp, 4
test al, al
jne 0x4053e1
mov byte [ebp - 4], 4
mov edi, 0x7a
mov edx, dword [ebp - 0x40]
cmp edx, 8
jb 0x405183
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405179
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
mov byte [ebp - 4], 8
push esi
call fcn.00406790
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x28]
cmp edx, 8
jb 0x4051df
mov ecx, dword [ebp - 0x3c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4051d5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
xor eax, eax
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 7
mov word [ebp - 0x3c], ax
cmp edx, 8
jb 0x40522c
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405222
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
mov esi, dword [sym.imp.KERNEL32.dll_GetLocalTime]
cmp dword [ebp - 0x74], 0
je 0x4052eb
cmp dword [ebp - 0x70], 8
lea eax, [ebp - 0x84]
jb 0x405256
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x4052eb
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4052eb
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_cleaning_up_the_temp_directory.._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x2c
lea ecx, [ebp - 0x84]
cmp dword [ebp - 0x70], 8
cmovae ecx, dword [ebp - 0x84]
or edx, 0xffffffff
call fcn.004158a0
mov ecx, dword [ebp - 0x2d0]
cmp eax, 0xbc2
movzx ecx, cl
mov edx, 1
cmove ecx, edx
mov dword [ebp - 0x2d0], ecx
test edi, edi
jne 0x405ca7
mov esi, dword [ebx + 0x14]
cmp dword [ebx + 0x10], edi
jne 0x4052ff
test esi, esi
je 0x40537d
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_cleaning_up_the_unusing_modules.._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x2c
push esi
push dword [ebx + 0x10]
call fcn.00429d50
push esi
push dword [ebx + 0x10]
call fcn.004289b0
push esi
push dword [ebx + 0x10]
call fcn.00427630
add esp, 0x18
cmp eax, 0xbc2
je 0x405c4d
cmp byte [ebp - 0x2d0], 0
jne 0x405c4d
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_successfully_installed._n
call fcn.00406de0
push eax
call fcn.0040b320
jmp 0x405ca4
cmp dword [ebp - 0x40], 8
lea edx, [ebp - 0x54]
mov ecx, esi
cmovae edx, dword [ebp - 0x54]
call fcn.00405f00
test al, al
je 0x405b3b
test edx, edx
je 0x405b3b
cmp dword [esi], 1
je 0x40541c
mov dword [0x492144], 0x80000
mov edi, 6
jmp 0x405b40
mov eax, dword [esi + 4]
mov dword [ebp - 0x2d4], eax
lea edi, [eax + 0x244]
mov ecx, edi
sub ecx, edx
nop
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x405430
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405445
mov eax, dword [ebp - 0x2d4]
sub ecx, edx
sar ecx, 1
movzx eax, word [eax + ecx*2 + 0x242]
cmp eax, 0x5c
je 0x405483
cmp eax, 0x2f
je 0x405483
add edi, 0xfffffffe
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x405470
mov eax, dword [0x47a108]
mov dword [edi], eax
xor eax, eax
mov dword [0x492144], 0
cmp dword [esi], 1
mov dword [ebp - 0x2c8], 0
mov word [ebp - 0x2c4], ax
mov dword [ebp - 0x9c], eax
je 0x4054bd
mov dword [0x492144], 0x80000
lea edi, [eax + 6]
jmp 0x405b40
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x2c8]
push eax
push 0xffffffffffffffff
call fcn.0041b000
mov dword [0x492144], eax
test eax, eax
je 0x4054e1
mov edi, 6
jmp 0x405b40
mov eax, dword [ebp - 0x2c8]
xor edi, edi
mov dword [ebp - 0x2d4], eax
test eax, eax
jle 0x405567
nop dword [eax]
nop word [eax + eax]
xor ecx, ecx
mov dword [ebp - 0x2c8], 0
cmp dword [esi], 1
mov word [ebp - 0x2c4], cx
mov dword [ebp - 0x9c], ecx
jne 0x40576e
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x2c8]
push eax
push edi
call fcn.0041b000
mov dword [0x492144], eax
test eax, eax
jne 0x40555c
cmp dword [esi], 1
jne 0x405768
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x2c4]
sub esp, 8
push eax
push edi
call fcn.0041b910
mov dword [0x492144], eax
mov eax, dword [ebp - 0x2d4]
inc edi
cmp edi, eax
jl 0x405500
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_doing_installation.._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x2c
lea ecx, [ebp - 0x54]
cmp dword [ebp - 0x40], 8
cmovae ecx, dword [ebp - 0x54]
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.00426300
mov edi, eax
add esp, 8
test edi, edi
je 0x405643
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
cmp edi, 0xbc2
jne 0x40577d
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_reboot_required_to_complete_install_or_update._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x2c
mov byte [ebp - 0x2d0], 1
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_doing_registration.._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x2c
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.00427e60
add esp, 8
mov edi, eax
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
movups xmmword [ebp - 0x24], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
test edi, edi
je 0x405824
mov ecx, edi
call fcn.0040bee0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_failed_to_registration___hs_._n
call fcn.00406de0
push eax
call fcn.0040b320
mov byte [ebp - 4], 4
add esp, 0x30
mov edx, dword [ebp - 0x40]
cmp edx, 8
jb 0x40574b
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405741
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
mov byte [ebp - 4], 0xb
jmp 0x40519b
mov eax, dword [ebp - 0x2d4]
mov dword [0x492144], 0x80000
jmp 0x405562
mov ecx, edi
call fcn.0040bee0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_failed_to_installation___hs_._n
call fcn.00406de0
push eax
call fcn.0040b320
mov byte [ebp - 4], 4
add esp, 0x30
mov edx, dword [ebp - 0x40]
cmp edx, 8
jb 0x405807
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4057fd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
mov byte [ebp - 4], 0xa
jmp 0x40519b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_starting.._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x2c
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.00429290
mov edi, eax
add esp, 8
test edi, edi
je 0x405938
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov ecx, edi
call fcn.0040bee0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_failed_to_start___hs_._n
call fcn.00406de0
push eax
call fcn.0040b320
mov byte [ebp - 4], 4
add esp, 0x30
mov edx, dword [ebp - 0x40]
cmp edx, 8
jb 0x40591b
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405911
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
mov byte [ebp - 4], 0xc
jmp 0x40519b
lea ecx, [ebp - 0x320]
call fcn.00421c20
mov ecx, eax
mov byte [ebp - 4], 0xd
mov eax, dword [ecx]
push 0
mov eax, dword [eax + 0x3c]
call eax
mov byte [ebp - 4], 7
mov edi, eax
mov ecx, dword [ebp - 0x2e4]
mov dword [ebp - method.js::dlp::plcmgr_device_control.virtual_0], vtable.js::dlp::plcmgr_device_control.0
mov dword [ebp - method.kn::auto_handle_base_void___struct_kn::system::handle_delete_.virtual_0], vtable.kn::auto_handle_base_void___struct_kn::system::handle_delete_.0
test ecx, ecx
je 0x405984
cmp ecx, 0xffffffff
je 0x405989
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x405989
cmp ecx, 0xffffffff
jne 0x405993
mov dword [ebp - 0x2e4], 0
lea ecx, [ebp - 0x320]
mov dword [ebp - method.kn::handle_storage_void__.virtual_0], vtable.kn::handle_storage_void__.0
call fcn.00406a30
test edi, edi
je 0x405a09
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov ecx, edi
call fcn.0040bee0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_plcmgr_device_control__.set_protection_0__failed___hs___continue._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x30
lea ecx, [ebp - 0x320]
call fcn.00421c20
mov ecx, eax
mov byte [ebp - 4], 0xe
mov eax, dword [ecx]
push 0
push 0
push 0xffffffffffffffff
mov eax, dword [eax + 0x58]
call eax
mov byte [ebp - 4], 7
mov edi, eax
mov eax, dword [ebp - 0x2e4]
mov dword [ebp - method.js::dlp::plcmgr_device_control.virtual_0], vtable.js::dlp::plcmgr_device_control.0
mov dword [ebp - method.kn::auto_handle_base_void___struct_kn::system::handle_delete_.virtual_0], vtable.kn::auto_handle_base_void___struct_kn::system::handle_delete_.0
test eax, eax
je 0x405a59
cmp eax, 0xffffffff
je 0x405a5e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x405a5e
cmp eax, 0xffffffff
jne 0x405a68
mov dword [ebp - 0x2e4], 0
lea ecx, [ebp - 0x320]
mov dword [ebp - method.kn::handle_storage_void__.virtual_0], vtable.kn::handle_storage_void__.0
call fcn.00406a30
test edi, edi
je 0x405ae0
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov ecx, edi
call fcn.0040bee0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_plcmgr_device_control__.set_active_policies___failed___hs___continue._n
call fcn.00406de0
push eax
call fcn.0040b320
add esp, 0x30
xor edi, edi
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x40]
cmp edx, 8
jb 0x405b1e
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405b14
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
mov byte [ebp - 4], 0xf
jmp 0x40519b
mov edi, 0x57
mov ecx, dword [ebp - 0x54]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x40]
cmp eax, 8
jb 0x405b7e
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405b74
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
mov byte [ebp - 4], 9
jmp 0x40519b
mov edx, dword [ebp - 0x28]
mov eax, esi
mov ecx, dword [ebp - 0x3c]
mov edi, 0xd
mov byte [ebp - 4], 6
test eax, eax
je 0x405bc1
cmp eax, 0xffffffff
je 0x405bc1
push esi
call fcn.00406790
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x3c]
mov byte [ebp - 4], 2
cmp edx, 8
jb 0x405bf9
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405bef
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
push edx
push ecx
call fcn.0043fc69
add esp, 8
xor eax, eax
mov dword [ebp - 0x2c], 0
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x28], 7
mov word [ebp - 0x3c], ax
cmp edx, 8
jb 0x40522c
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405222
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d00
jmp 0x405222
lea eax, [ebp - 0x24]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x24], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
movzx eax, word [ebp - 0x1a]
push eax
movzx eax, word [ebp - 0x1c]
push eax
movzx eax, word [ebp - 0x1e]
push eax
movzx eax, word [ebp - 0x22]
push eax
movzx eax, word [ebp - 0x24]
push eax
push str.__04d__02d__02d__02d:_02d:_02d._03d____d._d__js::dlp::install_or_update:_successfully_installed__reboot_required_._n
call fcn.00406de0
push eax
call fcn.0040b320
mov edi, 0xbc2
add esp, 0x2c
mov edx, dword [ebp - 0x70]
cmp edx, 8
jb 0x405ce0
mov ecx, dword [ebp - 0x84]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405cd6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405d05
push edx
push ecx
call fcn.0043fc69
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0043fc58
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0044316c
call fcn.0044316c
int3