Function at 0x40c192
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x459ecf
mov eax, dword fs:[0]
push eax
sub esp, 0xa88
mov eax, dword [0x47d084]
xor eax, esp
mov dword [esp + 0xa80], eax
push ebx
push esi
push edi
mov eax, dword [0x47d084]
xor eax, esp
push eax
lea eax, [esp + 0xa98]
mov dword fs:[0], eax
mov esi, 0x114
push esi
xor edi, edi
push edi
mov ebx, 0x4805c0
push ebx
call fcn.00412dc0
mov dword [0x4805c0], esi
mov dword [esp + 0x34], 0x61
mov dword [esp + 0x28], 0x10
mov dword [esp + 0x24], 0x50
mov dword [esp + 0x28], 0x21
mov dword [esp + 0x2c], 0xc
mov dword [esp + 0x20], 0xd
mov eax, dword [esp + 0x24]
add esp, 0xc
push 0x13
pop ecx
sub ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, eax
add ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x1c]
sub eax, 0x4d
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jl 0x40c26e
mov eax, dword [esp + 0x14]
cdq
push 0xe
pop ecx
idiv ecx
add eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
imul eax, ecx
mov dword [esp + 0x18], eax
push ebx
call fcn.0043f7df
mov dword [0x4806d8], edi
mov dword [0x4806d4], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0xaa0], edi
push dword [0x47e8bc]
mov eax, 0x20019
push reloc.OLEAUT32.dll_SysReAllocString
lea ebx, [esp + 0x3c]
call fcn.00404c70
xor ebx, ebx
test eax, eax
jne 0x40c4f5
push 0x7fe
mov word [esp + 0x290], ax
lea eax, [esp + 0x292]
push ebx
push eax
call fcn.00412dc0
mov dword [esp + 0x20], 0x48
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
imul eax, ecx
add esp, 0xc
push 0x4f
pop ecx
sub ecx, eax
add ecx, dword [esp + 0x14]
push 0x57
add ecx, dword [esp + 0x18]
lea esi, [esp + 0x4c]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
cdq
pop ecx
idiv ecx
push 0x42
lea edi, [esp + 0x290]
mov ecx, eax
mov eax, dword [esp + 0x18]
imul ecx, eax
mov eax, dword [esp + 0x18]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x18]
sub eax, ecx
mov ecx, dword [esp + 0x18]
lea eax, [eax + ecx - 0x14]
add eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
sub eax, ecx
mov dword [esp + 0x18], eax
add dword [esp + 0x18], 0xffffffa1
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x18]
pop ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
sub ecx, eax
mov eax, dword [esp + 0x14]
sub ecx, eax
add ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
imul eax, ecx
add eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
imul eax, eax, 0x41
imul ecx, edx
mov edx, dword [esp + 0x14]
imul ecx, edx
imul ecx, ecx, 0x47
add eax, ecx
mov ecx, dword [esp + 0x14]
imul ecx, ecx, 0x2f
sub eax, ecx
mov ecx, dword [esp + 0x14]
push dword [0x47e8c0]
lea eax, [eax + ecx - 0x18]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x50], 0x400
call fcn.0040b0f5
test eax, eax
jne 0x40c4f5
mov eax, edi
push eax
lea eax, [esp + 0x50]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
call fcn.00405149
push 0xfde9
lea edx, [esp + 0x50]
lea ecx, [esp + 0x6c]
mov byte [esp + 0xaa4], 1
call fcn.0044da7a
cmp dword [eax + 0x14], 0x10
pop ecx
jb 0x40c40a
mov eax, dword [eax]
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x44]
push ecx
push dword [0x47e270]
push eax
call fcn.00413bc4
add esp, 0x10
cmp eax, 2
sete byte [esp + 0x27]
push 1
xor edi, edi
lea esi, [esp + 0x6c]
call fcn.00404cde
push 1
lea esi, [esp + 0x50]
call fcn.00405022
cmp byte [esp + 0x27], bl
je 0x40c4f5
mov eax, dword [esp + 0x40]
mov dword [0x4806d4], eax
mov dword [esp + 0x14], 0x1f
mov dword [esp + 0x1c], 0x17
mov dword [esp + 0x20], 0x62
mov dword [esp + 0x18], 0x63
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jg 0x40c4b4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
imul eax, ecx
mov ecx, dword [esp + 0x14]
imul eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax - 0x13]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
jne 0x40c4d6
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
sub eax, ecx
add eax, dword [esp + 0x18]
add eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
fld qword [0x477860]
mov dword [0x4806d8], eax
fstp qword [esp + 0x2c]
fld qword [esp + 0x2c]
fsub qword [esp + 0x2c]
fstp qword [esp + 0x2c]
or dword [esp + 0xaa0], 0xffffffff
cmp dword [esp + 0x34], ebx
je 0x40c511
push dword [esp + 0x34]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0x34], ebx
xor eax, eax
push 0x206
mov word [esp + 0x88], ax
lea eax, [esp + 0x8a]
push ebx
push eax
mov dword [esp + 0x44], ebx
call fcn.00412dc0
mov dword [esp + 0x24], 8
mov dword [esp + 0x34], 5
mov dword [esp + 0x2c], 0x50
mov dword [esp + 0x28], 0x51
mov dword [esp + 0x38], 0x1c
mov dword [esp + 0x20], 0x48
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x24]
push 0x1f
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
imul eax, eax, 0xe
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
imul eax, ecx
mov ecx, dword [esp + 0x28]
imul ecx, ecx, 0x166e
sub ecx, eax
mov eax, dword [esp + 0x3c]
sub ecx, eax
mov eax, dword [esp + 0x38]
sub ecx, eax
add ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x2c]
add eax, 0x10
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
cdq
pop ecx
idiv ecx
push dword [0x47e8c4]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x94]
push eax
call fcn.004134c2
fld qword [0x477860]
fstp qword [esp + 0x40]
add esp, 0x14
fld qword [esp + 0x2c]
lea eax, [esp + 0x84]
fsub qword [esp + 0x2c]
push eax
fstp qword [esp + 0x30]
call fcn.00440261
lea eax, [esp + 0x84]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
neg eax
sbb eax, eax
and eax, 0x20
add eax, 0x20
mov dword [0x4806dc], eax
mov eax, 0x4805c0
mov ecx, dword [esp + 0xa98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa80]
xor ecx, esp
call fcn.00410cf1
mov esp, ebp
pop ebp
ret