Function at 0x403f4b
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x447c23
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
mov eax, dword [0x45b1d4]
xor eax, esp
mov dword [esp + 0x98], eax
push ebx
push esi
push edi
mov eax, dword [0x45b1d4]
xor eax, esp
push eax
lea eax, [esp + 0xb0]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
je 0x404025
cmp edi, ebx
je 0x404025
cmp ecx, ebx
je 0x404025
cmp edx, ebx
je 0x404025
cmp esi, ebx
je 0x404025
lea ecx, [esp + 0x70]
call fcn.00401c6e
push str.uninstall
lea eax, [esp + 0x74]
push eax
mov dword [esp + 0xc0], ebx
call fcn.00401cb3
push esi
lea eax, [esp + 0x74]
push eax
call fcn.00401cb3
push str..exe
lea eax, [esp + 0x74]
push eax
call fcn.00401cb3
lea eax, [esp + 0x70]
push eax
call fcn.004013ad
cmp dword [esp + 0x8c], 8
mov eax, dword [esp + 0x78]
pop ecx
jae 0x40400c
lea eax, [esp + 0x74]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
test eax, eax
jne 0x40404b
push ebx
push 1
lea esi, [esp + 0x78]
call fcn.004022b6
xor eax, eax
mov ecx, dword [esp + 0xb0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.0042d4ab
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x70]
lea esi, [esp + 0x8c]
call fcn.00401c8a
push str..uninstall
mov eax, esi
push eax
mov byte [esp + 0xc0], 1
call fcn.00401cb3
cmp dword [esp + 0xa4], 8
mov eax, dword [esp + 0x90]
jae 0x404088
lea eax, [esp + 0x90]
push eax
call edi
test eax, eax
jne 0x4040d4
cmp dword [esp + 0xa4], 8
mov eax, dword [esp + 0x90]
jae 0x4040a7
lea eax, [esp + 0x90]
push 0x44d884
push eax
call fcn.0042d580
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x4040d4
push str.uninstall_here.
push 0x44d89c
push esi
call fcn.0042eefe
add esp, 0xc
push esi
call fcn.0042d82b
pop ecx
mov dword [esp + 0x50], 7
mov dword [esp + 0x4c], ebx
mov word [esp + 0x3c], bx
mov eax, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
lea esi, [esp + 0x38]
mov byte [esp + 0xb8], 2
call fcn.0040210f
push 0x44d8a0
mov eax, esi
push eax
call fcn.00401cb3
push dword [esp + 0x34]
mov eax, esi
push eax
call fcn.00401cb3
cmp dword [ebp + 8], ebx
mov eax, dword [esp + 0x3c]
je 0x404456
cmp dword [esp + 0x50], 8
jae 0x40412c
lea eax, [esp + 0x3c]
push str.UninstallString
push eax
lea eax, [esp + 0x5c]
push getpeername
push eax
call section..text
add esp, 0x10
mov byte [esp + 0xb8], 3
cmp dword [esp + 0x68], ebx
jne 0x40478a
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x404165
lea eax, [esp + 0x3c]
mov edi, str.DisplayName
push edi
push eax
lea eax, [esp + 0x20]
push getpeername
push eax
call section..text
add esp, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
push ecx
xor ebx, ebx
mov byte [esp + 0xc0], 4
call fcn.00402089
push ebx
push 1
lea esi, [esp + 0x20]
mov byte [esp + 0xc0], 3
call fcn.004022b6
push dword [esp + 0x14]
lea esi, [esp + 0x58]
call fcn.00405e90
test al, al
pop ecx
jne 0x4041dc
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x4041c9
lea eax, [esp + 0x3c]
push dword [esp + 0x14]
push edi
push eax
push getpeername
call fcn.004011a9
add esp, 0x10
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x4041eb
lea eax, [esp + 0x3c]
push str.DisplayIcon
push eax
lea eax, [esp + 0x20]
push getpeername
push eax
call section..text
add esp, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
push ecx
xor ebx, ebx
mov byte [esp + 0xc0], 5
call fcn.00402089
push ebx
push 1
lea esi, [esp + 0x20]
mov byte [esp + 0xc0], 3
call fcn.004022b6
lea eax, [esp + 0x54]
push eax
call fcn.004013ad
mov eax, dword [esp + 0x78]
pop ecx
push 8
pop esi
cmp dword [esp + 0x88], esi
jae 0x40424c
lea eax, [esp + 0x74]
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [esp + 0x58]
call fcn.00405e4d
test eax, eax
je 0x404298
cmp dword [esp + 0x6c], esi
mov ecx, dword [esp + 0x58]
jae 0x404273
lea ecx, [esp + 0x58]
cmp dword [esp + 0x50], esi
mov eax, dword [esp + 0x3c]
jae 0x404281
lea eax, [esp + 0x3c]
push ecx
push str.DisplayIcon
push eax
mov edi, getpeername
push edi
call fcn.004011a9
add esp, 0x10
jmp 0x40429d
mov edi, getpeername
cmp dword [esp + 0x50], esi
mov eax, dword [esp + 0x3c]
jae 0x4042ab
lea eax, [esp + 0x3c]
push str.DisplayVersion
push eax
lea eax, [esp + 0x20]
push edi
push eax
call section..text
add esp, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
push ecx
xor ebx, ebx
mov byte [esp + 0xc0], 6
call fcn.00402089
push ebx
push 1
lea esi, [esp + 0x20]
mov byte [esp + 0xc0], 3
call fcn.004022b6
push dword [esp + 0x10]
lea esi, [esp + 0x58]
call fcn.00405e90
test al, al
pop ecx
jne 0x40431d
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x40430a
lea eax, [esp + 0x3c]
push dword [esp + 0x10]
push str.DisplayVersion
push eax
push edi
call fcn.004011a9
add esp, 0x10
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x40432c
lea eax, [esp + 0x3c]
push str.Publisher
push eax
lea eax, [esp + 0x20]
push edi
push eax
call section..text
add esp, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
push ecx
xor ebx, ebx
mov byte [esp + 0xc0], 7
call fcn.00402089
push ebx
push 1
lea esi, [esp + 0x20]
mov byte [esp + 0xc0], 3
call fcn.004022b6
mov ebx, str.Jule_game_co._ltd
push ebx
lea esi, [esp + 0x58]
call fcn.00405e90
test al, al
pop ecx
jne 0x40439d
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x40438d
lea eax, [esp + 0x3c]
push ebx
push str.Publisher
push eax
push edi
call fcn.004011a9
add esp, 0x10
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x4043ac
lea eax, [esp + 0x3c]
push str.UninstallString
push eax
lea eax, [esp + 0x20]
push edi
push eax
call section..text
add esp, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
push ecx
xor ebx, ebx
mov byte [esp + 0xc0], 8
call fcn.00402089
push ebx
push 1
lea esi, [esp + 0x20]
mov byte [esp + 0xc0], 3
call fcn.004022b6
lea eax, [esp + 0x54]
push eax
call fcn.004013ad
cmp dword [esp + 0x8c], 8
mov eax, dword [esp + 0x78]
pop ecx
jae 0x404407
lea eax, [esp + 0x74]
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [esp + 0x58]
call fcn.00405e4d
test eax, eax
je 0x40478a
cmp dword [esp + 0x88], 8
mov ecx, dword [esp + 0x74]
jae 0x404436
lea ecx, [esp + 0x74]
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x404445
lea eax, [esp + 0x3c]
push ecx
push str.UninstallString
push eax
push getpeername
jmp 0x404782
cmp dword [esp + 0x50], 8
jae 0x404461
lea eax, [esp + 0x3c]
push str.UninstallString
push eax
lea eax, [esp + 0x5c]
push getpeername
push eax
call section..text
add esp, 0x10
mov byte [esp + 0xb8], 9
cmp dword [esp + 0x68], ebx
jne 0x40478a
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x40449a
lea eax, [esp + 0x3c]
mov edi, str.DisplayName
push edi
push eax
lea eax, [esp + 0x20]
push getpeername
push eax
call section..text
add esp, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
push ecx
xor ebx, ebx
mov byte [esp + 0xc0], 0xa
call fcn.00402089
push ebx
push 1
lea esi, [esp + 0x20]
mov byte [esp + 0xc0], 9
call fcn.004022b6
push dword [esp + 0x14]
lea esi, [esp + 0x58]
call fcn.00405e90
test al, al
pop ecx
jne 0x404511
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x4044fe
lea eax, [esp + 0x3c]
push dword [esp + 0x14]
push edi
push eax
push getpeername
call fcn.004011a9
add esp, 0x10
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x404520
lea eax, [esp + 0x3c]
push str.DisplayIcon
push eax
lea eax, [esp + 0x20]
push getpeername
push eax
call section..text
add esp, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
push ecx
xor ebx, ebx
mov byte [esp + 0xc0], 0xb
call fcn.00402089
push ebx
push 1
lea esi, [esp + 0x20]
mov byte [esp + 0xc0], 9
call fcn.004022b6
lea eax, [esp + 0x54]
push eax
call fcn.004013ad
mov eax, dword [esp + 0x78]
pop ecx
push 8
pop esi
cmp dword [esp + 0x88], esi
jae 0x404581
lea eax, [esp + 0x74]
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [esp + 0x58]
call fcn.00405e4d
test eax, eax
je 0x4045cd
cmp dword [esp + 0x6c], esi
mov ecx, dword [esp + 0x58]
jae 0x4045a8
lea ecx, [esp + 0x58]
cmp dword [esp + 0x50], esi
mov eax, dword [esp + 0x3c]
jae 0x4045b6
lea eax, [esp + 0x3c]
push ecx
push str.DisplayIcon
push eax
mov edi, getpeername
push edi
call fcn.004011a9
add esp, 0x10
jmp 0x4045d2
mov edi, getpeername
cmp dword [esp + 0x50], esi
mov eax, dword [esp + 0x3c]
jae 0x4045e0
lea eax, [esp + 0x3c]
push str.DisplayVersion
push eax
lea eax, [esp + 0x20]
push edi
push eax
call section..text
add esp, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
push ecx
xor ebx, ebx
mov byte [esp + 0xc0], 0xc
call fcn.00402089
push ebx
push 1
lea esi, [esp + 0x20]
mov byte [esp + 0xc0], 9
call fcn.004022b6
push dword [esp + 0x10]
lea esi, [esp + 0x58]
call fcn.00405e90
test al, al
pop ecx
jne 0x404652
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x40463f
lea eax, [esp + 0x3c]
push dword [esp + 0x10]
push str.DisplayVersion
push eax
push edi
call fcn.004011a9
add esp, 0x10
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x404661
lea eax, [esp + 0x3c]
push str.Publisher
push eax
lea eax, [esp + 0x20]
push edi
push eax
call section..text
add esp, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
push ecx
xor ebx, ebx
mov byte [esp + 0xc0], 0xd
call fcn.00402089
push ebx
push 1
lea esi, [esp + 0x20]
mov byte [esp + 0xc0], 9
call fcn.004022b6
mov ebx, str.Jule_game_co._ltd
push ebx
lea esi, [esp + 0x58]
call fcn.00405e90
test al, al
pop ecx
jne 0x4046d2
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x4046c2
lea eax, [esp + 0x3c]
push ebx
push str.Publisher
push eax
push edi
call fcn.004011a9
add esp, 0x10
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x4046e1
lea eax, [esp + 0x3c]
push str.UninstallString
push eax
lea eax, [esp + 0x20]
push edi
push eax
call section..text
add esp, 0x10
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
push ecx
xor ebx, ebx
mov byte [esp + 0xc0], 0xe
call fcn.00402089
push ebx
push 1
lea esi, [esp + 0x20]
mov byte [esp + 0xc0], 9
call fcn.004022b6
lea eax, [esp + 0x54]
push eax
call fcn.004013ad
cmp dword [esp + 0x8c], 8
mov eax, dword [esp + 0x78]
pop ecx
jae 0x40473c
lea eax, [esp + 0x74]
mov edi, dword [esp + 0x84]
mov ecx, dword [esp + 0x68]
push eax
lea eax, [esp + 0x58]
call fcn.00405e4d
test eax, eax
je 0x40478a
cmp dword [esp + 0x88], 8
mov ecx, dword [esp + 0x74]
jae 0x404767
lea ecx, [esp + 0x74]
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x404776
lea eax, [esp + 0x3c]
push ecx
push str.UninstallString
push eax
push getpeername
call fcn.004011a9
add esp, 0x10
push 0
push 1
lea esi, [esp + 0x5c]
call fcn.004022b6
xor ebx, ebx
xor edi, edi
push ebx
inc edi
push edi
lea esi, [esp + 0x40]
call fcn.004022b6
push ebx
push edi
lea esi, [esp + 0x94]
call fcn.004022b6
push ebx
push edi
lea esi, [esp + 0x78]
call fcn.004022b6
mov eax, edi
jmp 0x404027