Function at 0x10057fd0
Capabilities:
Check if file exists

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x30
push ebp
push esi
mov esi, dword [ebx + 0x2c]
push edi
cmp esi, eax
je 0x10058004
mov dword [ebx + 0x2c], eax
test eax, eax
je 0x10057ff4
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [esp + 0x44]
test esi, esi
je 0x10058004
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x10058012
push 0x80004003
call fcn.100830f0
mov edx, dword [eax]
mov edx, dword [edx + 0x40]
lea ecx, [esp + 0x28]
push ecx
push eax
call edx
mov edx, dword [esp + 0x40]
push ecx
mov eax, esp
push ecx
mov dword [eax], 0
mov eax, esp
push edx
push 0x100addb8
lea ecx, [esp + 0x38]
lea esi, [ebx + 0x34]
push esi
mov dword [eax], ecx
call fcn.10058b00
mov ebp, eax
mov eax, dword [ebx]
mov edx, dword [eax + 8]
push ebx
mov ecx, ebx
mov dword [esp + 0x1c], ebp
call edx
lea edi, [ebx + 8]
call fcn.100031f0
test eax, eax
je 0x10058077
mov eax, dword [ebx + 0x14]
push eax
push 0xfffffffffffffffc
push ebp
call dword [sym.imp.USER32.DLL_SetWindowLongW]
test eax, eax
je 0x10058077
mov dword [ebx + 0x20], eax
mov dword [ebx + 4], ebp
mov eax, dword [0x100c7a60]
test eax, eax
jne 0x100580b2
push 0x100a6b44
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
test eax, eax
jne 0x10058096
mov eax, 0xf
jmp 0x100580b6
push 0x100a9e44
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [0x100c7a60], eax
test eax, eax
jne 0x100580b2
mov eax, 0xf
jmp 0x100580b6
push 0xf
call eax
push 0x100add3c
push 0x20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x190
push 0
push 0
push 0
push eax
call dword [sym.imp.GDI32.DLL_CreateFontW]
push 1
push eax
mov dword [esp + 0x24], eax
mov eax, dword [esi]
push 0x30
push eax
call dword [sym.imp.USER32.DLL_SendMessageW]
push ebp
call dword [sym.imp.USER32.DLL_GetDC]
push 0x606000
push eax
mov dword [esp + 0x28], eax
call dword [sym.imp.GDI32.DLL_SetTextColor]
lea ecx, [esp + 0x10]
call fcn.10058930
mov ebp, dword [esp + 0x10]
push ebp
call dword [sym.imp.SHLWAPI.DLL_PathFileExistsW]
test eax, eax
je 0x10058146
mov edi, ebp
call fcn.1000ed10
test eax, eax
je 0x10058146
lea eax, [ebx + 0x40]
lea edi, [esp + 0x10]
call fcn.10003840
lea ecx, [ebx + 0x3c]
mov edi, eax
mov eax, ecx
call fcn.10003840
jmp 0x100581e5
lea edx, [esp + 0x40]
push edx
mov ecx, 0x100add48
call fcn.1005f540
add esp, 4
push 0x100add58
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
test eax, eax
je 0x10058177
push 0x100add58
mov esi, eax
lea edi, [esp + 0x44]
call fcn.10011310
mov esi, dword [esp + 0x40]
push esi
call dword [sym.imp.SHLWAPI.DLL_PathFileExistsW]
test eax, eax
je 0x100581c4
mov edi, esi
call fcn.1000ed10
test eax, eax
je 0x100581c4
lea eax, [ebx + 0x3c]
lea edi, [esp + 0x40]
mov dword [esp + 0x14], eax
call fcn.10003840
push ebp
push esi
push ebx
call fcn.10058730
test eax, eax
je 0x100581c4
lea eax, [ebx + 0x40]
lea edi, [esp + 0x10]
call fcn.10003840
mov edi, eax
mov eax, dword [esp + 0x14]
call fcn.10003840
lea eax, [esi - 0xc]
cmp eax, 0x100bc65c
je 0x100581e5
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x100581e5
push esi
call fcn.1008441c
add esp, 4
lea ecx, [ebp - 0xc]
cmp ecx, 0x100bc65c
je 0x10058207
add ebp, 0xfffffff4
push ebp
call dword [sym.imp.KERNEL32.DLL_InterlockedDecrement]
test eax, eax
jg 0x10058207
push ebp
call fcn.1008441c
add esp, 4
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
push edx
push eax
call dword [sym.imp.USER32.DLL_ReleaseDC]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x10058226
push eax
call dword [sym.imp.GDI32.DLL_DeleteObject]
mov eax, dword [esp + 0x44]
test eax, eax
je 0x10058236
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
pop edi
pop esi
pop ebp
add esp, 0x30
ret 8