Function at 0x401480
Capabilities:
Hide graphical window
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x278
mov eax, dword [0x442014]
xor eax, esp
mov dword [esp + 0x274], eax
mov eax, dword [ebp + 8]
push esi
push edi
push 0
mov dword [esp + 0x40], eax
lea eax, [esp + 0x68]
push eax
push 0
push 0x443fec
call dword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
test eax, eax
je 0x401aef
cmp dword [esp + 0x64], 0
je 0x4015ed
push 0xc
xorps xmm0, xmm0
mov dword [esp + 0x24], 0
push str.kernel32.dll
lea ecx, [esp + 0x18]
movaps xmmword [esp + 0x18], xmm0
mov dword [esp + 0x2c], 0
call fcn.00401ee0
lea ecx, [esp + 0x10]
call fcn.0040c4c0
mov ecx, dword [esp + 0x24]
mov dword [0x444004], eax
cmp ecx, 8
jb 0x401541
mov edx, dword [esp + 0x10]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x401532
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x401af4
push ecx
push edx
call fcn.00414533
mov eax, dword [0x444004]
add esp, 8
xor ecx, ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 7
mov word [esp + 0x10], cx
test eax, eax
je 0x4015d6
push str.SetProcessUserModeExceptionPolicy
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetProcessUserModeExceptionPolicy
push dword [0x444004]
mov dword [0x444000], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SetDefaultDllDirectories
push dword [0x444004]
mov dword [0x443ffc], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SetProcessMitigationPolicy
push dword [0x444004]
mov dword [0x443ff8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetProcessMitigationPolicy
push dword [0x444004]
mov dword [0x443ff4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.InstallELAMCertificateInfo
push dword [0x444004]
mov dword [0x443ff0], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0
push 0
push 0x443fec
call dword [sym.imp.KERNEL32.dll_InitOnceComplete]
test eax, eax
je 0x401af9
xor eax, eax
mov dword [esp + 0x68], 0
lea esi, [esp + 0x68]
mov dword [esp + 0x64], eax
lea ecx, [esp + 0x70]
mov dword [esp + 0x6c], 1
sub ecx, esi
xor edi, edi
mov eax, ecx
mov dword [esp + 0xc], ecx
sar eax, 2
xor ecx, ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
test eax, eax
je 0x40169e
cmp eax, 0x3fffffff
ja 0x401afe
lea esi, [eax*4]
cmp esi, 0x1000
jb 0x401667
lea eax, [esi + 0x23]
cmp eax, esi
jbe 0x401b03
push eax
call fcn.004144d4
add esp, 4
test eax, eax
je 0x401af4
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x40167a
test esi, esi
je 0x401678
push esi
call fcn.004144d4
add esp, 4
mov edi, eax
jmp 0x40167a
xor edi, edi
push dword [esp + 0xc]
lea eax, [esi + edi]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.00415d60
mov eax, dword [esp + 0x68]
add esp, 0xc
lea ecx, [edi + eax*4]
mov dword [esp + 0x60], ecx
xor eax, eax
mov esi, edi
mov dword [esp + 0x5c], eax
mov dword [esp + 0xc], eax
cmp edi, ecx
je 0x4016e4
mov eax, dword [esp + 0x60]
mov ecx, dword [esi]
cmp ecx, 1
ja 0x4016d5
mov eax, ecx
lea edx, [esp + 0xc]
shr eax, 5
and ecx, 0x1f
lea edx, [edx + eax*4]
mov eax, 1
shl eax, cl
or dword [edx], eax
mov eax, dword [esp + 0x60]
add esi, 4
cmp esi, eax
jne 0x4016b2
mov eax, dword [esp + 0xc]
mov dword [esp + 0x5c], eax
call fcn.00404370
mov eax, dword [esp + 0x5c]
mov cl, al
and cl, 1
jne 0x401723
push ecx
lea edx, [esp + 0x64]
mov dword [esp + 0x64], 0
call fcn.004051d0
add esp, 4
test al, al
je 0x40171f
or dword [esp + 0x60], 1
lea edx, [esp + 0x60]
push ecx
call fcn.004053e0
add esp, 4
mov eax, dword [esp + 0x5c]
shr eax, 1
test al, 1
jne 0x401754
push ecx
lea edx, [esp + 0x60]
mov dword [esp + 0x60], 0
call fcn.004055e0
add esp, 4
test al, al
je 0x401754
or dword [esp + 0x5c], 1
lea edx, [esp + 0x5c]
push ecx
call fcn.004057f0
add esp, 4
test edi, edi
je 0x401789
mov ecx, dword [esp + 0x64]
sub ecx, edi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x40177f
mov edx, dword [edi - 4]
add ecx, 0x23
sub edi, edx
lea eax, [edi - 4]
cmp eax, 0x1f
ja 0x401af4
mov edi, edx
push ecx
push edi
call fcn.00414533
add esp, 8
push 0xc
xorps xmm0, xmm0
mov dword [esp + 0x24], 0
push str.Riched20.dll
lea ecx, [esp + 0x18]
movaps xmmword [esp + 0x18], xmm0
mov dword [esp + 0x2c], 0
call fcn.00401ee0
lea ecx, [esp + 0x10]
call fcn.0040c4c0
mov ecx, dword [esp + 0x24]
test eax, eax
sete al
mov byte [esp + 0xb], al
cmp ecx, 8
jb 0x401803
mov edx, dword [esp + 0x10]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4017f5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x401b08
push ecx
push edx
call fcn.00414533
mov al, byte [esp + 0x13]
add esp, 8
xor ecx, ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 7
mov word [esp + 0x10], cx
test al, al
je 0x401868
mov dword [0x444000], ecx
mov dword [0x443ffc], ecx
mov dword [0x443ff8], ecx
mov dword [0x443ff4], ecx
mov dword [0x443ff0], ecx
mov ecx, dword [0x444004]
test ecx, ecx
je 0x40184d
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x274]
xor ecx, esp
call fcn.004144c6
mov esp, ebp
pop ebp
ret 0x10
push 0x208
lea eax, [esp + 0x74]
push 0
push eax
call fcn.004162e0
add esp, 0xc
lea eax, [esp + 0x70]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xorps xmm0, xmm0
mov dword [esp + 0x20], 0
lea ecx, [esp + 0x70]
movaps xmmword [esp + 0x10], xmm0
mov dword [esp + 0x24], 0
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4018b0
sub ecx, edx
lea eax, [esp + 0x70]
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.00401ee0
sub esp, 8
lea ecx, [esp + 0x18]
call fcn.0040e020
mov ecx, dword [esp + 0x2c]
add esp, 8
test al, al
sete al
mov byte [esp + 0xb], al
cmp ecx, 8
jb 0x401926
mov edx, dword [esp + 0x10]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x401918
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x401b0d
push ecx
push edx
call fcn.00414533
mov al, byte [esp + 0x13]
add esp, 8
test al, al
je 0x401943
push 0x10
push str.Critical_Error_
push str.Verification_of_your_TeamViewer_Note_version_failed__nTeamViewer_Note_will_quit_for_security_reasons._Please_reinstall_TeamViewer.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40184d
push dword [ebp + 0x10]
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x6c]
xorps xmm0, xmm0
mov edx, esi
movlpd qword [esp + 0x6c], xmm0
call fcn.00402980
add esp, 4
push 0x6d
push esi
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x40199f
call fcn.0041425f
mov dword [esi + 0x14], eax
test eax, eax
jne 0x40199f
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.00404260
mov dword [esp + 0x64], 1
jmp 0x401a8c
push 0
push 0
push eax
call fcn.00414361
lea edi, [esi + 8]
test edi, edi
je 0x401ae3
test esi, esi
je 0x401ae3
mov dword [edi], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x442a3c
mov dword [edi + 4], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x442a54]
mov dword [edi + 8], eax
push 0x442a3c
mov dword [0x442a54], edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
push 0x401b60
push 0
push 0x66
push dword [0x44334c]
call dword [sym.imp.USER32.dll_CreateDialogParamW]
test eax, eax
jne 0x401a15
call fcn.00404260
mov dword [esp + 0x64], 1
jmp 0x401a8c
push dword [ebp + 0x14]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 0
push 0
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x401a7f
mov esi, dword [esp + 0x3c]
nop word [eax + eax]
lea eax, [esp + 0x40]
push eax
push esi
push dword [esp + 0x48]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x401a6a
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x401a40
call fcn.00404260
mov eax, dword [esp + 0x48]
mov dword [esp + 0x64], eax
mov edi, dword [esp + 0x6c]
test edi, edi
je 0x401ac9
or eax, 0xffffffff
lock xadd dword [edi + 4], eax
jne 0x401ac9
mov eax, dword [edi]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4301a4]
mov ecx, edi
call esi
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
jne 0x401ac9
mov edx, dword [edi]
mov esi, dword [edx + 4]
mov ecx, esi
call dword [0x4301a4]
mov ecx, edi
call esi
mov ecx, dword [esp + 0x27c]
mov eax, dword [esp + 0x64]
pop edi
pop esi
xor ecx, esp
call fcn.004144c6
mov esp, ebp
pop ebp
ret 0x10
push 1
push 0xc0000005
call fcn.00401fb0
call fcn.0041945c
call fcn.004192df
call fcn.004135ea
call fcn.00401ca0
call fcn.004022f0
call fcn.004192df
call fcn.004192df
int3