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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53c8da
mov eax, dword fs:[0]
push eax
sub esp, 0x104
mov eax, dword [0x596334]
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
xorps xmm0, xmm0
mov dword [ebp - 0x80], 0x553d74
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov edi, dword [0x59ad60]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add edi, 0x10
push edi
mov dword [ebp - 4], 0
call ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, dword [0x59ae60]
push 4
mov dword [ebp - 0x48], eax
mov ecx, dword [esi + 8]
inc ecx
push ecx
push dword [esi]
call fcn.004e53bc
add esp, 0xc
test eax, eax
je 0x41e896
mov dword [esi], eax
mov eax, dword [esi + 8]
push 4
inc eax
push eax
push dword [esi + 4]
call fcn.004e53bc
add esp, 0xc
test eax, eax
je 0x41e896
mov ecx, dword [esi + 8]
mov dword [esi + 4], eax
lea edx, [ecx*4]
mov ecx, dword [esi]
add ecx, edx
je 0x41e88a
mov eax, dword [ebp - 0x48]
mov dword [ecx], eax
mov eax, dword [esi + 4]
add eax, edx
je 0x41e893
lea ecx, [ebp - 0x80]
mov dword [eax], ecx
inc dword [esi + 8]
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
call esi
lea ecx, [ebp - 0x110]
call fcn.004134e0
push dword [ebp - 0x48]
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 1
push eax
push 0x593e80
push 0x593da8
push 0x59da74
call fcn.0041b350
movzx edi, ax
add esp, 0x14
mov eax, dword [ebp - 0xfc]
test eax, eax
jne 0x41e953
call fcn.0043f94d
mov dword [ebp - 0xfc], eax
test eax, eax
jne 0x41e953
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor esi, esi
lea ecx, [ebp - 0x110]
call fcn.00413a20
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x41e917
push eax
call fcn.004e20ad
add esp, 4
mov dword [ebp - 0x70], 0
mov ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
test ecx, ecx
je 0x41e935
push ecx
call fcn.004e20ad
add esp, 4
mov eax, esi
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.00455d1a
mov esp, ebp
pop ebp
ret
push 0
push 0
push eax
call fcn.0043fa4f
test di, di
je 0x41e8f3
lea eax, [ebp - 0x110]
mov dword [ebp - 0x108], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x593dac
mov dword [ebp - 0x104], eax
call ebx
mov eax, dword [0x593dc4]
mov dword [ebp - 0x100], eax
lea eax, [ebp - 0x108]
push 0x593dac
mov dword [0x593dc4], eax
call esi
mov ecx, dword [0x593dd8]
mov eax, dword [0x593de0]
mov edx, dword [0x593dd4]
sub eax, ecx
push 0
push dword [0x59da78]
push 0
push 0
push eax
mov eax, dword [0x593ddc]
sub eax, edx
push eax
push ecx
push edx
push SysReAllocString
push 0x551244
push edi
push 0x80000
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
je 0x41e8f3
call fcn.00414770
mov ecx, eax
call fcn.0040ffb0
test eax, eax
jne 0x41ea44
push dword [ebp + 0xc]
push dword [ebp - 0x10c]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [ebp - 0x10c]
call dword [sym.imp.USER32.dll_BringWindowToTop]
mov esi, dword [sym.imp.USER32.dll_SetWindowPos]
push 3
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push dword [ebp - 0x10c]
call esi
push 3
push 0
push 0
push 0
push 0
push 0xfffffffffffffffe
push dword [ebp - 0x10c]
call esi
jmp 0x41ec5e
mov ecx, dword [0x59ad94]
test ecx, ecx
jne 0x41ea9f
push 0x593e44
call ebx
cmp dword [0x59ad94], 0
jne 0x41ea92
push 0x24
call fcn.0041fce0
add esp, 4
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x41ea7c
mov ecx, eax
call fcn.00411810
jmp 0x41ea7e
xor eax, eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x84]
xor edx, edx
lock or dword [ecx], edx
mov dword [0x59ad94], eax
push 0x593e44
call esi
mov ecx, dword [0x59ad94]
lea eax, [ebp - 0x44]
push eax
call fcn.00411be0
mov eax, dword [ebp - 0x44]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
push eax
call fcn.00407b00
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp - 0x48], esi
mov eax, dword [ebp - 0x44]
mov byte [ebp - 4], 4
cmp dword [eax - 4], 1
jle 0x41eadc
push dword [eax - 0xc]
lea ecx, [ebp - 0x44]
call fcn.00407da0
mov eax, dword [ebp - 0x44]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
xor eax, eax
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x44]
mov edx, eax
mov dword [ebp - 0x14], 7
lea edi, [edx + 2]
nop
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x41eb00
sub edx, edi
lea ecx, [ebp - 0x28]
sar edx, 1
push edx
push eax
call fcn.00419030
cmp dword [ebp - 0x14], 8
lea edx, [ebp - 0x28]
mov edi, dword [ebp - 0x18]
cmovae edx, dword [ebp - 0x28]
or ebx, 0xffffffff
mov byte [ebp - 4], 5
test edi, edi
je 0x41eb59
lea eax, [edi - 1]
mov ecx, ebx
cmp eax, ebx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x5c
lea eax, [edx + ecx*2]
je 0x41eb53
cmp eax, edx
je 0x41eb59
sub eax, 2
cmp word [eax], 0x5c
jne 0x41eb46
sub eax, edx
sar eax, 1
jmp 0x41eb5c
or eax, 0xffffffff
lea ecx, [eax + 1]
mov dword [ebp - 0x30], 0
xor eax, eax
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
cmp edi, ecx
jb 0x41ed2a
mov eax, edi
sub eax, ecx
cmp eax, edi
cmovb edi, eax
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push edi
lea eax, [eax + ecx*2]
push eax
lea ecx, [ebp - 0x40]
call fcn.00419030
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
mov ecx, 0x551244
cmovae eax, dword [ebp - 0x40]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41ebd6
test dx, dx
je 0x41ebd2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41ebd6
add eax, 4
add ecx, 4
test dx, dx
jne 0x41ebb0
xor edi, edi
jmp 0x41ebdb
sbb edi, edi
or edi, 1
lea ecx, [ebp - 0x40]
call fcn.00413940
test edi, edi
jne 0x41ebf6
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x48]
call fcn.0040f8e0
mov esi, dword [ebp - 0x48]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41ec0d
call fcn.00420a30
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
call fcn.00420a30
lea edx, [ebp - 0xa0]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea ecx, [ebp - 0x28]
call fcn.00413940
mov byte [ebp - 4], 3
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x41ec42
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x44]
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x41ec5e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
mov ebx, 1
xor esi, esi
nop dword [eax + eax]
test ebx, ebx
je 0x41ec97
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x64]
push eax
call edi
test eax, eax
jne 0x41ec97
mov eax, dword [ebp - 0x80]
lea ecx, [ebp - 0x80]
push esi
call dword [eax + 4]
inc esi
test eax, eax
jne 0x41ec74
xor ebx, ebx
push 0
push 0
push 0
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
cmp eax, 0xffffffff
je 0x41ec70
test eax, eax
je 0x41ed18
lea eax, [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x80]
lea ecx, [ebp - 0x80]
call dword [eax]
test eax, eax
jne 0x41ecd4
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
mov eax, dword [ebp - 0x60]
cmp eax, 0x118
ja 0x41ecec
je 0x41ed08
cmp eax, 0xf
je 0x41ed08
cmp eax, 0xa0
jmp 0x41ecf1
cmp eax, 0x200
je 0x41ed08
mov ecx, 1
xor eax, eax
test ecx, ecx
mov ebx, ecx
cmove eax, esi
mov esi, eax
jmp 0x41ec70
xor ecx, ecx
xor eax, eax
test ecx, ecx
cmove eax, esi
mov esi, eax
jmp 0x41ec70
mov esi, dword [ebp - 0x5c]
mov ecx, 0x59ae2c
call fcn.0041e6a0
jmp 0x41e8f5
call fcn.00418c70
int3