Function at 0x4459a0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
push edi
xor ebx, ebx
mov edi, ecx
mov dword [ebp - 0x10], edi
cmp dword [ebp + 0xc], ebx
jne 0x4459ce
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x23dd0]
mov byte [ebp - 1], 1
mov dword [ebp + 0xc], 1
mov dword [ebp - 0xc], eax
jmp 0x4459fb
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xe4]
mov byte [ebp - 1], bl
cmp eax, dword [ecx + 0x23dd8]
jge 0x445a00
cmp eax, ebx
jl 0x445a00
mov ecx, dword [ecx + 0x23dd0]
je 0x4459f5
mov edi, edi
dec eax
mov ecx, dword [ecx]
jne 0x4459f0
mov esi, dword [ebp + 8]
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], ebx
jne 0x445a0b
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0xffffffffffffffff
mov ecx, esi
call fcn.0044ff60
mov ecx, dword [esi + 0xec]
imul ecx, ecx, 0x4c
push 3
add ecx, 0x66db70
call fcn.00441dc0
mov ecx, dword [esi + 0xec]
mov eax, dword [edi + 0x3b0]
imul ecx, ecx, 0x4c
mov edx, dword [edi + 0x20]
add ecx, 0x66db70
mov dword [edi + 0x348], ecx
mov dword [edi + 0x36c], edx
cmp eax, ebx
jne 0x445a56
xor eax, eax
jmp 0x445a59
mov eax, dword [eax + 0x20]
mov dword [edi + 0x370], eax
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], ebx
cmp dword [edi + 0x358], ebx
je 0x445aa6
mov eax, dword [edi + 0x350]
cmp eax, ebx
je 0x445a7d
mov eax, dword [eax]
cmp eax, ebx
jne 0x445a77
mov ecx, dword [edi + 0x360]
mov dword [edi + 0x358], ebx
mov dword [edi + 0x35c], ebx
mov dword [edi + 0x354], ebx
mov dword [edi + 0x350], ebx
call fcn.004cb942
mov dword [edi + 0x360], ebx
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0xc]
xor esi, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
cmp ecx, 4
jne 0x445afc
lea esp, [esp]
mov ecx, dword [eax + 0x10]
mov edx, eax
mov eax, dword [eax + 4]
cmp ecx, 2
je 0x445af1
cmp ecx, 3
jne 0x445ada
test ebx, ebx
jne 0x445ae5
mov ebx, edx
jmp 0x445ae5
cmp ecx, 4
jne 0x445ae5
test esi, esi
jne 0x445ae5
mov esi, edx
test eax, eax
jne 0x445ac0
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ebx
jmp 0x445b19
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], edx
jmp 0x445b19
cmp ecx, 1
je 0x445b17
cmp ecx, 2
je 0x445b17
cmp dword [eax + 0x10], 2
mov edx, eax
mov eax, dword [eax + 4]
je 0x445b19
test eax, eax
jne 0x445b06
jmp 0x445b19
mov edx, eax
mov ecx, dword [ebp + 0xc]
mov eax, edx
cmp ecx, 4
jne 0x445bd0
mov dword [ebp - 8], 0
mov edi, edi
mov edx, dword [edi + 0x354]
mov eax, dword [ebp - 8]
mov ebx, dword [ebp + eax*4 - 0x28]
lea ecx, [edi + 0x34c]
push 0
push edx
call fcn.004306a0
lea edi, [eax + 8]
mov ecx, 0x80
lea esi, [ebx + 8]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x354]
test edx, edx
je 0x445b69
mov dword [edx], eax
jmp 0x445b6f
mov dword [ecx + 0x350], eax
mov dword [ecx + 0x354], eax
cmp dword [ebx + 0x10], 4
jne 0x445bb1
cmp word [ebx + 0x14], 3
jne 0x445bb1
lea esi, [ebx + 0x1c]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
push str..doc
push eax
call fcn.005bcdf4
add esp, 8
test eax, eax
jne 0x445bb1
cmp dword [ebx + 0x170], eax
je 0x445bb1
push 1
push esi
call fcn.0042dbe0
add esp, 8
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x10]
inc eax
mov dword [ebp - 8], eax
cmp eax, 3
jl 0x445b30
mov dword [ebp - 0x14], 2
jmp 0x445ccf
cmp ecx, 2
jne 0x445c0f
mov ebx, dword [ebp - 0xc]
add ebx, 8
cmp byte [ebx + 0x4d], 0
lea eax, [ebx + 0x4d]
je 0x445a00
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x445a00
lea ecx, [edi + 0x34c]
push ebx
call fcn.00430740
mov dword [ebp - 0x14], 0
jmp 0x445ccf
test edx, edx
je 0x445ccf
jmp 0x445c23
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0xc]
jne 0x445c2e
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x14], ecx
cmp dword [ebp + 0xc], 1
mov edx, dword [eax]
lea esi, [eax + 8]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], esi
je 0x445c4f
cmp dword [esi + 8], 2
jne 0x445c4f
cmp dword [ebp - 8], 0
jne 0x445ccf
mov eax, dword [edi + 0x354]
lea ebx, [edi + 0x34c]
push 0
push eax
mov ecx, ebx
call fcn.004306a0
lea edi, [eax + 8]
mov ecx, 0x80
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x445c7a
mov dword [ecx], eax
jmp 0x445c7d
mov dword [ebx + 4], eax
mov edi, dword [ebp - 0x1c]
mov dword [ebx + 8], eax
cmp dword [edi + 8], 4
jne 0x445cbf
cmp word [edi + 0xc], 3
jne 0x445cbf
lea esi, [edi + 0x14]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
push str..doc
push eax
call fcn.005bcdf4
add esp, 8
test eax, eax
jne 0x445cbf
cmp dword [edi + 0x168], eax
je 0x445cbf
push 1
push esi
call fcn.0042dbe0
add esp, 8
inc dword [ebp - 8]
cmp dword [ebp - 0x18], 0
mov edi, dword [ebp - 0x10]
jne 0x445c20
cmp dword [edi + 0x344], 0
mov ecx, dword [ebp - 0x14]
mov ebx, dword [sym.imp.KERNEL32.dll_ResetEvent]
mov dword [edi + 0x368], ecx
jne 0x445d0f
push 0
push 0
push 0
push 0
lea eax, [edi + 0x348]
push eax
push 0x44e6b0
call fcn.004bb3f9
mov edx, dword [edi + 0x374]
push edx
mov dword [edi + 0x344], eax
call ebx
mov eax, dword [edi + 0x378]
push eax
call ebx
mov ecx, dword [edi + 0x37c]
push ecx
call ebx
mov edx, dword [edi + 0x374]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
cmp byte [ebp - 1], 0
je 0x445d44
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xec]
mov byte [ecx + 0x66dabd], 1
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8