Function at 0x481670
Capabilities:
Check mutex on windows
Hide graphical window
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c65cd
mov eax, dword fs:[0]
push eax
sub esp, 0x128
mov eax, dword [0x67c3c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x685168], 0
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x12c], eax
jne 0x481cdd
push str.thprac_launcher_mutex
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x685170], eax
test eax, eax
je 0x481c53
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x481c53
imul eax, dword [0x66b030], 0xe2c
push 0xfde9
push dword [eax + 0x66ba58]
lea eax, [ebp - 0x48]
push eax
call fcn.00544480
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x65
push 0
mov dword [ebp - 4], 0
call edi
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
push 0
mov esi, eax
call edi
push 0x685174
mov dword [0x685174], 0x30
mov dword [0x685178], 0x40
mov dword [0x68517c], 0x482160
mov dword [0x685180], 0
mov dword [0x685184], 0
mov dword [0x685188], eax
mov dword [0x68518c], esi
mov dword [0x685190], 0
mov dword [0x685194], 0
mov dword [0x685198], 0
mov dword [0x68519c], 0x5d7240
mov dword [0x6851a0], 0
call dword [sym.imp.USER32.dll_RegisterClassExW]
cmp dword [ebp - 0x34], 7
lea eax, [ebp - 0x48]
push 0
push dword [0x685188]
cmova eax, dword [ebp - 0x48]
push 0
push 0
push dword [ebp - 0x128]
push ebx
push 0
push 0
push 0x800a0000
push eax
push dword [0x68519c]
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x68516c], eax
lea eax, [ebp - 0x124]
push eax
push 0xffffffffffffffff
push 0
call dword [sym.imp.USER32.dll_EnumDisplaySettingsW]
mov esi, dword [ebp - 0x78]
mov ebx, dword [ebp - 0x74]
push str.shcore.dll
call edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x128], eax
test eax, eax
je 0x481966
push str.SetProcessDpiAwareness
push eax
call edi
push str.GetDpiForMonitor
push dword [ebp - 0x128]
mov dword [ebp - 0x14], eax
call edi
mov edi, eax
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x481966
test edi, edi
je 0x481966
push 1
call eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push 0
push 2
push dword [0x68516c]
call dword [sym.imp.USER32.dll_MonitorFromWindow]
push eax
call edi
mov eax, dword [ebp - 0x14]
cmp eax, 0x60
je 0x481966
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x5cc090]
mov eax, dword [ebp - 0x130]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
divss xmm1, dword [0x5d730c]
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
movss dword [ebp - 0x128], xmm1
addsd xmm0, qword [eax*8 + 0x5cc090]
movss dword [0x66ad2c], xmm1
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
call fcn.0059a760
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x12c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x5cc090]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0x128]
call fcn.0059a760
mov ecx, dword [ebp + 0x18]
mov edi, eax
mov dword [ebp - 0x12c], edi
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x5cc090]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0x128]
call fcn.0059a760
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x134], eax
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x5cc090]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0x128]
call fcn.0059a760
mov ecx, eax
mov eax, dword [ebp - 0x134]
jmp 0x481972
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp - 0x12c]
push 0
push ecx
push eax
sub ebx, ecx
sub esi, eax
shr ebx, 1
push ebx
shr esi, 1
push esi
push 0
push dword [0x68516c]
call dword [sym.imp.USER32.dll_SetWindowPos]
mov esi, dword [0x68516c]
push str.d3d9.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x481c2a
push str.Direct3DCreate9
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x481c2a
push 0x20
call eax
mov ecx, eax
mov dword [0x6851a4], ecx
test ecx, ecx
je 0x481c2a
mov ebx, dword [ebp - 0x130]
xorps xmm0, xmm0
push 0x6851a8
push 0x6851ac
push 0x40
push esi
push 1
movlpd qword [0x6851b8], xmm0
mov dword [0x6851c0], 0
mov dword [0x6851c8], 0
movlpd qword [0x6851d8], xmm0
mov dword [0x6851cc], 1
mov dword [0x6851c4], 1
mov dword [0x6851b4], 0
mov dword [0x6851d0], 1
mov dword [0x6851d4], 0x50
mov dword [0x6851e0], 1
mov dword [0x6851ac], ebx
mov dword [0x6851b0], edi
mov eax, dword [ecx]
push 0
push ecx
call dword [eax + 0x40]
test eax, eax
js 0x481c2a
push 0xa
push dword [0x68516c]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x68516c]
call dword [sym.imp.USER32.dll_UpdateWindow]
push dword [0x68516c]
call fcn.00480f80
push 0
call fcn.0040c180
push dword [0x68516c]
call fcn.0045c290
push dword [0x6851a8]
call fcn.0045b620
movss xmm0, dword [0x66ad2c]
add esp, 0xc
mulss xmm0, dword [0x5cc030]
movss dword [esp], xmm0
push dword [0x66b030]
call fcn.004830e0
movss xmm0, dword [0x66ad2c]
add esp, 8
ucomiss xmm0, dword [0x5cbff0]
lahf
test ah, 0x44
jnp 0x481afa
call fcn.0040e830
movss xmm0, dword [0x66ad2c]
push ecx
mov ecx, eax
movss dword [esp], xmm0
call fcn.004183a0
call fcn.0040e260
mov edi, eax
call fcn.0040e830
push 0
mov esi, eax
call fcn.004228a0
mov eax, dword [0x68516c]
lea ecx, [ebp - 0x48]
mov dword [edi + 0x18], 0
add esp, 4
mov dword [esi + 0xc], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x10], 0
mov esi, 1
mov dword [edi + 0xd8], eax
mov eax, dword [ebp - 0x12c]
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
shr ebx, 0x1f
addsd xmm0, qword [ebx*8 + 0x5cc090]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [edi + 8], xmm1
addsd xmm0, qword [eax*8 + 0x5cc090]
cvtpd2ps xmm0, xmm0
movss dword [edi + 0xc], xmm0
mov dword [edi + 0x2c], 9
mov dword [edi + 0x30], 0x25
mov dword [edi + 0x34], 0x27
mov dword [edi + 0x38], 0x26
mov dword [edi + 0x3c], 0x28
mov dword [edi + 0x40], 0x21
mov dword [edi + 0x44], 0x22
mov dword [edi + 0x48], 0x24
mov dword [edi + 0x4c], 0x23
mov dword [edi + 0x50], 0x2d
mov dword [edi + 0x54], 0x2e
mov dword [edi + 0x58], 8
mov dword [edi + 0x5c], 0x20
mov dword [edi + 0x60], 0xd
mov dword [edi + 0x64], 0x1b
mov dword [edi + 0x68], 0xd
mov dword [edi + 0x6c], 0x41
mov dword [edi + 0x70], 0x43
mov dword [edi + 0x74], 0x56
mov dword [edi + 0x78], 0x58
mov dword [edi + 0x7c], 0x59
mov dword [edi + 0x80], 0x5a
call fcn.004443f0
mov eax, esi
jmp 0x481cdf
call fcn.00481070
push dword [0x685188]
push dword [0x68519c]
call dword [sym.imp.USER32.dll_UnregisterClassW]
lea ecx, [ebp - 0x48]
or esi, 0xffffffff
call fcn.004443f0
mov eax, esi
jmp 0x481cdf
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
mov esi, 0x66ba58
nop
push 0xfde9
push dword [esi]
lea eax, [ebp - 0x30]
push eax
call fcn.00544480
add esp, 0xc
lea eax, [ebp - 0x30]
cmp dword [ebp - 0x1c], 7
cmova eax, dword [ebp - 0x30]
push eax
push 0
call dword [sym.imp.USER32.dll_FindWindowW]
mov edi, eax
test edi, edi
je 0x481c99
push 9
push edi
call ebx
push edi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov ecx, dword [ebp - 0x1c]
cmp ecx, 7
jbe 0x481ccf
mov edx, dword [ebp - 0x30]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x481cc5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x481cfb
push ecx
push edx
call fcn.0059a744
add esp, 8
add esi, 0xe2c
cmp esi, 0x66e4dc
jl 0x481c60
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0059a5ad
mov esp, ebp
pop ebp
ret
call fcn.005ad975
int3