Function at 0x47aed0
Capabilities:
Check if file exists
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5577f1
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push esi
push edi
mov eax, dword [0x5c5244]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, ecx
mov dword [ebp - 0x10], edx
mov ecx, dword [edx + 0x28]
test ecx, ecx
je 0x47af3b
push 0
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x28]
call fcn.004ac260
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0x28]
test ecx, ecx
je 0x47af3b
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
xor ecx, ecx
mov dword [edx + 0x28], 0
test ecx, ecx
jne 0x47af9a
push 0xec
call fcn.004d9f7d
add esp, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x47af5f
mov ecx, eax
call fcn.004abcd0
jmp 0x47af61
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, eax
mov ebx, dword [ebp - 0x10]
push dword [ebx + 4]
mov dword [ebx + 0x28], eax
call fcn.004acd90
mov ecx, dword [ebx + 0x28]
push 1
call fcn.004ab700
mov ecx, dword [ebx + 0x28]
push 5
push 5
call fcn.004acdb0
mov edx, ebx
cmp dword [edx + 0x28], 0
je 0x47b1d1
xor esi, esi
mov dword [ebp - 0x24], 0xe
mov eax, 0x5c4648
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], eax
nop
cmp dword [eax + 8], 0xe3
jne 0x47b16f
xor ebx, ebx
mov dword [ebp - 0x1c], 3
mov edi, 0x5c4728
nop dword [eax + eax]
mov eax, dword [edi + 8]
cmp eax, 0xd5
jne 0x47afff
call fcn.00433100
test eax, eax
jne 0x47b146
mov ecx, dword [ebp - 0x10]
inc ebx
push edi
mov ecx, dword [ecx + 0x28]
call fcn.004abeb0
add esi, 0x19
mov dword [ebp - 0x14], esi
jmp 0x47b146
cmp eax, 0xd6
jne 0x47b0b9
mov ecx, dword [0x5cb884]
test ecx, ecx
jne 0x47b06e
push 0x5c313c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x5cb884], 0
jne 0x47b05d
push 0x14
call fcn.004d9f7d
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x47b04b
mov ecx, eax
call fcn.0044a040
mov ecx, eax
jmp 0x47b04d
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
xchg dword [ebp - 0x28], eax
mov dword [0x5cb884], ecx
push 0x5c313c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x5cb884]
call fcn.0044a770
mov esi, eax
call fcn.004330b0
test eax, eax
je 0x47b09e
call fcn.00433060
test eax, eax
jne 0x47b09e
test esi, esi
je 0x47b143
mov ecx, esi
call fcn.00447920
test eax, eax
jne 0x47b143
mov ecx, dword [ebp - 0x10]
inc ebx
push edi
mov ecx, dword [ecx + 0x28]
call fcn.004abeb0
mov esi, dword [ebp - 0x14]
add esi, 0x19
mov dword [ebp - 0x14], esi
jmp 0x47b146
cmp eax, 0xd3
jne 0x47b149
lea eax, [ebp - 0x18]
mov ecx, edx
push eax
call fcn.0046fd00
mov dword [ebp - 4], 2
push dword [ebp - 0x18]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x47b107
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47b146
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x47b146
push dword [ebp - 0x18]
call fcn.004cf4a0
add esp, 4
test eax, eax
jne 0x47b118
jmp 0x47b0e3
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47afe7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x47afe7
mov esi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
add edi, 0x10
sub dword [ebp - 0x1c], 1
jne 0x47afd0
test ebx, ebx
jle 0x47b178
mov ecx, dword [edx + 0x28]
push 0x5cd64c
call fcn.004abeb0
add esi, 0xa
mov dword [ebp - 0x14], esi
jmp 0x47b178
mov ecx, dword [edx + 0x28]
push eax
call fcn.004abeb0
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
add eax, 0x10
sub dword [ebp - 0x24], 1
mov dword [ebp - 0x20], eax
jne 0x47afb0
mov ebx, edx
lea eax, [esi + 0x1ae]
push eax
push 0x10e
mov ecx, dword [ebx + 0x28]
call fcn.004ab710
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push eax
mov dword [ebp - 0x34], 0
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [ebx + 0x28]
lea edx, [ebp - 0x38]
push edx
mov eax, dword [ecx]
call dword [eax + 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret