Function at 0x443c65
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x254
mov eax, dword [0x47d084]
xor eax, esp
mov dword [esp + 0x250], eax
push ebx
push esi
mov esi, dword [ebp + 8]
and dword [esi + 0x80], 0
add esi, 0x70
cmp dword [esi + 0x14], 8
push edi
mov dword [esp + 0x28], esi
jb 0x443c9d
mov eax, dword [esi]
jmp 0x443c9f
mov eax, esi
xor ecx, ecx
mov word [eax], cx
call fcn.00440ef4
and dword [esp + 0x3c], 0
lea ecx, [esp + 0x3c]
push ecx
push eax
call fcn.0044018c
mov dword [esp + 0x10], 0x1f
mov dword [esp + 0x20], 0x17
mov dword [esp + 0x18], 0x62
mov ebx, eax
mov dword [esp + 0x14], 0x63
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], ebx
cmp eax, ecx
jg 0x443d1d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
imul eax, ecx
mov ecx, dword [esp + 0x10]
imul eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax - 0x13]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
jne 0x443d3f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
sub eax, ecx
add eax, dword [esp + 0x14]
add eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
test ebx, ebx
je 0x44451e
xor edi, edi
inc edi
mov dword [esp + 0x10], edi
cmp dword [esp + 0x3c], edi
jle 0x444495
push dword [0x47e874]
push dword [ebx + edi*4]
call fcn.0041301c
pop ecx
pop ecx
test eax, eax
je 0x443d7c
inc edi
mov dword [esp + 0x10], edi
cmp edi, dword [esp + 0x3c]
jl 0x443d58
jmp 0x444495
fld qword [0x4778b8]
lea eax, [edi + 1]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [0x4778b0]
fadd qword [esp + 0x30]
fadd qword [0x4778a8]
fld qword [esp + 0x30]
fmul qword [esp + 0x30]
fsubp st(1)
fsub qword [esp + 0x30]
fsub qword [esp + 0x30]
fadd qword [0x4778a0]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fld qword [0x477898]
fmul st(1), st(0)
fxch st(1)
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fsub qword [0x477890]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fsub qword [esp + 0x30]
fsub qword [esp + 0x30]
fadd qword [0x477888]
fadd qword [esp + 0x30]
fsubrp st(1)
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fsub qword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [esp + 0x30]
fsub qword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fsub qword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fmul qword [0x477880]
fmul qword [esp + 0x30]
fadd qword [esp + 0x30]
fsub qword [esp + 0x30]
fstp qword [esp + 0x30]
fld qword [esp + 0x30]
fadd qword [esp + 0x30]
fsub qword [0x477878]
fadd qword [esp + 0x30]
fadd qword [0x477870]
fld qword [esp + 0x30]
fmul qword [0x477868]
faddp st(1)
fstp qword [esp + 0x30]
cmp eax, dword [esp + 0x3c]
jge 0x443e77
mov ebx, dword [ebx + edi*4 + 4]
push ebx
call fcn.00412591
pop ecx
mov ecx, ebx
call fcn.004050ce
add edi, 4
mov dword [esp + 0x30], edi
cmp edi, dword [esp + 0x3c]
jge 0x444495
push 0x10
mov dword [esp + 0x28], 0x61
pop esi
mov dword [esp + 0x18], esi
push 0x50
pop edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], 0x21
mov dword [esp + 0x1c], 0xc
push 0xd
pop ebx
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x20]
push 0x13
pop ecx
sub ecx, eax
mov eax, dword [esp + 0x18]
sub ecx, eax
add ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x18]
sub eax, 0x4d
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jl 0x443f04
mov eax, dword [esp + 0x14]
cdq
push 0xe
pop ecx
idiv ecx
add eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
imul eax, ecx
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x48]
push eax
push dword [0x47e878]
mov eax, dword [esp + 0x48]
push dword [eax + ecx*4 + 8]
call fcn.00413170
mov ecx, dword [esp + 0x1c]
add esp, 0xc
lea eax, [esp + 0x44]
push eax
push dword [0x47e87c]
mov eax, dword [esp + 0x48]
push dword [eax + ecx*4 + 0xc]
call fcn.00413170
mov dword [esp + 0x30], 0x61
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], 0x21
mov dword [esp + 0x24], 0xc
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x2c]
add esp, 0xc
push 0x13
pop ecx
sub ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, eax
add ecx, dword [esp + 0x24]
mov dword [esp + 0x18], 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 0x443fc3
mov eax, dword [esp + 0x14]
cdq
push 0xe
pop ecx
idiv ecx
add eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
imul eax, ecx
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x4c]
push eax
push dword [0x47e87c]
mov eax, dword [esp + 0x48]
push dword [eax + ecx*4]
call fcn.00413170
xor eax, eax
add esp, 0xc
cmp dword [esp + 0x48], eax
je 0x444422
cmp dword [esp + 0x44], eax
je 0x444422
cmp dword [esp + 0x4c], eax
je 0x444422
push dword [esp + 0x48]
call fcn.004412fb
mov dword [esp + 0x30], 0x61
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], 0x21
mov dword [esp + 0x18], 0xc
mov dword [esp + 0x10], ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
push 0x13
pop ecx
sub ecx, eax
mov eax, dword [esp + 0x1c]
sub ecx, eax
add ecx, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x1c]
sub eax, 0x4d
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jl 0x444081
mov eax, dword [esp + 0x10]
cdq
push 0xe
pop ecx
idiv ecx
add eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
imul eax, ecx
mov dword [esp + 0x14], eax
cmp dword [esp + 0x20], 0
je 0x444342
push 0x47ff8c
push ecx
call fcn.0043f693
pop ecx
push eax
push dword [esp + 0x4c]
push dword [esp + 0x2c]
call fcn.004412da
push 0x47ff90
push ecx
call fcn.0043f693
pop ecx
push eax
push dword [esp + 0x54]
push dword [esp + 0x2c]
call fcn.004412da
mov dword [esp + 0x14], 0x1f
mov dword [esp + 0x18], 0x17
mov dword [esp + 0x1c], 0x62
mov dword [esp + 0x10], 0x63
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jg 0x44411e
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
imul eax, ecx
mov ecx, dword [esp + 0x14]
imul eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax - 0x13]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jne 0x444140
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
sub eax, ecx
add eax, dword [esp + 0x10]
add eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x14], 8
jb 0x44414c
mov eax, dword [eax]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4442c3
push 0x206
push eax
mov word [esp + 0x58], ax
lea eax, [esp + 0x5a]
push eax
call fcn.00412dc0
fld qword [0x477860]
fstp qword [esp + 0x34]
add esp, 0xc
fld qword [esp + 0x28]
lea eax, [esp + 0x50]
fsub qword [esp + 0x28]
push eax
push dword [esp + 0x24]
fstp qword [esp + 0x30]
call fcn.0043f989
mov dword [esp + 0x14], 8
mov dword [esp + 0x24], 5
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], 0x51
mov dword [esp + 0x28], 0x1c
mov dword [esp + 0x10], 0x48
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x14]
push 0x1f
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
imul eax, eax, 0xe
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
imul eax, ecx
mov ecx, dword [esp + 0x18]
imul ecx, ecx, 0x166e
sub ecx, eax
mov eax, dword [esp + 0x2c]
sub ecx, eax
mov eax, dword [esp + 0x28]
sub ecx, eax
add ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x1c]
add eax, esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
cdq
pop ecx
idiv ecx
cmp word [esp + 0x50], 0
mov dword [esp + 0x18], eax
je 0x4442c3
lea eax, [esp + 0x50]
push eax
call fcn.00440053
call fcn.0043f96e
lea ecx, [esp + 0x50]
push ecx
call dword [eax + 0xa4]
mov dword [esp + 0x14], 0x1f
mov dword [esp + 0x18], 0x17
mov dword [esp + 0x24], 0x62
mov dword [esp + 0x10], 0x63
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jg 0x4442a1
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
imul eax, ecx
mov ecx, dword [esp + 0x14]
imul eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax - 0x13]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jne 0x4442c3
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
sub eax, ecx
add eax, dword [esp + 0x10]
add eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], 0x61
mov dword [esp + 0x24], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], 0x21
mov dword [esp + 0x1c], 0xc
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x14]
push 0x13
pop ecx
sub ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, eax
add ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x24]
sub eax, 0x4d
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
cmp eax, ecx
jl 0x444336
mov eax, dword [esp + 0x18]
cdq
push 0xe
pop ecx
idiv ecx
add eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
imul eax, ecx
mov dword [esp + 0x14], eax
call fcn.0043f96e
push dword [esp + 0x20]
call dword [eax + 0x3c]
fld qword [0x4778b8]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fmul qword [0x4778b0]
fadd qword [esp + 0x28]
fadd qword [0x4778a8]
fld qword [esp + 0x28]
fmul qword [esp + 0x28]
fsubp st(1)
fsub qword [esp + 0x28]
fsub qword [esp + 0x28]
fadd qword [0x4778a0]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fld qword [0x477898]
fmul st(1), st(0)
fxch st(1)
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fsub qword [0x477890]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fsub qword [esp + 0x28]
fsub qword [esp + 0x28]
fadd qword [0x477888]
fadd qword [esp + 0x28]
fsubrp st(1)
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fsub qword [esp + 0x28]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fmul qword [esp + 0x28]
fsub qword [esp + 0x28]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fsub qword [esp + 0x28]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fmul qword [0x477880]
fmul qword [esp + 0x28]
fadd qword [esp + 0x28]
fsub qword [esp + 0x28]
fstp qword [esp + 0x28]
fld qword [esp + 0x28]
fadd qword [esp + 0x28]
fsub qword [0x477878]
fadd qword [esp + 0x28]
fadd qword [0x477870]
fld qword [esp + 0x28]
fmul qword [0x477868]
faddp st(1)
fstp qword [esp + 0x28]
mov dword [esp + 0x28], 0x61
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 0x21
mov dword [esp + 0x1c], 0xc
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x20]
push 0x13
pop ecx
sub ecx, eax
mov eax, dword [esp + 0x24]
sub ecx, eax
add ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x24]
sub eax, 0x4d
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
cmp eax, ecx
jl 0x444495
mov eax, dword [esp + 0x18]
cdq
push 0xe
pop ecx
idiv ecx
add eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
imul eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], 0x1f
mov dword [esp + 0x18], 0x17
mov dword [esp + 0x24], 0x62
mov dword [esp + 0x10], 0x63
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jg 0x4444f3
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
imul eax, ecx
mov ecx, dword [esp + 0x14]
imul eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax - 0x13]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jne 0x444515
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
sub eax, ecx
add eax, dword [esp + 0x10]
add eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
push dword [esp + 0x40]
call fcn.004409c1
mov dword [esp + 0x10], 0x48
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
imul eax, ecx
push 0x4f
pop ecx
sub ecx, eax
add ecx, dword [esp + 0x10]
push 0x57
add ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x14]
cdq
pop ecx
idiv ecx
push 0x42
mov ecx, eax
mov eax, dword [esp + 0x14]
imul ecx, eax
mov eax, dword [esp + 0x14]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x14]
sub eax, ecx
mov ecx, dword [esp + 0x14]
lea eax, [eax + ecx - 0x14]
add eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
sub eax, ecx
mov dword [esp + 0x14], eax
add dword [esp + 0x14], 0xffffffa1
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x14]
pop ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
sub ecx, eax
mov eax, dword [esp + 0x10]
sub ecx, eax
add ecx, dword [esp + 0x10]
pop edi
add ecx, dword [esp + 0xc]
pop esi
mov dword [esp + 8], ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
imul eax, ecx
add eax, dword [esp + 8]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
imul eax, eax, 0x41
imul ecx, edx
mov edx, dword [esp + 8]
imul ecx, edx
imul ecx, ecx, 0x47
add eax, ecx
mov ecx, dword [esp + 8]
imul ecx, ecx, 0x2f
sub eax, ecx
mov ecx, dword [esp + 8]
lea eax, [eax + ecx - 0x18]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x254]
pop ebx
xor ecx, esp
call fcn.00410cf1
mov esp, ebp
pop ebp
ret 4