Function at 0x411c90
Capabilities:
Check if file exists
Get common file path
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49c865
mov eax, dword fs:[0]
push eax
mov eax, 0x1788
call fcn.00476960
mov eax, dword [0x4c6374]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.004793f0
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.0047f0af
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004793f0
lea eax, [ebp - 0x420]
push eax
push str._wsGHO.ini
lea eax, [ebp - 0x218]
push 0x100
push eax
call fcn.0040edf0
xor eax, eax
mov dword [ebp - 0x1780], 7
add esp, 0x30
mov dword [ebp - 0x1784], 0
mov word [ebp - 0x1794], ax
cmp word [ebp - 0x218], ax
jne 0x411d44
xor ecx, ecx
jmp 0x411d5f
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411d50
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x1794]
call fcn.0040e610
cmp dword [ebp - 0x1784], 0
jne 0x411d84
mov byte [ebp - 0x175d], 0
jmp 0x411da8
cmp dword [ebp - 0x1780], 8
lea eax, [ebp - 0x1794]
cmovae eax, dword [ebp - 0x1794]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
setne byte [ebp - 0x175d]
mov eax, dword [ebp - 0x1780]
cmp eax, 8
jb 0x411dc6
inc eax
lea ecx, [ebp - 0x1794]
push eax
push dword [ebp - 0x1794]
call fcn.0040f5b0
cmp byte [ebp - 0x175d], 0
jne 0x411dea
push 0
push str.ERROR:
push 0x4b84e4
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call fcn.0047f31d
mov dword [ebp - 0x16bc], 0xf
mov dword [ebp - 0x16c0], 0
mov byte [ebp - 0x16d0], 0
mov dword [ebp - 4], 0
xor eax, eax
mov dword [ebp - 0x165c], 7
mov dword [ebp - 0x1660], 0
mov word [ebp - 0x1670], ax
cmp word [ebp - 0x420], ax
jne 0x411e36
xor ecx, ecx
jmp 0x411e4f
lea ecx, [ebp - 0x420]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411e40
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x1670]
call fcn.0040e610
push 0x1000
lea eax, [ebp - 0x1628]
mov byte [ebp - 4], 1
push 0
push eax
call fcn.004793f0
xor eax, eax
mov dword [ebp - 0x1764], 0
add esp, 0xc
mov dword [ebp - 0x1768], 7
mov dword [ebp - 0x176c], 0
mov word [ebp - 0x177c], ax
cmp word [ebp - 0x218], ax
jne 0x411eb0
xor ecx, ecx
jmp 0x411ecf
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411ec0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x177c]
call fcn.0040e610
lea eax, [ebp - 0x1764]
xor edx, edx
push eax
push 0
lea ecx, [ebp - 0x177c]
call fcn.00414a30
mov eax, dword [ebp - 0x1768]
add esp, 8
cmp eax, 8
jb 0x411f19
inc eax
lea ecx, [ebp - 0x177c]
push eax
push dword [ebp - 0x177c]
call fcn.0040f5b0
mov esi, dword [ebp - 0x1764]
test esi, esi
je 0x411f99
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x177c]
call fcn.00408ac0
lea eax, [ebp - 0x1764]
push eax
push esi
lea edx, [ebp - 0x1628]
lea ecx, [ebp - 0x177c]
call fcn.00414a30
add esp, 8
test al, al
mov eax, dword [ebp - 0x1768]
sete byte [ebp - 0x175d]
cmp eax, 8
jb 0x411f78
inc eax
lea ecx, [ebp - 0x177c]
push eax
push dword [ebp - 0x177c]
call fcn.0040f5b0
cmp byte [ebp - 0x175d], 0
je 0x411f99
push str.Error_OpenFailed
push 0x4c8318
call fcn.00412d20
push eax
call fcn.00412fd0
add esp, 0xc
cmp byte [ebp - 0x1628], 0
jne 0x411fa6
xor ecx, ecx
jmp 0x411fb9
lea ecx, [ebp - 0x1628]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411fb0
sub ecx, edx
push ecx
lea eax, [ebp - 0x1628]
push eax
lea ecx, [ebp - 0x16d0]
call fcn.0040f450
push 0x10
push str.BBC59FA7DA519166
lea ecx, [ebp - 0x177c]
mov dword [ebp - 0x1768], 0xf
mov dword [ebp - 0x176c], 0
mov byte [ebp - 0x177c], 0
call fcn.0040f450
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1794]
push 0x10
push str.BB90B8A261C760FB
mov dword [ebp - 0x1780], 0xf
mov dword [ebp - 0x1784], 0
mov byte [ebp - 0x1794], 0
call fcn.0040f450
lea eax, [ebp - 0x177c]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x1794]
push eax
lea eax, [ebp - 0x16d0]
push eax
lea eax, [ebp - 0x16b8]
push eax
call fcn.004146f0
mov eax, dword [ebp - 0x1780]
cmp eax, 0x10
jb 0x41206d
inc eax
lea ecx, [ebp - 0x1794]
push eax
push dword [ebp - 0x1794]
call fcn.0040f330
mov dword [ebp - 0x1780], 0xf
mov dword [ebp - 0x1784], 0
mov byte [ebp - 0x1794], 0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x1768]
cmp eax, 0x10
jb 0x4120aa
inc eax
lea ecx, [ebp - 0x177c]
push eax
push dword [ebp - 0x177c]
call fcn.0040f330
push 0x74
lea eax, [ebp - 0x175c]
mov dword [ebp - 0x1768], 0xf
push 0
push eax
mov dword [ebp - 0x176c], 0
mov byte [ebp - 0x177c], 0
call fcn.004793f0
add esp, 0xc
lea ecx, [ebp - 0x175c]
call fcn.0046fac0
xorps xmm0, xmm0
mov byte [ebp - 4], 7
push 0
lea ecx, [ebp - 0x16e8]
movq qword [ebp - 0x16d8], xmm0
movups xmmword [ebp - 0x16e8], xmm0
call fcn.00473c80
push 1
lea eax, [ebp - 0x16e8]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x16b8]
push eax
lea ecx, [ebp - 0x175c]
call fcn.00471890
lea eax, [ebp - 0x16a0]
push eax
push str.WindowsName
lea ecx, [ebp - 0x16e8]
call fcn.00474500
mov ecx, eax
call fcn.00474a90
lea edx, [ebp - 0x16a0]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1658]
call fcn.00425950
mov byte [ebp - 4], 0xa
lea edx, [ebp - 0x1658]
mov ecx, dword [edi + 0x6b8]
cmp dword [ebp - 0x1644], 8
cmovae edx, dword [ebp - 0x1658]
mov eax, dword [ecx]
push edx
call dword [eax + 0x3c]
lea eax, [ebp - 0x1688]
push eax
push str.GHOName
lea ecx, [ebp - 0x16e8]
call fcn.00474500
mov ecx, eax
call fcn.00474a90
lea edx, [ebp - 0x1688]
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x177c]
call fcn.00425950
mov ecx, eax
lea esi, [edi + 0x554]
mov dword [ebp - 0x1764], ecx
cmp esi, ecx
je 0x412202
cmp dword [esi + 0x14], 8
jb 0x4121db
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.0040f5b0
mov ecx, dword [ebp - 0x1764]
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x4121f3
mov eax, dword [esi]
jmp 0x4121f5
mov eax, esi
xor edx, edx
push ecx
mov ecx, esi
mov word [eax], dx
call fcn.0040ed50
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x1768]
cmp eax, 8
jb 0x412224
inc eax
lea ecx, [ebp - 0x177c]
push eax
push dword [ebp - 0x177c]
call fcn.0040f5b0
call fcn.00416dd0
test al, al
je 0x412241
push 0
push 0x4b837c
push 0x4b8384
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea esi, [edi + 0x584]
mov ecx, esi
call fcn.004241c0
cmp dword [esi + 0x14], 8
jb 0x412256
mov esi, dword [esi]
mov ecx, dword [edi + 0x6ac]
push esi
mov eax, dword [ecx]
call dword [eax + 0x3c]
push 0x208
lea eax, [ebp - 0x628]
push 0
push eax
call fcn.004793f0
add esp, 0xc
lea eax, [ebp - 0x628]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xor eax, eax
mov dword [ebp - 0x162c], 7
mov dword [ebp - 0x1630], 0
mov word [ebp - 0x1640], ax
cmp word [ebp - 0x628], ax
jne 0x4122b4
xor ecx, ecx
jmp 0x4122cf
lea ecx, [ebp - 0x628]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4122c0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0x1640]
call fcn.0040e610
push 3
push 0
lea eax, [ebp - 0x177c]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x1640]
call fcn.00408960
mov ecx, eax
lea esi, [edi + 0x53c]
mov dword [ebp - 0x1764], ecx
cmp esi, ecx
je 0x41234f
cmp dword [esi + 0x14], 8
jb 0x412328
mov eax, dword [esi + 0x14]
mov ecx, esi
inc eax
push eax
push dword [esi]
call fcn.0040f5b0
mov ecx, dword [ebp - 0x1764]
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x412340
mov eax, dword [esi]
jmp 0x412342
mov eax, esi
xor edx, edx
push ecx
mov ecx, esi
mov word [eax], dx
call fcn.0040ed50
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x1768]
cmp eax, 8
jb 0x412371
inc eax
lea ecx, [ebp - 0x177c]
push eax
push dword [ebp - 0x177c]
call fcn.0040f5b0
sub esp, 0x18
mov ecx, esi
mov eax, esp
push 2
push 0
push eax
call fcn.00408960
lea ecx, [edi + 0x4bc]
call fcn.00425120
add esp, 0x18
test al, al
jne 0x4123a8
push 0
push str.Error
push 0x4b8554
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp byte [edi + 0x4bc], 0
mov ecx, dword [edi + 0x6b0]
mov eax, dword [ecx]
je 0x4123c0
push 0x4b8568
jmp 0x4123c5
push 0x4b8574
call dword [eax + 0x3c]
mov eax, dword [ebp - 0x162c]
cmp eax, 8
jb 0x4123e6
inc eax
lea ecx, [ebp - 0x1640]
push eax
push dword [ebp - 0x1640]
call fcn.0040f5b0
xor eax, eax
mov dword [ebp - 0x162c], 7
mov word [ebp - 0x1640], ax
mov eax, dword [ebp - 0x1674]
mov dword [ebp - 0x1630], 0
cmp eax, 0x10
jb 0x412421
inc eax
lea ecx, [ebp - 0x1688]
push eax
push dword [ebp - 0x1688]
call fcn.0040f330
mov eax, dword [ebp - 0x1644]
mov dword [ebp - 0x1674], 0xf
mov dword [ebp - 0x1678], 0
mov byte [ebp - 0x1688], 0
cmp eax, 8
jb 0x41245a
inc eax
lea ecx, [ebp - 0x1658]
push eax
push dword [ebp - 0x1658]
call fcn.0040f5b0
xor eax, eax
mov dword [ebp - 0x1644], 7
mov word [ebp - 0x1658], ax
mov eax, dword [ebp - 0x168c]
mov dword [ebp - 0x1648], 0
cmp eax, 0x10
jb 0x412495
inc eax
lea ecx, [ebp - 0x16a0]
push eax
push dword [ebp - 0x16a0]
call fcn.0040f330
lea ecx, [ebp - 0x16e8]
mov dword [ebp - 0x168c], 0xf
mov dword [ebp - 0x1690], 0
mov byte [ebp - 0x16a0], 0
call fcn.00473f20
lea ecx, [ebp - 0x175c]
call fcn.00412580
mov eax, dword [ebp - 0x16a4]
cmp eax, 0x10
jb 0x4124e4
inc eax
lea ecx, [ebp - 0x16b8]
push eax
push dword [ebp - 0x16b8]
call fcn.0040f330
mov eax, dword [ebp - 0x165c]
mov dword [ebp - 0x16a4], 0xf
mov dword [ebp - 0x16a8], 0
mov byte [ebp - 0x16b8], 0
cmp eax, 8
jb 0x41251d
inc eax
lea ecx, [ebp - 0x1670]
push eax
push dword [ebp - 0x1670]
call fcn.0040f5b0
xor eax, eax
mov dword [ebp - 0x165c], 7
mov word [ebp - 0x1670], ax
mov eax, dword [ebp - 0x16bc]
mov dword [ebp - 0x1660], 0
cmp eax, 0x10
jb 0x412558
inc eax
lea ecx, [ebp - 0x16d0]
push eax
push dword [ebp - 0x16d0]
call fcn.0040f330
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00475cda
mov esp, ebp
pop ebp
ret