Function at 0x417f40
Capabilities:
Check if file exists
Check mutex on windows
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x9f8
mov eax, dword [0x6ce488]
xor eax, esp
mov dword [esp + 0x9f4], eax
mov eax, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [esp + 0x17c], eax
lea eax, [esp + 0x1dc]
push esi
mov esi, dword [ebp + 8]
mov ecx, eax
push edi
mov dword [esp + 0x18c], esi
mov dword [esp + 0xc], 0
movlpd qword [esp + 0x1e4], xmm0
movlpd qword [esp + 0x1ec], xmm0
mov dword [esp + 0x1f4], 0
mov dword [esp + method.CShareRestrictedSD.virtual_0], vtable.CShareRestrictedSD.0
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1d8], 0xc
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], 0
call fcn.00497040
mov dword [esp + 0x1d4], eax
test eax, eax
jne 0x417fef
push str.BuildRestrictedSD___failed_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str.GlobalF41C369A_009C_4C9B_842C_64CE553B2444
lea ecx, [esp + 0x64]
call fcn.004196c0
lea ecx, [esp + 0x194]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx]
call eax
cmp dword [eax + 0x14], 8
jb 0x418015
mov eax, dword [eax]
xor edx, edx
lea ecx, [esp + 0x1d8]
cmp dword [esp + 0x1d4], edx
push eax
cmove ecx, edx
push 1
push ecx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
lea ecx, [esp + 0x194]
mov dword [0x6d9214], eax
call fcn.00402f20
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x6d9214]
test eax, eax
jne 0x4180d9
call fcn.004021b0
mov ecx, eax
test ecx, ecx
je 0x41938b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
push ecx
lea ecx, [esp + 0x64]
mov dword [esp + 0x190], eax
call fcn.00419740
lea ecx, [esp + 0x194]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx]
call eax
cmp dword [eax + 0x14], 8
jb 0x41809a
mov eax, dword [eax]
push edi
push eax
lea eax, [esp + 0x194]
push eax
call fcn.00402970
add esp, 0xc
lea ecx, [esp + 0x194]
call fcn.00402f20
mov esi, dword [esp + 0x18c]
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jmp 0x418ad8
cmp edi, 0xb7
jne 0x41819e
push 0xbb8
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x418101
cmp eax, 0xffffffff
jne 0x41819e
push dword [0x6d9214]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.004021b0
mov ecx, eax
test ecx, ecx
je 0x41938b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x60], vtable.estrimp_wchar_t__46_.0
push 0x5c
mov dword [esp + 0x190], eax
lea eax, [esp + 0x68]
push 0
push eax
call fcn.005feb40
mov eax, 0x1e451a06
add esp, 0xc
mov dword [esp + 0xc0], eax
xor edx, edx
mov ecx, edx
and ecx, 3
sar eax, cl
xor ax, word [edx + str.Mutex_already_exist:_d]
mov word [esp + edx + 0x64], ax
add edx, 2
cmp edx, 0x2e
jae 0x418178
mov eax, dword [esp + 0xc0]
jmp 0x418154
lea eax, [esp + 0x194]
push eax
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x64]
mov eax, dword [eax]
call eax
cmp dword [eax + 0x14], 8
jb 0x418194
mov eax, dword [eax]
push 0xb7
jmp 0x41809b
cmp dword [0x6d924c], 0
mov dword [0x6d9228], esi
jne 0x4182c5
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push str.USER32.DLL
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.UpdateLayeredWindow
push eax
call edi
mov dword [0x6d924c], eax
test eax, eax
je 0x4182c5
push str.dwmapi.dll
call esi
mov esi, eax
test esi, esi
je 0x418200
push str.DwmIsCompositionEnabled
push esi
call edi
push str.DwmSetWindowAttribute
push esi
mov dword [0x6d9248], eax
call edi
mov dword [0x6d9244], eax
mov ecx, dword [esp + 0x18c]
xorps xmm0, xmm0
mov eax, dword [sym.imp.USER32.dll_DefWindowProcW]
push 0x7f00
push 0
mov dword [0x6cf17c], ecx
movlpd qword [esp + 0x144], xmm0
movlpd qword [esp + 0x14c], xmm0
mov dword [esp + 0x154], 0
mov dword [esp + 0x128], 0x30
mov dword [esp + 0x12c], 3
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], 0
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [esp + 0x13c], eax
lea eax, [esp + 0x120]
push eax
mov dword [esp + 0x144], 6
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0x6a5e9c
mov dword [esp + 0x150], 0
call dword [sym.imp.USER32.dll_RegisterClassExW]
lea ecx, [esp + 0x60]
call fcn.00422d50
mov ecx, dword [eax]
call fcn.00422e80
mov eax, dword [esp + 0x60]
lea ecx, [esp + 0x64]
cmp eax, ecx
je 0x4182ea
push eax
call fcn.006140b6
add esp, 4
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [esp + 0x10], 1
mov dword [esp + 0x190], 0
call fcn.004021b0
mov ecx, eax
test ecx, ecx
je 0x41938b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov eax, dword [esp + 0x184]
mov dword [esp + 0x188], esi
mov dword [esp + 0x180], esi
test eax, eax
je 0x4186d0
push eax
lea ecx, [esp + 0x188]
mov dword [esp + 0x188], 0
call fcn.004178d0
mov eax, dword [esp + 0x184]
cmp dword [eax - 0xc], 0
jl 0x4186b8
push 0x6a06e0
push eax
call fcn.005fd483
mov ecx, eax
add esp, 8
mov eax, dword [esp + 0x184]
test ecx, ecx
je 0x418385
sub ecx, eax
sar ecx, 1
jns 0x4183db
cmp dword [eax - 0xc], 0
jl 0x4186b8
push 0x6a3260
push eax
call fcn.005fd483
mov ecx, eax
add esp, 8
mov eax, dword [esp + 0x184]
test ecx, ecx
je 0x4183b0
sub ecx, eax
sar ecx, 1
jns 0x4183db
cmp dword [eax - 0xc], 0
jl 0x4186b8
push str._VERYSILENT
push eax
call fcn.005fd483
mov ecx, eax
add esp, 8
mov eax, dword [esp + 0x184]
test ecx, ecx
je 0x4183e3
sub ecx, eax
sar ecx, 1
js 0x4183e3
mov dword [esp + 0x10], 0
cmp dword [eax - 0xc], 0
jl 0x4186b8
push 0x6a3280
push eax
call fcn.005fd483
mov eax, dword [esp + 0x18c]
add esp, 8
cmp dword [eax - 0xc], 0
jl 0x4186b8
push 0x6a3288
push eax
call fcn.005fd483
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4186b1
mov eax, dword [esp + 0x184]
sub ecx, eax
sar ecx, 1
js 0x4186b8
cmp dword [eax - 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x190], 1
jge 0x418453
or ecx, 0xffffffff
jmp 0x418477
push 0x6a3288
push eax
call fcn.005fd483
mov ecx, eax
add esp, 8
mov eax, dword [esp + 0x184]
test ecx, ecx
jne 0x418473
or ecx, 0xffffffff
jmp 0x418477
sub ecx, eax
sar ecx, 1
mov eax, dword [eax - 0xc]
add ecx, 2
sub eax, ecx
push eax
push ecx
lea eax, [esp + 0x194]
push eax
lea ecx, [esp + 0x190]
call fcn.004165d0
mov eax, dword [esp + 0x18c]
lea edx, [esi - 0x10]
mov dword [esp + 0x18c], edx
lea edi, [eax - 0x10]
cmp edi, edx
je 0x418518
cmp dword [edx + 0xc], 0
lea esi, [edx + 0xc]
jl 0x4184fa
mov ecx, dword [edi]
cmp ecx, dword [edx]
jne 0x4184fa
push edi
call fcn.00401b80
add esp, 4
mov dword [esp + 0x188], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4184ee
mov esi, dword [esp + 0x18c]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x188]
lea esi, [eax + 0x10]
mov dword [esp + 0x180], esi
jmp 0x418511
push dword [eax - 0xc]
lea ecx, [esp + 0x184]
push eax
call fcn.00401e40
mov esi, dword [esp + 0x180]
mov dword [esp + 0x188], esi
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x41852d
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
movzx eax, word [esi]
xor edi, edi
mov dword [esp + 0x18c], esi
test ax, ax
je 0x4185b4
mov ecx, eax
push ecx
call fcn.0061410a
add esp, 4
test eax, eax
je 0x418558
test edi, edi
mov eax, esi
cmovne eax, edi
mov edi, eax
jmp 0x41855a
xor edi, edi
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x418540
mov esi, dword [esp + 0x188]
test edi, edi
je 0x4185b4
sub edi, esi
sar edi, 1
js 0x419395
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or ecx, eax
jge 0x4185a2
push edi
lea ecx, [esp + 0x184]
call fcn.00401d50
mov esi, dword [esp + 0x180]
cmp edi, dword [esi - 8]
jg 0x419395
xor eax, eax
mov dword [esi - 0xc], edi
mov word [esi + edi*2], ax
movzx eax, word [esi]
mov edi, esi
push eax
call fcn.0061410a
add esp, 4
test eax, eax
je 0x4186b1
nop word [eax + eax]
movzx eax, word [edi + 2]
add edi, 2
push eax
call fcn.0061410a
add esp, 4
test eax, eax
jne 0x4185d0
cmp edi, esi
je 0x4186b1
mov edx, dword [esi - 0xc]
sub edi, esi
sar edi, 1
test edx, edx
js 0x419395
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or ecx, eax
jge 0x418620
push edx
lea ecx, [esp + 0x184]
call fcn.00401d50
mov esi, dword [esp + 0x180]
mov eax, dword [esi - 0xc]
lea edx, [esi + edi*2]
sub eax, edi
mov dword [esp + 0x18c], eax
lea ecx, [eax*2 + 2]
test ecx, ecx
je 0x418685
test edx, edx
jne 0x418655
call fcn.00607092
mov dword [eax], 0x16
call fcn.00606fb9
mov eax, 0x16
jmp 0x418687
mov eax, dword [esi - 0xc]
lea eax, [eax*2 + 2]
cmp eax, ecx
jae 0x41867a
call fcn.00607092
mov dword [eax], 0x22
call fcn.00606fb9
mov eax, 0x22
jmp 0x418687
push ecx
push edx
push esi
call fcn.005fe5c0
add esp, 0xc
xor eax, eax
push eax
call fcn.00417760
mov eax, dword [esp + 0x190]
add esp, 4
test eax, eax
js 0x419395
cmp eax, dword [esi - 8]
jg 0x419395
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
mov eax, dword [esp + 0x184]
lea edx, [eax - 0x10]
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4186d0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.004021b0
mov ecx, eax
test ecx, ecx
je 0x41938b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
lea ecx, [esp + 0x184]
push 0x6a0b0c
mov dword [esp + 0x188], eax
call fcn.00417800
test al, al
jne 0x418718
push 9
push 0x6a0b0c
lea ecx, [esp + 0x18c]
call fcn.00401e40
push ecx
lea ecx, [esp + 0x64]
call fcn.00413c90
lea ecx, [esp + 0x194]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx]
call eax
mov edx, eax
cmp dword [edx + 0x14], 8
jb 0x41873c
mov edx, dword [edx]
test edx, edx
jne 0x418744
xor ecx, ecx
jmp 0x41875f
mov ecx, edx
lea edi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x418750
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x18c]
call fcn.00417970
lea ecx, [esp + 0x194]
call fcn.00402f20
push 0x2001f
push dword [esp + 0x188]
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x1b8], 0
push reloc.WS2_32.dll_bind
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 0
call fcn.00416a30
test eax, eax
jne 0x418b20
call fcn.004021b0
mov ecx, eax
test ecx, ecx
je 0x41938b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
push str.AppName
lea ecx, [esp + 0x124]
mov dword [esp + 0x18c], 0x104
lea edi, [eax + 0x10]
mov dword [esp + 0x184], edi
call fcn.00413d50
mov ecx, dword [edi - 8]
mov edx, eax
mov eax, 1
mov dword [esp + 0x18c], edx
sub eax, dword [edi - 4]
sub ecx, 0x104
or eax, ecx
jge 0x418838
push 0x104
lea ecx, [esp + 0x184]
call fcn.00401d50
mov edi, dword [esp + 0x180]
mov edx, dword [esp + 0x18c]
cmp dword [edi - 8], 0x104
jl 0x419395
xor eax, eax
mov dword [edi - 0xc], 0x104
mov word [edi + 0x208], ax
lea ecx, [esp + 0x194]
mov eax, dword [edx]
push ecx
mov ecx, edx
mov eax, dword [eax]
call eax
cmp dword [eax + 0x14], 8
jb 0x41886d
mov eax, dword [eax]
lea ecx, [esp + 0x188]
push ecx
push edi
push eax
lea ecx, [esp + 0x1bc]
call fcn.00416710
lea ecx, [esp + 0x194]
call fcn.00402f20
push ecx
lea ecx, [esp + 0x184]
call fcn.00401af0
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x18c], eax
test eax, eax
je 0x4188be
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov dword [esp + 0x18c], eax
push ecx
lea ecx, [esp + 0x124]
call fcn.00413360
lea ecx, [esp + 0x194]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx]
call eax
cmp dword [eax + 0x14], 8
jb 0x4188e3
mov eax, dword [eax]
mov edx, eax
lea ecx, [esp + 0x180]
call fcn.004019e0
lea ecx, [esp + 0x194]
mov byte [esp + 0xb], al
call fcn.00402f20
cmp byte [esp + 0xb], 0
je 0x4189f2
lea ecx, [esp + 0x180]
mov dword [esp + 0x180], 0
call fcn.00402270
cmp dword [esp + 0x10], 0
je 0x418a13
push 0x6a3290
lea ecx, [esp + 0x124]
call fcn.00413a80
lea ecx, [esp + 0x194]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx]
call eax
cmp dword [eax + 0x14], 8
jb 0x418957
mov eax, dword [eax]
push edi
push eax
lea eax, [esp + 0x188]
push eax
call fcn.00402970
add esp, 0xc
lea ecx, [esp + 0x194]
call fcn.00402f20
push 0x69ffd8
lea ecx, [esp + 0x124]
call fcn.00413720
lea ecx, [esp + 0x194]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx]
call eax
cmp dword [eax + 0x14], 8
jb 0x41899e
mov eax, dword [eax]
mov edx, dword [esp + 0x180]
xor ecx, ecx
push 1
push eax
call fcn.00417de0
add esp, 8
mov dword [esp + 0x188], eax
lea ecx, [esp + 0x194]
call fcn.00402f20
cmp dword [esp + 0x188], 1
jne 0x418a63
mov edx, dword [esp + 0x180]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4189f2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x418b2e
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x418b2e
push ecx
lea ecx, [esp + 0x124]
call fcn.004197d0
lea ecx, [esp + 0x194]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx]
call eax
cmp dword [eax + 0x14], 8
jb 0x418a38
mov eax, dword [eax]
push edi
push eax
lea eax, [esp + 0x188]
push eax
call fcn.00402970
add esp, 0xc
lea ecx, [esp + 0x194]
call fcn.00402f20
push dword [esp + 0x180]
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edx, dword [esp + 0x180]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418a82
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x418a9a
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
or edi, 0xffffffff
mov eax, dword [esp + 0x18c]
test eax, eax
je 0x418aaf
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [esp + 0x184]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418acd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x418ae2
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x1d4]
mov dword [esp + method.CShareRestrictedSD.virtual_0], vtable.CShareRestrictedSD.0
test eax, eax
je 0x418b08
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [esp + 0x9fc]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.005c358e
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x18c], eax
push str.Global30B63DD2_5E5D_46DA_B2F4_A7B039B60950
lea ecx, [esp + 0x64]
call fcn.004196c0
lea ecx, [esp + 0x194]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx]
call eax
cmp dword [eax + 0x14], 8
jb 0x418b54
mov eax, dword [eax]
push eax
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
lea ecx, [esp + 0x194]
mov edi, eax
call fcn.00402f20
test edi, edi
je 0x418c47
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x10], 0
je 0x418c06
push ecx
lea ecx, [esp + 0x124]
call fcn.00413360
push 0x6a333c
lea ecx, [esp + 0x1c]
mov edi, eax
call fcn.00413d50
mov edx, dword [edi]
mov ecx, edi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1b0]
push eax
mov edx, dword [edx]
call edx
mov edi, eax
cmp dword [edi + 0x14], 8
jb 0x418bc5
mov edi, dword [edi]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x194]
push edx
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
cmp dword [eax + 0x14], 8
jb 0x418bdf
mov eax, dword [eax]
push 0
push edi
mov edx, eax
xor ecx, ecx
call fcn.00417de0
add esp, 8
lea ecx, [esp + 0x194]
call fcn.00402f20
lea ecx, [esp + 0x1b0]
call fcn.00402f20
push 0x6a333c
lea ecx, [esp + 0x124]
call fcn.00413d50
mov edx, dword [eax]
lea ecx, [esp + 0x194]
push ecx
mov ecx, eax
mov eax, dword [edx]
call eax
cmp dword [eax + 0x14], 8
jb 0x418c2f
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [esp + 0x194]
call fcn.00402f20
jmp 0x418a9a
call fcn.00407bc0
test eax, eax
je 0x418cfd
cmp dword [esp + 0x10], 0
je 0x418ce7
push ecx
lea ecx, [esp + 0x124]
call fcn.00413360
push 0x6a01f8
lea ecx, [esp + 0x1c]
mov edi, eax
call fcn.004135f0
mov edx, dword [edi]
mov ecx, edi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x1b0]
push eax
mov edx, dword [edx]
call edx
mov edi, eax
cmp dword [edi + 0x14], 8
jb 0x418c9a
mov edi, dword [edi]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0x194]
push edx
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
cmp dword [eax + 0x14], 8
jb 0x418cb4
mov eax, dword [eax]
push 1
push edi
mov edx, eax
xor ecx, ecx
call fcn.00417de0
add esp, 8
lea ecx, [esp + 0x194]
mov edi, eax
call fcn.00402f20
lea ecx, [esp + 0x1b0]
call fcn.00402f20
cmp edi, 1
jne 0x418ce7
call fcn.00482ea0
push 0x6a01f8
lea ecx, [esp + 0x124]
call fcn.004135f0
jmp 0x418c17
push 0x6d7ed0
push 0x628
call fcn.005c3b9c
add esp, 8
test eax, eax
je 0x418a9a
push dword [esp + 0x190]
xor ecx, ecx
cmp dword [esp + 0x14], ecx
sete cl
push ecx
mov ecx, eax
call fcn.00403b40
mov edi, eax
mov dword [esp + 0x180], edi
test edi, edi
je 0x418a9a
lea ecx, [esp + 0x1ac]
mov dword [0x6d9210], edi
mov dword [esp + 0x1ac], 0
call fcn.00483510
mov ecx, dword [esp + 0x1ac]
cmp dword [ecx - 0xc], 0
je 0x418dac
cmp dword [esp + 0x10], 0
je 0x418dac
push str.uninst.exe
lea edx, [esp + 0x1b0]
lea ecx, [esp + 0x18c]
call fcn.00411d40
add esp, 4
mov dword [esp + 0xc], 1
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x418dac
mov byte [esp + 0xb], 1
mov eax, 1
jmp 0x418db5
mov eax, dword [esp + 0xc]
mov byte [esp + 0xb], 0
test al, 1
je 0x418dd8
mov edx, dword [esp + 0x188]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418dd8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [esp + 0xb], 0
je 0x41900d
lea ecx, [esp + 0x190]
mov dword [esp + 0x190], 0
call fcn.00402270
lea ecx, [esp + 0x188]
mov dword [esp + 0x188], 0
call fcn.00483790
push 0x800
lea eax, [esp + 0x1fc]
push 0
push eax
call fcn.005feb40
add esp, 0xc
lea eax, [esp + 0x1f8]
push 0x400
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x400
lea eax, [esp + 0x1fc]
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea edx, [esp + 0x1f8]
lea ecx, [esp + 0x1b0]
call fcn.00482ab0
mov edi, dword [esp + 0x190]
mov edx, dword [eax]
lea ecx, [edi - 0x10]
mov dword [esp + 0x14], ecx
lea eax, [edx - 0x10]
mov dword [esp + 0xc], eax
cmp eax, ecx
je 0x418ed6
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
jl 0x418ebf
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x418ebf
push dword [esp + 0xc]
call fcn.00401b80
add esp, 4
mov dword [esp + 0xc], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x418eba
mov edi, dword [esp + 0x14]
push edi
mov ecx, dword [edi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0xc]
lea edi, [eax + 0x10]
jmp 0x418ed6
push dword [edx - 0xc]
lea ecx, [esp + 0x194]
push edx
call fcn.00401e40
mov edi, dword [esp + 0x190]
mov edx, dword [esp + 0x1b0]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418ef5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x188]
mov edx, edi
call fcn.00484e20
test eax, eax
js 0x418fcf
push ecx
lea ecx, [esp + 0x124]
call fcn.00413360
push 0x6a334c
lea ecx, [esp + 0x64]
mov dword [esp + 0x1b4], eax
call fcn.00413b80
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x18]
mov eax, dword [esp + 0x1b0]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov edx, dword [edx]
call edx
mov dword [esp + 0xc], eax
cmp dword [eax + 0x14], 8
jb 0x418f55
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x194]
push edx
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
cmp dword [eax + 0x14], 8
jb 0x418f6f
mov eax, dword [eax]
push 1
push dword [esp + 0x10]
mov edx, eax
xor ecx, ecx
call fcn.00417de0
add esp, 8
mov dword [esp + 0x1b0], eax
lea ecx, [esp + 0x194]
call fcn.00402f20
lea ecx, [esp + 0x18]
call fcn.00402f20
cmp dword [esp + 0x1b0], 1
je 0x418fcf
mov edx, dword [esp + 0x188]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41932d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x41932d
mov edx, dword [esp + 0x188]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418fee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x419006
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esp + 0x180]
cmp dword [esp + 0x10], 0
je 0x419347
lea ecx, [esp + 0x188]
mov dword [esp + 0x188], 0
call fcn.00402270
push ecx
lea ecx, [esp + 0x1b4]
call fcn.00413360
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx]
call eax
cmp dword [eax + 0x14], 8
jb 0x419051
mov eax, dword [eax]
push eax
lea eax, [esp + 0x18c]
push 0x6a3378
push eax
call fcn.00402970
add esp, 0xc
lea ecx, [esp + 0x18]
call fcn.00402f20
mov edi, dword [esp + 0x188]
push ecx
mov ecx, dword [esp + 0x184]
push accept
push accept
push accept
push accept
push 0
push 0x860a0000
push edi
push 0
call fcn.00421be0
test eax, eax
jne 0x4190d9
push 0x6a3384
lea ecx, [esp + 0x64]
call fcn.00413b80
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx]
call eax
cmp dword [eax + 0x14], 8
jb 0x4190c9
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [esp + 0x18]
call fcn.00402f20
mov ecx, dword [esp + 0x180]
sub esp, 8
call fcn.00421dd0
mov ecx, dword [esp + 0x180]
call fcn.00421f20
lea eax, [esp + 0x194]
xorps xmm0, xmm0
push eax
mov eax, dword [esp + 0x184]
movups xmmword [esp + 0x198], xmm0
push dword [eax + 4]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x1a0]
sub eax, dword [esp + 0x198]
movzx ecx, ax
mov eax, dword [esp + 0x19c]
sub eax, dword [esp + 0x194]
movzx eax, ax
shl ecx, 0x10
or ecx, eax
mov eax, dword [esp + 0x180]
push ecx
push 0
push 5
push dword [eax + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
xorps xmm0, xmm0
mov dword [esp + 0x140], 0
push 0
lea eax, [esp + 0x12c]
movaps xmmword [esp + 0x12c], xmm0
push eax
movq qword [esp + 0x140], xmm0
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x41932d
or edi, 0xffffffff
lea ecx, [esp + 0x120]
call fcn.00428580
test al, al
jne 0x41930a
cmp dword [esp + 0x124], 0x20a
jne 0x4192ee
lea eax, [esp + 0x1b0]
mov dword [esp + 0x1b0], 0
push eax
mov dword [esp + 0x1b8], 0
call dword [sym.imp.USER32.dll_GetCursorPos]
push dword [esp + 0x1b4]
push dword [esp + 0x1b4]
call dword [sym.imp.USER32.dll_WindowFromPoint]
lea ecx, [esp + 0x180]
mov dword [esp + 0xc], eax
mov dword [esp + 0x180], 0
call fcn.00402270
push 0x104
push 0x104
lea ecx, [esp + 0x188]
call fcn.00401b30
push eax
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_GetClassNameW]
push ecx
lea ecx, [esp + 0x184]
call fcn.00401af0
push 0x64
lea eax, [esp + 0x68]
mov dword [esp + 0x64], vtable.estrimp_wchar_t__50_.0
push 0
push eax
call fcn.005feb40
mov eax, 0x1e451a06
add esp, 0xc
mov dword [esp + 0xc8], eax
xor edx, edx
nop
mov ecx, edx
and ecx, 3
sar eax, cl
xor ax, word [edx + str.Internet_Explorer_Server]
mov word [esp + edx + 0x64], ax
add edx, 2
cmp edx, 0x32
jae 0x419284
mov eax, dword [esp + 0xc8]
jmp 0x419260
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x64]
mov eax, dword [eax]
call eax
cmp dword [eax + 0x14], 8
jb 0x41929d
mov eax, dword [eax]
mov edx, eax
lea ecx, [esp + 0x180]
call fcn.00401a30
lea ecx, [esp + 0x18]
mov byte [esp + 0xb], al
call fcn.00402f20
mov ecx, dword [esp + 0x120]
mov eax, edi
cmp byte [esp + 0xb], 0
mov edx, dword [esp + 0x180]
cmovne ecx, dword [esp + 0xc]
add edx, 0xfffffff0
mov dword [esp + 0x120], ecx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4192ee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x120]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x120]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x12c]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x419191
mov edi, dword [esp + 0x188]
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x419361
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x419361
mov ecx, edi
call fcn.00408d50
push ecx
push 1
mov ecx, edi
call fcn.0040c6a0
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 0x14]
mov edx, dword [esp + 0x1ac]
or edi, 0xffffffff
add edx, 0xfffffff0
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x418a9d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x418a9d
push 0x80004005
call fcn.00401f90
push 0x80070057
call fcn.00401f90
int3