Function at 0x423850
Capabilities:
Check if file exists
Print debug messages
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x1e18]
mov eax, 0x1e18
call fcn.00465640
push 0xffffffffffffffff
push 0x488b28
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x4bdbb0]
xor eax, ebp
mov dword [ebp + 0x1e14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x1e20]
mov edi, ecx
mov ecx, dword [ebp + 0x1e24]
mov dword [ebp - 0x2c], ecx
push 0x4a24b0
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x30], eax
call fcn.00411f40
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 4], 0
test ecx, ecx
jne 0x42391a
mov eax, dword [edi + 4]
push ecx
sub eax, 0x10
mov dword [ebp - 0x24], esp
mov esi, esp
push eax
call fcn.00411090
add esp, 4
lea edx, [ebp - 0x18]
add eax, 0x10
push edx
mov ecx, edi
mov dword [esi], eax
call fcn.004228e0
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
call fcn.00411910
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x423917
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x14]
mov ebx, eax
test eax, eax
je 0x423949
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x423933
xor eax, eax
jmp 0x423949
lea esi, [eax + eax]
mov eax, esi
call fcn.004644e0
mov eax, esp
push 3
push esi
push ebx
push eax
call fcn.0040f410
push eax
push str.GetAppFileFormExplorer___s
call fcn.00427230
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax - 0xc]
add esp, 8
test ecx, ecx
jne 0x4239a3
mov eax, dword [edi + 4]
push eax
lea ecx, [ebp - 0x18]
push ecx
mov ecx, edi
call fcn.00422dd0
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.00411910
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4239a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x14]
mov ebx, eax
test eax, eax
je 0x4239d2
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x4239bc
xor eax, eax
jmp 0x4239d2
lea esi, [eax + eax]
mov eax, esi
call fcn.004644e0
mov eax, esp
push 3
push esi
push ebx
push eax
call fcn.0040f410
push eax
push str.GetAppFileFormFileExts___s
call fcn.00427230
xor ecx, ecx
push 0x7fe
push ecx
lea edx, [ebp + 2]
push edx
mov word [ebp], cx
call fcn.00463850
mov eax, dword [ebp - 0x14]
add esp, 0x14
cmp dword [eax - 0xc], 0
jne 0x423a1f
mov eax, dword [edi + 0xc]
lea ecx, [ebp]
push ecx
push 0
push eax
call dword [sym.imp.SHELL32.dll_FindExecutableW]
cmp eax, 0x20
jbe 0x423a1f
lea edx, [ebp]
push edx
lea ecx, [ebp - 0x14]
call fcn.00411dd0
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
jne 0x423a52
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x423a4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x42466c
mov eax, dword [edi + 4]
push str..dwg
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x423b28
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
jl 0x423a91
push str.AcLauncher.exe
push eax
call fcn.00466169
add esp, 8
test eax, eax
je 0x423a91
mov ecx, dword [ebp - 0x14]
sub eax, ecx
sar eax, 1
je 0x423b2b
call fcn.00449852
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x423aab
push 0x80004005
call fcn.004108b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x28]
push edx
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.004234f0
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x423aec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [esi - 0xc], 0
je 0x423b08
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x14]
call fcn.00411910
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x423b28
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x14]
mov edi, ecx
test ecx, ecx
jne 0x423b35
xor ebx, ebx
jmp 0x423b60
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x423b48
xor ebx, ebx
jmp 0x423b60
lea esi, [eax + eax]
mov eax, esi
call fcn.004644e0
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.0040f410
mov ebx, eax
mov ecx, dword [ebp - 0x20]
mov edi, dword [ecx + 0xc]
test edi, edi
jne 0x423b6e
xor eax, eax
jmp 0x423b97
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x423b81
xor eax, eax
jmp 0x423b97
lea esi, [eax + eax]
mov eax, esi
call fcn.004644e0
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.0040f410
push ebx
push eax
push 0x491980
call fcn.00427230
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
push eax
call fcn.00411090
add eax, 0x10
add esp, 0x10
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 4
call fcn.004184b0
push 0x48ee7c
lea ecx, [ebp - 0x14]
call fcn.00418400
mov edi, dword [ebp - 0x14]
mov edx, dword [edi - 0xc]
xor eax, eax
push 0x3fe
push eax
lea ecx, [ebp + 0x1006]
push ecx
mov dword [ebp - 0x24], edx
xor esi, esi
mov word [ebp + 0x1004], ax
call fcn.00463850
mov ebx, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
add esp, 0xc
jmp 0x423c05
mov edi, dword [ebp - 0x14]
mov eax, dword [edi - 0xc]
test esi, esi
jl 0x423d1a
cmp esi, eax
jg 0x423d1a
lea edx, [edi + esi*2]
push 0x49197c
push edx
call fcn.00466169
add esp, 8
test eax, eax
je 0x423d1a
mov ecx, dword [ebp - 0x14]
sub eax, ecx
sar eax, 1
js 0x423d1a
lea esi, [eax + 1]
mov eax, dword [ecx - 0xc]
test esi, esi
jl 0x423c6a
cmp esi, eax
jg 0x423c6a
lea eax, [ecx + esi*2]
push 0x49197c
push eax
call fcn.00466169
add esp, 8
test eax, eax
je 0x423c6a
sub eax, dword [ebp - 0x14]
sar eax, 1
mov edi, eax
jmp 0x423c6d
or edi, 0xffffffff
push 0x400
lea ecx, [ebp + 0x1004]
push 0
push ecx
call fcn.00463850
add esp, 0xc
sub edi, esi
push edi
push esi
lea edx, [ebp - 0x18]
push edx
lea ecx, [ebp - 0x14]
call fcn.00413530
mov eax, dword [eax]
push 0x200
lea ecx, [ebp + 0x1004]
push ecx
push eax
call ebx
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x423cc3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 2
push edi
lea ecx, [esi - 1]
push ecx
lea edx, [ebp - 0x34]
push edx
lea ecx, [ebp - 0x14]
call fcn.00413530
mov eax, dword [eax]
lea ecx, [ebp + 0x1004]
push ecx
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00415190
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x423d10
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x423c02
push 0x4a24b0
lea ecx, [ebp - 0x1c]
call fcn.00411f40
push 0x4a24b0
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 6
call fcn.00411f40
mov ecx, dword [ebp - 0x28]
push 0x48dee8
push ecx
mov byte [ebp - 4], 7
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
mov esi, eax
call fcn.00449852
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x423d67
push 0x80004005
call fcn.004108b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x18], ebx
mov byte [ebp - 4], 8
test esi, esi
jne 0x423fae
xor ecx, ecx
push 0x200
push ecx
lea edx, [ebp + 0x1c12]
push edx
mov word [ebp + 0x1c10], cx
call fcn.00463850
mov edi, dword [ebp - 0x20]
mov eax, dword [edi + 0xc]
push 0x100
lea ecx, [ebp + 0x1c10]
push ecx
push esi
push esi
push esi
push esi
push esi
push esi
push eax
call fcn.00465992
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
add esp, 0x30
push str..BMP
lea edx, [ebp + 0x1c10]
push edx
call esi
test eax, eax
je 0x423f11
push str..DIB
lea eax, [ebp + 0x1c10]
push eax
call esi
test eax, eax
je 0x423f11
push str..GIF
lea ecx, [ebp + 0x1c10]
push ecx
call esi
test eax, eax
je 0x423f11
push str..PNG
lea edx, [ebp + 0x1c10]
push edx
call esi
test eax, eax
je 0x423f11
push str..JPE
lea eax, [ebp + 0x1c10]
push eax
call esi
test eax, eax
je 0x423f11
push str..JPG
lea ecx, [ebp + 0x1c10]
push ecx
call esi
test eax, eax
je 0x423f11
push str..JPEG
lea edx, [ebp + 0x1c10]
push edx
call esi
test eax, eax
je 0x423f11
push str..JFIF
lea eax, [ebp + 0x1c10]
push eax
call esi
test eax, eax
je 0x423f11
push str..TIF
lea ecx, [ebp + 0x1c10]
push ecx
call esi
test eax, eax
je 0x423f11
push str..TIFF
lea edx, [ebp + 0x1c10]
push edx
call esi
test eax, eax
je 0x423f11
push str.pCur__NULL__return_false
lea ecx, [ebp - 0x18]
call fcn.00411dd0
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x423ebf
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x423ec3
xor eax, eax
jmp 0x423ed9
lea esi, [eax + eax]
mov eax, esi
call fcn.004644e0
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.0040f410
push eax
call fcn.00427230
add esp, 4
lea ecx, [ebp - 0x18]
call fcn.004111f0
lea ecx, [ebp - 0x10]
call fcn.004111f0
lea ecx, [ebp - 0x1c]
call fcn.004111f0
lea ecx, [ebp - 0x28]
call fcn.004111f0
lea ecx, [ebp - 0x14]
call fcn.004111f0
xor eax, eax
jmp 0x42466c
xor eax, eax
push 0x400
push eax
lea ecx, [ebp + 0x802]
push ecx
mov word [ebp + 0x800], ax
call fcn.00463850
mov eax, dword [edi + 0xc]
add esp, 0xc
push 0x200
lea edx, [ebp + 0x800]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
push str.MSPAINT.EXE
lea ecx, [ebp - 0x1c]
call fcn.00411dd0
push 0x48ee7c
lea ecx, [ebp - 0x10]
call fcn.00411f00
lea eax, [ebp + 0x800]
push eax
lea ecx, [ebp - 0x10]
call fcn.00411f00
push 0x48ee7c
lea ecx, [ebp - 0x10]
call fcn.00411f00
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x30]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push ecx
push edx
call esi
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2c]
push eax
push ecx
call esi
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 7
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4245d0
mov edi, dword [ebp - 0x28]
sub esi, edi
sar esi, 1
lea ecx, [esi + 4]
push ecx
lea edx, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x28]
call fcn.004116c0
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 9
call fcn.00411910
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
mov byte [ebp - 4], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x423ff5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi - 0xc]
add eax, 0xfffffffc
cmp esi, eax
jne 0x42400e
push 0x4a24b0
lea ecx, [ebp - 0x10]
call fcn.00411dd0
jmp 0x424053
mov eax, dword [edi - 0xc]
sub eax, esi
sub eax, 4
push eax
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x28]
call fcn.00411640
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0xa
call fcn.00411910
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
mov byte [ebp - 4], 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x424053
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x1c]
call fcn.004184b0
push 0x48ee7c
lea ecx, [ebp - 0x1c]
call fcn.00418400
push 0x48ee78
lea ecx, [ebp - 0x1c]
call fcn.00418400
lea ecx, [ebp - 0x10]
call fcn.004184b0
push 0x48ee7c
lea ecx, [ebp - 0x10]
call fcn.00418400
push 0x48ee78
lea ecx, [ebp - 0x10]
call fcn.00418400
xor ecx, ecx
push 0x200
push ecx
lea edx, [ebp + 0x1a0e]
push edx
mov word [ebp + 0x1a0c], cx
call fcn.00463850
xor eax, eax
push 0x200
push eax
lea ecx, [ebp + 0x1406]
push ecx
mov word [ebp + 0x1404], ax
call fcn.00463850
mov ecx, dword [ebp - 0x1c]
push 0x100
lea edx, [ebp + 0x1404]
push edx
push 0x100
lea eax, [ebp + 0x1a0c]
push eax
push 0
push 0
push 0
push 0
push ecx
call fcn.00465992
add esp, 0x3c
lea edx, [ebp + 0x1404]
push edx
lea eax, [ebp + 0x1a0c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push str.WINWORD.EXE
lea ecx, [ebp + 0x1a0c]
push ecx
call ebx
test eax, eax
jne 0x424158
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], 0
jl 0x424149
push str._t__n
push eax
call fcn.00466169
add esp, 8
test eax, eax
je 0x424149
mov ecx, dword [ebp - 0x10]
sub eax, ecx
sar eax, 1
jns 0x42415b
push 0x491894
push 0
lea ecx, [ebp - 0x10]
call fcn.00422440
mov ecx, dword [ebp - 0x10]
mov edi, ecx
test ecx, ecx
jne 0x424165
xor eax, eax
jmp 0x42418e
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x424178
xor eax, eax
jmp 0x42418e
lea esi, [eax + eax]
mov eax, esi
call fcn.004644e0
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.0040f410
push eax
push 0x491884
call fcn.00427230
add esp, 8
push str.SLDWORKS.EXE
lea edx, [ebp + 0x1a0c]
push edx
call ebx
test eax, eax
jne 0x4241bb
push 0x4a24b0
lea ecx, [ebp - 0x10]
call fcn.00411dd0
push str.CORELDRW.EXE
lea eax, [ebp + 0x1a0c]
push eax
call ebx
test eax, eax
jne 0x4241da
push 0x4a24b0
lea ecx, [ebp - 0x10]
call fcn.00411dd0
push str.MSPAINT.EXE
lea ecx, [ebp + 0x1a0c]
push ecx
call ebx
test eax, eax
jne 0x4241f9
push str.MSPAINT.EXE
lea ecx, [ebp - 0x1c]
call fcn.00411dd0
push str.KMCAD.EXE
lea edx, [ebp + 0x1a0c]
push edx
call ebx
test eax, eax
jne 0x424218
push str._dde
lea ecx, [ebp - 0x10]
call fcn.00411dd0
push str.REVIT.EXE
lea eax, [ebp + 0x1a0c]
push eax
call ebx
test eax, eax
jne 0x424237
push 0x4a24b0
lea ecx, [ebp - 0x10]
call fcn.00411dd0
xor ecx, ecx
push 0x400
push ecx
lea edx, [ebp + 0x160a]
push edx
mov word [ebp + 0x1608], cx
call fcn.00463850
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + 0xc]
add esp, 0xc
push 0x200
lea ecx, [ebp + 0x1608]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
jne 0x42428a
mov edx, dword [ebp - 0x2c]
push 0x200
push edx
lea eax, [ebp + 0x1608]
push eax
call fcn.00466f72
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x10]
cmp dword [ecx - 0xc], 0
jl 0x424446
push 0x491810
push ecx
call fcn.00466169
mov ecx, dword [ebp - 0x10]
add esp, 8
test eax, eax
je 0x4243a5
sub eax, ecx
sar eax, 1
js 0x4243a5
lea ecx, [ebp - 0x10]
push 0x491810
push ecx
call fcn.00422350
add esp, 8
test al, al
je 0x42435a
lea edx, [ebp + 0x1608]
push edx
lea eax, [ebp - 0x10]
push 0x48d984
push eax
call fcn.004135e0
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov edi, eax
test eax, eax
jne 0x42430d
push eax
push str.szCmdLine___s
call fcn.00427230
add esp, 8
jmp 0x424491
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x424331
xor eax, eax
push eax
push str.szCmdLine___s
call fcn.00427230
add esp, 8
jmp 0x424491
lea esi, [eax + eax]
mov eax, esi
call fcn.004644e0
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.0040f410
push eax
push str.szCmdLine___s
call fcn.00427230
add esp, 8
jmp 0x424491
push 0x4a24b0
lea ecx, [ebp - 0x20]
call fcn.00411f40
lea ecx, [ebp + 0x1608]
push ecx
lea edx, [ebp - 0x20]
push 0x48d984
push edx
mov byte [ebp - 4], 0xb
call fcn.004135e0
mov eax, dword [ebp - 0x20]
add esp, 0xc
push eax
push 0x491810
lea ecx, [ebp - 0x10]
call fcn.00415190
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.004111f0
jmp 0x424491
cmp dword [ecx - 0xc], 0
jl 0x424446
push 0x4917f8
push ecx
call fcn.00466169
add esp, 8
test eax, eax
je 0x424446
sub eax, dword [ebp - 0x10]
sar eax, 1
js 0x424446
lea ecx, [ebp - 0x10]
push 0x4917f8
push ecx
call fcn.00422350
add esp, 8
test al, al
je 0x4243fe
lea edx, [ebp + 0x1608]
push edx
lea eax, [ebp - 0x10]
push 0x48d984
push eax
call fcn.004135e0
add esp, 0xc
jmp 0x424491
push 0x4a24b0
lea ecx, [ebp - 0x20]
call fcn.00411f40
lea ecx, [ebp + 0x1608]
push ecx
lea edx, [ebp - 0x20]
push 0x48d984
push edx
mov byte [ebp - 4], 0xc
call fcn.004135e0
mov eax, dword [ebp - 0x20]
add esp, 0xc
push eax
push 0x4917f8
lea ecx, [ebp - 0x10]
call fcn.00415190
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 8
call fcn.004111f0
jmp 0x424491
lea ecx, [ebp - 0x10]
push 0x4a24b0
push ecx
call fcn.00411160
add esp, 8
test al, al
je 0x424468
push 0x48ee78
lea ecx, [ebp - 0x10]
call fcn.00411f00
push 0x48ee7c
lea ecx, [ebp - 0x10]
call fcn.00411f00
lea edx, [ebp + 0x1608]
push edx
lea ecx, [ebp - 0x10]
call fcn.00411f00
push 0x48ee7c
lea ecx, [ebp - 0x10]
call fcn.00411f00
push str.KQKQP
lea eax, [ebp + 0x1a0c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4244b6
lea ecx, [ebp + 0x1608]
push ecx
lea ecx, [ebp - 0x10]
call fcn.00411dd0
mov edx, dword [ebp - 0x1c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x424524
push 0x3fe
push eax
lea ecx, [ebp + 0xc06]
push ecx
mov word [ebp + 0xc04], ax
call fcn.00463850
mov eax, dword [ebx + 0xc]
add esp, 0xc
lea edx, [ebp + 0xc04]
push edx
push 0
push eax
call dword [sym.imp.SHELL32.dll_FindExecutableW]
lea eax, [ebp + 0xc04]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x424500
sub eax, edx
sar eax, 1
je 0x424696
lea eax, [ebp + 0xc04]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00411dd0
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push str.deal_with_office2013
call esi
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
jl 0x424598
push str.Office15
push eax
call fcn.00466169
add esp, 8
test eax, eax
je 0x424598
mov ecx, dword [ebp - 0x14]
sub eax, ecx
sar eax, 1
cmp eax, 0xffffffff
je 0x424598
cmp dword [ecx - 0xc], 0
jl 0x424598
push 0x491748
push ecx
call fcn.00466169
add esp, 8
test eax, eax
je 0x424598
sub eax, dword [ebp - 0x14]
sar eax, 1
cmp eax, 0xffffffff
je 0x424598
mov ecx, dword [ebp - 0x10]
push ecx
call esi
push 0x4a24b0
push 0x491740
lea ecx, [ebp - 0x10]
call fcn.00415190
mov edx, dword [ebp - 0x10]
push edx
call esi
push str.deal_with_office2013
call esi
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push eax
push ecx
call esi
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
push edx
push eax
call esi
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4245dc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [ebp - 4], 6
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4245ff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [ebp - 4], 4
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x424622
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [ebp - 4], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x424645
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [ebp - 4], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x424667
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
lea esp, [ebp - 0x44]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1e14]
xor ecx, ebp
call fcn.004644d0
add ebp, 0x1e18
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebx + 0xc]
push ecx
push edx
lea eax, [ebp - 0x18]
push str.PathFileExists__false__exePath___0_m_filename:_s_szAppPath:_s
push eax
call fcn.004135e0
mov edi, dword [ebp - 0x18]
add esp, 0x10
test edi, edi
jne 0x423eb0
xor eax, eax
jmp 0x423ed9