Function at 0x443416
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x234
mov eax, dword [0x47c084]
xor eax, esp
mov dword [esp + 0x230], eax
mov dword [esp + 4], 0x41
mov dword [esp], 0x11
mov eax, dword [esp]
push ebx
push esi
mov esi, ecx
mov ecx, dword [esp + 8]
imul eax, ecx
mov ecx, 0xffffff64
sub ecx, eax
add ecx, dword [esp + 8]
add esi, 0x70
add ecx, dword [esp + 8]
push edi
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
imul eax, ecx
mov ecx, dword [esp + 0xc]
imul eax, eax, 0x4e
imul ecx, ecx, 0x29
add eax, ecx
add eax, dword [esp + 0xc]
add eax, dword [esp + 0x10]
add eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
and dword [esi + 0x10], 0
cmp dword [esi + 0x14], 8
lea eax, [eax + ecx + 0x97]
mov dword [esp + 0xc], eax
jb 0x4434a4
mov eax, dword [esi]
jmp 0x4434a6
mov eax, esi
xor ecx, ecx
mov word [eax], cx
call fcn.004404b9
and dword [esp + 0x20], 0
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.0043eec2
mov ebx, eax
test ebx, ebx
je 0x443b57
xor edi, edi
inc edi
cmp dword [esp + 0x20], edi
jle 0x443b51
push dword [0x47d874]
push dword [ebx + edi*4]
call fcn.00413d2c
pop ecx
pop ecx
test eax, eax
je 0x4434f7
inc edi
cmp edi, dword [esp + 0x20]
jl 0x4434d7
jmp 0x443b51
fld qword [0x476940]
lea eax, [edi + 1]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fadd qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fmul qword [0x476938]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fadd qword [0x4768a0]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fmul qword [0x476930]
fmul qword [esp + 0x10]
fld qword [esp + 0x10]
fadd qword [0x476928]
faddp st(1)
fadd qword [0x4768e0]
fsub qword [esp + 0x10]
fadd qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fmul qword [esp + 0x10]
fld qword [esp + 0x10]
fsub qword [0x476920]
faddp st(1)
fadd qword [0x476918]
fadd qword [esp + 0x10]
fsub qword [0x476910]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fmul qword [esp + 0x10]
fmul qword [esp + 0x10]
fadd qword [esp + 0x10]
fsub qword [esp + 0x10]
fsub qword [esp + 0x10]
fstp qword [esp + 0x10]
cmp eax, dword [esp + 0x20]
jge 0x4435ba
mov eax, dword [ebx + edi*4 + 4]
push eax
mov dword [esp + 0x14], eax
call fcn.004132a1
pop ecx
mov ecx, dword [esp + 0x10]
call fcn.00405b01
lea eax, [edi + 4]
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x20]
jge 0x443b51
fld qword [0x476998]
xor eax, eax
fst qword [esp + 0x10]
fld qword [esp + 0x10]
fld qword [esp + 0x10]
fmul qword [0x476988]
fsubp st(1)
fsub qword [esp + 0x10]
fadd qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fadd qword [0x476980]
fld qword [esp + 0x10]
fdivrp st(2)
fsubrp st(1)
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fldz
fsub st(1), st(0)
fld qword [esp + 0x10]
fsubp st(2)
fld qword [esp + 0x10]
faddp st(2)
fxch st(1)
fadd qword [0x476978]
fsub qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fld qword [0x476970]
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0x10]
fsubr qword [esp + 0x10]
fadd qword [esp + 0x10]
fadd qword [0x4768e0]
fadd qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fsub qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fdiv qword [0x476888]
fadd qword [esp + 0x10]
fsub qword [esp + 0x10]
fadd qword [0x476968]
fsub qword [esp + 0x10]
fsub qword [0x476960]
fadd qword [esp + 0x10]
fadd qword [0x476958]
fsub qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fsub qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fmul qword [0x476950]
fadd qword [esp + 0x10]
fsub qword [esp + 0x10]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fmul qword [esp + 0x10]
fsubrp st(1)
fld qword [esp + 0x10]
fdiv qword [0x476948]
fsubp st(1)
fld qword [esp + 0x10]
fmul qword [0x476910]
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x24]
push eax
fsubp st(1)
push dword [0x47d878]
push dword [ebx + edi*4 + 8]
fstp qword [esp + 0x1c]
call fcn.00413e80
mov dword [esp + 0x24], 0x58
mov dword [esp + 0x1c], 0x35
mov eax, dword [esp + 0x1c]
imul eax, eax, 0x13
mov ecx, dword [esp + 0x24]
sub ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, eax
add ecx, dword [esp + 0x1c]
lea eax, [esp + 0x38]
push eax
push dword [0x47d87c]
mov dword [esp + 0x24], ecx
push dword [ebx + edi*4 + 0xc]
call fcn.00413e80
mov dword [esp + 0x24], 8
add dword [esp + 0x24], 0x1a
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax - 0x61]
add eax, dword [esp + 0x24]
push 0xffffffffffffffe1
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
imul eax, ecx
pop ecx
sub ecx, eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
imul eax, edx
mov edx, dword [esp + 0x24]
imul eax, edx
sub ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, eax
add ecx, dword [esp + 0x24]
push 0x5b
add ecx, dword [esp + 0x28]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
imul eax, ecx
pop ecx
sub ecx, eax
add ecx, dword [esp + 0x24]
lea eax, [esp + 0x40]
add ecx, dword [esp + 0x24]
push eax
add ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], ecx
add dword [esp + 0x28], 0x3d
push dword [0x47d87c]
push dword [ebx + eax*4]
call fcn.00413e80
mov dword [esp + 0x3c], 0x58
mov dword [esp + 0x34], 0x35
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
imul eax, eax, 0x13
sub ecx, eax
mov eax, dword [esp + 0x3c]
sub ecx, eax
mov eax, dword [esp + 0x3c]
sub ecx, eax
mov eax, dword [esp + 0x3c]
sub ecx, eax
add ecx, dword [esp + 0x34]
xor edi, edi
add esp, 0x24
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x24], edi
je 0x443ac9
cmp dword [esp + 0x2c], edi
je 0x443ac9
cmp dword [esp + 0x28], edi
je 0x443ac9
push dword [esp + 0x24]
call fcn.004409dc
mov dword [esp + 0x10], eax
cmp eax, edi
je 0x443ac9
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
call edi
push 0x47ef8c
push eax
push dword [esp + 0x34]
push dword [esp + 0x1c]
call fcn.004409bb
mov dword [esp + 0x1c], 0x5a
mov dword [esp + 0xc], 0x40
mov dword [esp + 0x18], 0x51
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
shl eax, 4
sub ecx, eax
mov eax, dword [esp + 0x18]
sub ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0xc]
push 0x53
pop ecx
sub ecx, eax
add ecx, dword [esp + 0x18]
push 0x14
add ecx, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x1c]
imul eax, eax, 7
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
imul eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
pop ecx
sub ecx, eax
add ecx, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
imul eax, eax, 0x59
imul ecx, edx
add eax, ecx
add eax, dword [esp + 0x18]
mov dword [esp + 0xc], eax
call edi
push 0x47ef90
push eax
push dword [esp + 0x30]
push dword [esp + 0x1c]
call fcn.004409bb
mov dword [esp + 0xc], 0x54
mov dword [esp + 0x18], 0x46
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
imul eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
imul eax, ecx
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x19
mov edx, dword [esp + 0xc]
imul ecx, edx
imul ecx, ecx, 0x13
sub eax, ecx
add eax, dword [esp + 0xc]
push 0x77
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
pop ecx
sub ecx, eax
mov eax, dword [esp + 0x18]
sub ecx, eax
add ecx, dword [esp + 0xc]
push 0x3a
add ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x1c]
cdq
pop ecx
idiv ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
imul eax, ecx
cmp dword [esi + 0x14], 8
mov dword [esp + 0xc], eax
jb 0x44399a
mov esi, dword [esi]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x443a2e
push 0x206
push eax
mov word [esp + 0x38], ax
lea eax, [esp + 0x3a]
push eax
call fcn.00413ad0
add esp, 0xc
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x14]
call fcn.0043f339
cmp word [esp + 0x30], 0
je 0x443a2e
call fcn.0043f31e
lea ecx, [esp + 0x30]
push ecx
call dword [eax + 0x19c]
mov dword [esp + 0x1c], 0x58
mov dword [esp + 0x18], 0x35
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
imul eax, eax, 0x13
sub ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, eax
add ecx, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
call fcn.0043f31e
lea ecx, [esp + 0x30]
push ecx
call dword [eax + 0xa4]
mov dword [esp + 0x1c], 0x5a
mov dword [esp + 0xc], 0x40
mov dword [esp + 0x18], 0x51
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
shl eax, 4
sub ecx, eax
mov eax, dword [esp + 0x18]
sub ecx, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0xc]
push 0x53
pop ecx
sub ecx, eax
add ecx, dword [esp + 0x18]
push 0x14
add ecx, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x1c]
imul eax, eax, 7
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
imul eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
pop ecx
sub ecx, eax
add ecx, dword [esp + 0xc]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0xc]
add eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
imul eax, eax, 0x59
imul ecx, edx
add eax, ecx
add eax, dword [esp + 0x18]
mov dword [esp + 0xc], eax
call fcn.0043f31e
push dword [esp + 0x10]
call dword [eax + 0x40]
mov dword [esp + 0xc], 8
add dword [esp + 0xc], 0x1a
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
lea eax, [ecx + eax - 0x61]
add eax, dword [esp + 0xc]
push 0xffffffffffffffe1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
imul eax, ecx
pop ecx
sub ecx, eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
imul eax, edx
mov edx, dword [esp + 0xc]
imul eax, edx
sub ecx, eax
mov eax, dword [esp + 0xc]
sub ecx, eax
mov eax, dword [esp + 0xc]
sub ecx, eax
mov eax, dword [esp + 0xc]
sub ecx, eax
add ecx, dword [esp + 0xc]
push 0x5b
add ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
imul eax, ecx
pop ecx
sub ecx, eax
add ecx, dword [esp + 0xc]
add ecx, dword [esp + 0xc]
add ecx, dword [esp + 0xc]
mov dword [esp + 0xc], ecx
add dword [esp + 0xc], 0x3d
push ebx
call fcn.0044024e
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00411a01
mov esp, ebp
pop ebp
ret